khamba
Version:
A cli tool for sharing files through local network.
31 lines (30 loc) • 1.6 kB
JavaScript
import React, { useMemo } from 'react';
import SendArrowAnimation from '../../../components/Misc/SendArrowAnimation.js';
import { Box, Text } from 'ink';
import { formatBytes } from '../../../functions/helper.js';
import ProgressBar from '../../../components/Misc/ProgressBar.js';
const SinglePeerTransferForSender = ({ singlePeerTransferInfo }) => {
const totalProgress = useMemo(() => {
return Math.min((singlePeerTransferInfo.totalTransferred /
singlePeerTransferInfo.totalFileSize) *
100, 100);
}, [
singlePeerTransferInfo.totalTransferred,
singlePeerTransferInfo.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(singlePeerTransferInfo.totalTransferred),
"\u2800/\u2800",
formatBytes(singlePeerTransferInfo.totalFileSize),
")")))));
};
export default SinglePeerTransferForSender;