import React, { JSX } from 'react' import { UploaderConnection, UploaderConnectionStatus } from '../types' import ProgressBar from './ProgressBar' export function ConnectionListItem({ conn, }: { conn: UploaderConnection }): JSX.Element { const getStatusColor = (status: UploaderConnectionStatus) => { switch (status) { case UploaderConnectionStatus.Uploading: return 'bg-blue-500 dark:bg-blue-600' case UploaderConnectionStatus.Paused: return 'bg-yellow-500 dark:bg-yellow-600' case UploaderConnectionStatus.Done: return 'bg-green-500 dark:bg-green-600' case UploaderConnectionStatus.Closed: return 'bg-red-500 dark:bg-red-600' case UploaderConnectionStatus.InvalidPassword: return 'bg-red-500 dark:bg-red-600' default: return 'bg-stone-500 dark:bg-stone-600' } } return (
{conn.browserName && conn.browserVersion ? ( <> {conn.browserName}{' '} v{conn.browserVersion} ) : ( 'Downloader' )} {conn.status.replace(/_/g, ' ')}
Completed: {conn.completedFiles} / {conn.totalFiles} files
{conn.uploadingFileName && conn.status === UploaderConnectionStatus.Uploading && (
Current file: {Math.round(conn.currentFileProgress * 100)}%
)}
) }