import { useCallback, useEffect } from 'react' import { abortDownload } from '@janhq/core' import { Button, Modal, Progress } from '@janhq/joi' import { atom, useAtom, useAtomValue } from 'jotai' import { formatDownloadPercentage, formatExtensionsName, } from '@/utils/converter' import { InstallingExtensionState, installingExtensionAtom, } from '@/helpers/atoms/Extension.atom' export const showInstallingExtensionModalAtom = atom(false) const InstallingExtensionModal = () => { const [showInstallingExtensionModal, setShowInstallingExtensionModal] = useAtom(showInstallingExtensionModalAtom) const installingExtensions = useAtomValue(installingExtensionAtom) useEffect(() => { if (installingExtensions.length === 0) { setShowInstallingExtensionModal(false) } }, [installingExtensions, setShowInstallingExtensionModal]) const onAbortInstallingExtensionClick = useCallback( (item: InstallingExtensionState) => { if (item.localPath) { abortDownload(item.localPath) } }, [] ) return ( setShowInstallingExtensionModal(false)} content={
{Object.values(installingExtensions).map((item) => (

{formatExtensionsName(item.extensionId)}

{formatDownloadPercentage(item.percentage)}
))}
} /> ) } export default InstallingExtensionModal