import { t } from "i18next"; import { useContext, useEffect, useState } from "react"; import { Button, Progress } from "@renderer/components/ui"; import { AppSettingsProviderContext } from "@renderer/context"; import { CheckCircle2Icon, XCircleIcon, LoaderIcon } from "lucide-react"; export const FfmpegCheck = () => { const { ffmpegConfig, setFfmegConfig, EnjoyApp } = useContext( AppSettingsProviderContext ); const [downloading, setDownloading] = useState(false); const [progress, setProgress] = useState(0); const refreshFfmpegConfig = async () => { EnjoyApp.settings.getFfmpegConfig().then((config) => { setFfmegConfig(config); }); }; const downloadFfmpeg = () => { listenToDownloadState(); setDownloading(true); EnjoyApp.ffmpeg .download() .then((config) => { if (config) { setFfmegConfig(config); } }) .finally(() => { setDownloading(false); }); }; const listenToDownloadState = () => { EnjoyApp.download.onState((_event, downloadState) => { const { received, total } = downloadState; setProgress(Math.round((received * 100) / total)); }); }; useEffect(() => { return EnjoyApp.download.removeAllListeners(); }, [ffmpegConfig?.ready]); useEffect(() => { refreshFfmpegConfig(); }, []); return (