import { ArrowDownToLine, RefreshCw } from 'lucide-react' import type { useLauncherUpdate } from '../hooks/useLauncherUpdate' import { isNative } from '../services/native' import { updatePercent } from '../state/updater' export function LauncherUpdateSettings({ updater }: { updater: ReturnType }) { const { state, blocked, eventsReady, eventError } = updater const { phase, status, error } = state const percent = updatePercent(state.progress) const working = phase === 'downloading' || phase === 'installing' const ready = phase === 'ready' || phase === 'restarting' const checking = phase === 'loading' || phase === 'checking' const deb = status?.installationKind === 'deb' return

ShaCraft Launcher

{status?.currentVersion && {status.currentVersion}}
{!isNative() ?

Обновления доступны в приложении лаунчера.

: ready ?

Обновление установлено. Перезапустите лаунчер.

: working ?

{phase === 'installing' ? deb ? 'Подтвердите установку в системном окне и дождитесь завершения.' : 'Проверяем подпись и устанавливаем…' : `Скачиваем обновление${percent === null ? '…' : ` · ${percent}%`}`}

: checking ?

Проверяем обновления…

: status?.supported === false ?

{status.reason || 'Для этой установки обновление доступно вручную на shacraft.ru/help#launcher.'}

: status?.version ?

Доступна версия {status.version}

: state.checked && !error ?

У вас последняя версия.

:

Проверка новой версии лаунчера.

} {working && }
{status?.notes && status.version && !working && !ready &&
Что нового

{status.notes.slice(0, 1600)}

} {error &&

{error}

} {eventError &&

{eventError} Перезапустите лаунчер, чтобы включить установку обновлений.

} {deb && status?.supported && status.version && !working && !ready &&

Для обновления deb потребуется подтверждение администратора в системном окне.

} {isNative() &&
{ready ? : <> {status?.supported && status.version && } {status?.supported !== false && } }
} {blocked && status?.supported && status.version && !working &&

Завершите игру и текущие операции, чтобы обновить лаунчер.

}
}