UNPKG

khamba

Version:

A cli tool for sharing files through local network.

30 lines (29 loc) 1.67 kB
import React, { useMemo } from 'react'; import SendArrowAnimation from '../components/Misc/SendArrowAnimation.js'; import { Box, Text } from 'ink'; import { useStore } from '@nanostores/react'; import { $receiverTotalDownload, $currTransfer, } from '../stores/fileHandlerStore.js'; import { formatBytes } from '../functions/helper.js'; import ProgressBar from '../components/Misc/ProgressBar.js'; const FileTransferForSender = () => { const currTransfer = useStore($currTransfer); const receiverTotalDownload = useStore($receiverTotalDownload); const totalProgress = useMemo(() => { return Math.min((receiverTotalDownload / currTransfer.totalFileSize) * 100, 100); }, [receiverTotalDownload, currTransfer.totalFileSize]); const isTransferComplete = useMemo(() => totalProgress == 100, [totalProgress]); return (React.createElement(Box, { flexDirection: "column" }, React.createElement(Box, { flexDirection: "column" }, isTransferComplete ? (React.createElement(Text, { dimColor: true }, "Files Transfer Complete \uD83C\uDF89")) : (React.createElement(Text, null, "SENDING\u2800", React.createElement(SendArrowAnimation, null))), React.createElement(Box, null, React.createElement(ProgressBar, { left: 0, percent: totalProgress ?? 0 }), React.createElement(Text, { dimColor: true }, "\u2800(", formatBytes(receiverTotalDownload), "\u2800/\u2800", formatBytes(currTransfer.totalFileSize), ")"))))); }; export default FileTransferForSender;