import { useMemo } from 'react'; import { Center, Group, Stack } from '@mantine/core'; import isElectron from 'is-electron'; import { useTranslation } from 'react-i18next'; import { RiCheckFill } from 'react-icons/ri'; import { Link, Navigate } from 'react-router-dom'; import { Button, PageHeader, Text } from '/@/renderer/components'; import { ActionRequiredContainer } from '/@/renderer/features/action-required/components/action-required-container'; import { MpvRequired } from '/@/renderer/features/action-required/components/mpv-required'; import { ServerCredentialRequired } from '/@/renderer/features/action-required/components/server-credential-required'; import { ServerRequired } from '/@/renderer/features/action-required/components/server-required'; import { AnimatedPage } from '/@/renderer/features/shared'; import { AppRoute } from '/@/renderer/router/routes'; import { useCurrentServer } from '/@/renderer/store'; const localSettings = isElectron() ? window.electron.localSettings : null; const ActionRequiredRoute = () => { const { t } = useTranslation(); const currentServer = useCurrentServer(); const isServerRequired = !currentServer; const isCredentialRequired = false; const isMpvRequired = useMemo(() => { if (!localSettings) return false; const mpvPath = localSettings.get('mpv_path'); if (mpvPath) { return false; } const mpvDisabled = localSettings.get('disable_mpv'); return !mpvDisabled; }, []); const checks = [ { component: , title: t('error.mpvRequired', { postProcess: 'sentenceCase' }), valid: !isMpvRequired, }, { component: , title: t('error.credentialsRequired', { postProcess: 'sentenceCase' }), valid: !isCredentialRequired, }, { component: , title: t('error.serverRequired', { postProcess: 'serverRequired' }), valid: !isServerRequired, }, ]; const canReturnHome = checks.every((c) => c.valid); const displayedCheck = checks.find((c) => !c.valid); return (
{displayedCheck && ( {displayedCheck?.component} )} {canReturnHome && ( <> No issues found )}
); }; export default ActionRequiredRoute;