blob: 6757d670e15013b45587c5877dbfb653c8fd613e (
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>
<GitBook.Button onClick={this.onToggle}>
<GitBook.Icon id="share-alt" />
</GitBook.Button>
{open ? (
<Backdrop onClose={this.onToggle}>
<Dropdown.Menu>
{siteIds.map((id) => (
<Dropdown.Item onClick={() => onShare(SITES[id])} key={id}>
{SITES[id].label}
</Dropdown.Item>
))}
</Dropdown.Menu>
</Backdrop>) : null}
</Dropdown.Container>
);
}
});
module.exports = ShareButton;
|