import React from 'react'; import {Icon,BusyMessage} from 'component/common'; import FilePrice from 'component/filePrice' import {Modal} from 'component/modal'; import {FormField} from 'component/form'; import Link from 'component/link'; import {ToolTip} from 'component/tooltip'; import {DropDownMenu, DropDownMenuItem} from 'component/menu'; class FileActions extends React.Component { constructor(props) { super(props) this.state = { forceShowActions: false, deleteChecked: false, } } componentWillMount() { this.checkAvailability(this.props.uri) } componentWillReceiveProps(nextProps) { this.checkAvailability(nextProps.uri) } checkAvailability(uri) { if (!this._uri || uri !== this._uri) { this._uri = uri; this.props.checkAvailability(uri) } } onShowFileActionsRowClicked() { this.setState({ forceShowActions: true, }); } handleDeleteCheckboxClicked(event) { this.setState({ deleteChecked: event.target.checked, }) } onAffirmPurchase() { this.props.closeModal() this.props.loadVideo(this.props.uri) } render() { const { fileInfo, isAvailable, platform, downloading, uri, deleteFile, openInFolder, openInShell, modal, openModal, closeModal, startDownload, } = this.props const deleteChecked = this.state.deleteChecked, metadata = fileInfo ? fileInfo.metadata : null, openInFolderMessage = platform.startsWith('Mac') ? 'Open in Finder' : 'Open in Folder', showMenu = fileInfo && Object.keys(fileInfo).length > 0, title = metadata ? metadata.title : uri; let content if (downloading) { const progress = (fileInfo && fileInfo.written_bytes) ? fileInfo.written_bytes / fileInfo.total_bytes * 100 : 0, label = fileInfo ? progress.toFixed(0) + '% complete' : 'Connecting...', labelWithIcon = {label}; content =
{labelWithIcon}
{labelWithIcon}
} else if (!fileInfo && isAvailable === undefined) { content = } else if (!fileInfo && !isAvailable && !this.state.forceShowActions) { content =
Content unavailable.
} else if (fileInfo === null && !downloading) { content = { startDownload(uri) } } />; } else if (fileInfo && fileInfo.download_path) { content = openInShell(fileInfo)} />; } else { console.log('handle this case of file action props?'); console.log(this.props) } return (
{ content } { showMenu ? openInFolder(fileInfo)} label={openInFolderMessage} /> openModal('confirmRemove')} label="Remove..." /> : '' } This will purchase {title} for credits. You don't have enough LBRY credits to pay for this stream. LBRY was unable to download the stream {uri}. deleteFile(fileInfo.outpoint, deleteChecked)} onAborted={closeModal}>

Are you sure you'd like to remove {title} from LBRY?

); } } export default FileActions