const React = require('react');
const ReactDOM = require('react-dom');
import ShareContextConsumer from '../ShareContextConsumer'
const {RaisedButton, TextField, Paper, IconButton} = require('material-ui')
const ShareModel = require('pydio').requireLib('ReactModelShare')
const Clipboard = require('clipboard');
class TargetedUserLink extends React.Component{
constructor(props){
super(props);
this.state = {copyMessage : ''};
}
componentDidMount(){
if(this._clip){
this._clip.destroy();
}
if(this._button){
this._clip = new Clipboard(this._button, {
text: function(trigger) {
return this.props.link;
}.bind(this)
});
this._clip.on('success', function(){
this.setState({copyMessage:this.props.getMessage('192')}, this.clearCopyMessage);
}.bind(this));
this._clip.on('error', function(){
let copyMessage;
if( global.navigator.platform.indexOf("Mac") === 0 ){
copyMessage = this.props.getMessage('144');
}else{
copyMessage = this.props.getMessage('share_center.143');
}
this.setState({copyMessage:copyMessage}, this.clearCopyMessage);
}.bind(this));
}
}
componentWillUnmount(){
if(this._clip){
this._clip.destroy();
}
}
clearCopyMessage(){
setTimeout(function(){
this.setState({copyMessage:''});
}.bind(this), 5000);
}
render(){
const {display, link, download_count} = this.props;
return (
{display}
{this._button = ReactDOM.findDOMNode(ref)}}
iconClassName="mdi mdi-link"
tooltip={this.state.copyMessage || link}
iconStyle={{fontSize: 13, lineHeight:'17px'}} style={{width:34, height: 34, padding:6}}
/>
{download_count}
);
}
}
class TargetedUsers extends React.Component{
constructor(props, context){
super(props, context);
this.state = {open: false};
}
render(){
const {target_users} = this.props.linkData;
let items = Object.keys(target_users).map((k) => {
const userData = target_users[k];
const title = this.props.linkData.public_link + '?u=' + k;
return ;
});
if(!items.length) return null;
const rootStyle = {
lineHeight: '34px',
padding: '4px 10px 4px',
fontSize: 14,
backgroundColor: '#fafafa',
borderRadius: 2
};
const headerStyle = {
borderBottom: this.state.open ? '1px solid #757575' : '',
color: 'rgba(0, 0, 0, 0.36)'
}
return (
{this.props.getMessage('245').replace('%s', items.length)} {this.setState({open:!this.state.open})}}/>
{this.state.open &&
#DL
}
{this.state.open &&
{items}
}
);
}
}
TargetedUsers.propTypes = {
linkData:React.PropTypes.object.isRequired,
shareModel: React.PropTypes.instanceOf(ShareModel)
}
TargetedUsers = ShareContextConsumer(TargetedUsers);
TargetedUserLink = ShareContextConsumer(TargetedUserLink);
export {TargetedUsers as default}