import React from 'react'; import { Queue } from '../../store/queue/types'; import Indicator from '../indicator'; import link from '../../helper/link'; import BtnCopy from '../btn-copy'; import filename from '../../util/filename'; import { fileSvg, fileCheckSvg } from '../../svg'; interface Props { queue: Queue, resetQueue: () => void } export default class UploadQueue extends React.Component { clear = (e: React.MouseEvent) => { e.preventDefault(); const { resetQueue } = this.props; resetQueue(); }; render() { const { queue } = this.props; if (queue.length === 0) { return null; } const inProgress = queue.find(x => !x.done) !== undefined; const allLinks = queue.map(x => x.link ? link(x.link) : '').join("\n"); console.log(allLinks) return (
{!inProgress && (
Clear {queue.length > 1 && (Copy all)}
)} {queue.map(task => { if (task.failed) { return
{fileSvg}
{filename(task.path)}
Transfer failed.
; } const fullLink = task.done && task.link ? link(task.link) : ''; return
{task.done ? fileCheckSvg : fileSvg}
{filename(task.path)}
{(() => { if (task.done) { return
{fullLink}
; } if (task.progress === 100) { return
processing
; } return
{`${task.progress}%`}
; })()}
{!task.done && (
)} {task.done && (
)}
; })}
); } }