blob: 8983423f3432553ff0b0fd4edd807d24f4b754da (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
const GitBook = require('gitbook-core');
const { React, Dropdown, Backdrop } = GitBook;
const SITES = require('../SITES');
// Share button with dropdown list of sites
const ShareButton = React.createClass({
propTypes: {
siteIds: React.PropTypes.arrayOf(React.PropTypes.string).isRequired,
onShare: React.PropTypes.func.isRequired
},
getInitialState() {
return { open: false };
},
onToggle() {
const { open } = this.state;
this.setState({ open: !open });
},
render() {
const { siteIds, onShare } = this.props;
const { open } = this.state;
return (
<Dropdown.Container>
{open ? <Backdrop onClose={this.onToggle} /> : null}
<GitBook.Button onClick={this.onToggle}>
<GitBook.Icon id="share-alt" />
</GitBook.Button>
{open ? (
<Dropdown.Menu>
{siteIds.map((id) => (
<Dropdown.ItemLink onClick={() => onShare(SITES[id])} key={id}>
{SITES[id].label}
</Dropdown.ItemLink>
))}
</Dropdown.Menu>) : null}
</Dropdown.Container>
);
}
});
module.exports = ShareButton;
|