Skip to content

Commit b98e198

Browse files
committed
feat: inserting the advertisement alongside the sidebar
This allows the advertisement to "steal" some of the "sticky" logic the sidebar already has implemented. If we break this out from the sidebar we might have to rethink that a bit.
1 parent e06f9ab commit b98e198

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

components/sidebar/sidebar-style.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
overflow: auto;
99

1010
@include break {
11-
display:block;
11+
display: block;
1212
}
1313
}
1414

components/sidebar/sidebar.jsx

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React, { Component } from 'react';
22
import SidebarItem from '../sidebar-item/sidebar-item';
3+
import Advertisement from '../advertisement/advertisement';
34

45
export default class Sidebar extends Component {
56
constructor(props) {
@@ -8,13 +9,14 @@ export default class Sidebar extends Component {
89
this.state = {
910
fixed: false,
1011
availableHeight: null,
11-
maxWidth: null
12+
maxWidth: null,
13+
adDistance: null
1214
};
1315
}
1416

1517
render() {
1618
let { sectionName, pages, currentPage } = this.props;
17-
let { fixed, availableHeight, maxWidth } = this.state;
19+
let { fixed, availableHeight, maxWidth, adDistance } = this.state;
1820
let isGuides = sectionName === 'guides';
1921

2022
return (
@@ -28,6 +30,10 @@ export default class Sidebar extends Component {
2830
maxHeight: availableHeight
2931
}}>
3032

33+
<Advertisement
34+
distanceFromTop={ adDistance }
35+
height={ availableHeight } />
36+
3137
<div className="sidebar__inner">
3238
<h3 className="sidebar-item__version">Version 2.2</h3>
3339

@@ -56,6 +62,11 @@ export default class Sidebar extends Component {
5662
}
5763

5864
componentDidMount() {
65+
setTimeout(
66+
this._recalculate.bind(this),
67+
250
68+
);
69+
5970
document.addEventListener(
6071
'scroll',
6172
this._recalculate.bind(this)
@@ -89,7 +100,8 @@ export default class Sidebar extends Component {
89100
this.setState({
90101
fixed: scrollY >= headerHeight && sidebarHeight < parentHeight,
91102
availableHeight: innerHeight - headerSpace - footerSpace,
92-
maxWidth: parentWidth
103+
maxWidth: parentWidth,
104+
adDistance: scrollY < headerHeight ? headerHeight - scrollY : 0
93105
});
94106
}
95107
}

0 commit comments

Comments
 (0)