fix(app): remove extra error page and use default error boundary

This commit is contained in:
Adam
2026-02-06 09:03:40 -06:00
parent b7ad8e459c
commit 12e8ef3178
16 changed files with 7 additions and 97 deletions

View File

@@ -23,8 +23,4 @@ export const dict = {
"desktop.cli.installed.message": "تم تثبيت CLI في {{path}}\n\nأعد تشغيل الطرفية لاستخدام الأمر 'opencode'.",
"desktop.cli.failed.title": "فشل التثبيت",
"desktop.cli.failed.message": "فشل تثبيت CLI: {{error}}",
"desktop.error.serverStartFailed.title": "فشل تشغيل OpenCode",
"desktop.error.serverStartFailed.description":
"تعذر بدء تشغيل خادم OpenCode المحلي. أعد تشغيل التطبيق، أو تحقق من إعدادات الشبكة (VPN/proxy) وحاول مرة أخرى.",
}

View File

@@ -24,8 +24,4 @@ export const dict = {
"desktop.cli.installed.message": "CLI instalada em {{path}}\n\nReinicie seu terminal para usar o comando 'opencode'.",
"desktop.cli.failed.title": "Falha na instalação",
"desktop.cli.failed.message": "Falha ao instalar a CLI: {{error}}",
"desktop.error.serverStartFailed.title": "Falha ao iniciar o OpenCode",
"desktop.error.serverStartFailed.description":
"Não foi possível iniciar o servidor local do OpenCode. Reinicie o aplicativo ou verifique suas configurações de rede (VPN/proxy) e tente novamente.",
}

View File

@@ -25,8 +25,4 @@ export const dict = {
"CLI je instaliran u {{path}}\n\nRestartuj terminal da bi koristio komandu 'opencode'.",
"desktop.cli.failed.title": "Instalacija nije uspjela",
"desktop.cli.failed.message": "Neuspjela instalacija CLI-a: {{error}}",
"desktop.error.serverStartFailed.title": "OpenCode se nije mogao pokrenuti",
"desktop.error.serverStartFailed.description":
"Lokalni OpenCode server se nije mogao pokrenuti. Restartuj aplikaciju ili provjeri mrežne postavke (VPN/proxy) i pokušaj ponovo.",
}

View File

@@ -25,8 +25,4 @@ export const dict = {
"CLI installeret i {{path}}\n\nGenstart din terminal for at bruge 'opencode'-kommandoen.",
"desktop.cli.failed.title": "Installation mislykkedes",
"desktop.cli.failed.message": "Kunne ikke installere CLI: {{error}}",
"desktop.error.serverStartFailed.title": "OpenCode kunne ikke starte",
"desktop.error.serverStartFailed.description":
"Den lokale OpenCode-server kunne ikke startes. Genstart appen, eller tjek dine netværksindstillinger (VPN/proxy) og prøv igen.",
}

View File

@@ -25,8 +25,4 @@ export const dict = {
"CLI wurde in {{path}} installiert\n\nStarten Sie Ihr Terminal neu, um den Befehl 'opencode' zu verwenden.",
"desktop.cli.failed.title": "Installation fehlgeschlagen",
"desktop.cli.failed.message": "CLI konnte nicht installiert werden: {{error}}",
"desktop.error.serverStartFailed.title": "OpenCode konnte nicht gestartet werden",
"desktop.error.serverStartFailed.description":
"Der lokale OpenCode-Server konnte nicht gestartet werden. Starten Sie die App neu oder überprüfen Sie Ihre Netzwerkeinstellungen (VPN/Proxy) und versuchen Sie es erneut.",
}

View File

@@ -24,8 +24,4 @@ export const dict = {
"desktop.cli.installed.message": "CLI installed to {{path}}\n\nRestart your terminal to use the 'opencode' command.",
"desktop.cli.failed.title": "Installation Failed",
"desktop.cli.failed.message": "Failed to install CLI: {{error}}",
"desktop.error.serverStartFailed.title": "OpenCode failed to start",
"desktop.error.serverStartFailed.description":
"The local OpenCode server could not be started. Restart the app, or check your network settings (VPN/proxy) and try again.",
}

View File

@@ -24,8 +24,4 @@ export const dict = {
"desktop.cli.installed.message": "CLI instalada en {{path}}\n\nReinicia tu terminal para usar el comando 'opencode'.",
"desktop.cli.failed.title": "Instalación fallida",
"desktop.cli.failed.message": "No se pudo instalar la CLI: {{error}}",
"desktop.error.serverStartFailed.title": "OpenCode no pudo iniciarse",
"desktop.error.serverStartFailed.description":
"No se pudo iniciar el servidor local de OpenCode. Reinicia la aplicación o revisa tu configuración de red (VPN/proxy) y vuelve a intentarlo.",
}

View File

@@ -25,8 +25,4 @@ export const dict = {
"CLI installée dans {{path}}\n\nRedémarrez votre terminal pour utiliser la commande 'opencode'.",
"desktop.cli.failed.title": "Échec de l'installation",
"desktop.cli.failed.message": "Impossible d'installer la CLI : {{error}}",
"desktop.error.serverStartFailed.title": "Échec du démarrage d'OpenCode",
"desktop.error.serverStartFailed.description":
"Impossible de démarrer le serveur OpenCode local. Redémarrez l'application ou vérifiez vos paramètres réseau (VPN/proxy) et réessayez.",
}

View File

@@ -25,8 +25,4 @@ export const dict = {
"CLI を {{path}} にインストールしました\n\nターミナルを再起動して 'opencode' コマンドを使用してください。",
"desktop.cli.failed.title": "インストールに失敗しました",
"desktop.cli.failed.message": "CLI のインストールに失敗しました: {{error}}",
"desktop.error.serverStartFailed.title": "OpenCode の起動に失敗しました",
"desktop.error.serverStartFailed.description":
"ローカルの OpenCode サーバーを起動できませんでした。アプリを再起動するか、ネットワーク設定 (VPN/proxy) を確認して再試行してください。",
}

View File

@@ -24,8 +24,4 @@ export const dict = {
"CLI가 {{path}}에 설치되었습니다\n\n터미널을 다시 시작하여 'opencode' 명령을 사용하세요.",
"desktop.cli.failed.title": "설치 실패",
"desktop.cli.failed.message": "CLI 설치 실패: {{error}}",
"desktop.error.serverStartFailed.title": "OpenCode 시작 실패",
"desktop.error.serverStartFailed.description":
"로컬 OpenCode 서버를 시작할 수 없습니다. 앱을 다시 시작하거나 네트워크 설정(VPN/proxy)을 확인한 후 다시 시도하세요.",
}

View File

@@ -25,8 +25,4 @@ export const dict = {
"CLI installert til {{path}}\n\nStart terminalen på nytt for å bruke 'opencode'-kommandoen.",
"desktop.cli.failed.title": "Installasjon mislyktes",
"desktop.cli.failed.message": "Kunne ikke installere CLI: {{error}}",
"desktop.error.serverStartFailed.title": "OpenCode kunne ikke starte",
"desktop.error.serverStartFailed.description":
"Den lokale OpenCode-serveren kunne ikke startes. Start appen på nytt, eller sjekk nettverksinnstillingene dine (VPN/proxy) og prøv igjen.",
}

View File

@@ -25,8 +25,4 @@ export const dict = {
"CLI zainstalowane w {{path}}\n\nUruchom ponownie terminal, aby użyć polecenia 'opencode'.",
"desktop.cli.failed.title": "Instalacja nie powiodła się",
"desktop.cli.failed.message": "Nie udało się zainstalować CLI: {{error}}",
"desktop.error.serverStartFailed.title": "Nie udało się uruchomić OpenCode",
"desktop.error.serverStartFailed.description":
"Nie udało się uruchomić lokalnego serwera OpenCode. Uruchom ponownie aplikację lub sprawdź ustawienia sieciowe (VPN/proxy) i spróbuj ponownie.",
}

View File

@@ -24,8 +24,4 @@ export const dict = {
"CLI установлен в {{path}}\n\nПерезапустите терминал, чтобы использовать команду 'opencode'.",
"desktop.cli.failed.title": "Ошибка установки",
"desktop.cli.failed.message": "Не удалось установить CLI: {{error}}",
"desktop.error.serverStartFailed.title": "Не удалось запустить OpenCode",
"desktop.error.serverStartFailed.description":
"Не удалось запустить локальный сервер OpenCode. Перезапустите приложение или проверьте настройки сети (VPN/proxy) и попробуйте снова.",
}

View File

@@ -23,8 +23,4 @@ export const dict = {
"desktop.cli.installed.message": "CLI 已安装到 {{path}}\n\n重启终端以使用 'opencode' 命令。",
"desktop.cli.failed.title": "安装失败",
"desktop.cli.failed.message": "无法安装 CLI: {{error}}",
"desktop.error.serverStartFailed.title": "OpenCode 启动失败",
"desktop.error.serverStartFailed.description":
"无法启动本地 OpenCode 服务器。请重启应用,或检查网络设置 (VPN/proxy) 后重试。",
}

View File

@@ -23,8 +23,4 @@ export const dict = {
"desktop.cli.installed.message": "CLI 已安裝到 {{path}}\n\n重新啟動終端機以使用 'opencode' 命令。",
"desktop.cli.failed.title": "安裝失敗",
"desktop.cli.failed.message": "無法安裝 CLI: {{error}}",
"desktop.error.serverStartFailed.title": "OpenCode 啟動失敗",
"desktop.error.serverStartFailed.description":
"無法啟動本地 OpenCode 伺服器。請重新啟動應用程式,或檢查網路設定 (VPN/proxy) 後再試一次。",
}

View File

@@ -402,50 +402,20 @@ type ServerReadyData = { url: string; password: string | null }
function ServerGate(props: { children: (data: Accessor<ServerReadyData>) => JSX.Element }) {
const [serverData] = createResource(() => commands.awaitInitialization(new Channel<InitStep>() as any))
const errorMessage = () => {
const error = serverData.error
if (!error) return t("error.chain.unknown")
if (typeof error === "string") return error
if (error instanceof Error) return error.message
return String(error)
}
const restartApp = async () => {
await commands.killSidecar().catch(() => undefined)
await relaunch().catch(() => undefined)
}
if (serverData.state === "errored") throw serverData.error
return (
// Not using suspense as not all components are compatible with it (undefined refs)
<Show
when={serverData.state === "errored"}
when={serverData.state !== "pending" && serverData()}
fallback={
<Show
when={serverData.state !== "pending" && serverData()}
fallback={
<div class="h-screen w-screen flex flex-col items-center justify-center bg-background-base">
<Splash class="w-16 h-20 opacity-50 animate-pulse" />
<div data-tauri-decorum-tb class="flex flex-row absolute top-0 right-0 z-10 h-10" />
</div>
}
>
{(data) => props.children(data)}
</Show>
<div class="h-screen w-screen flex flex-col items-center justify-center bg-background-base">
<Splash class="w-16 h-20 opacity-50 animate-pulse" />
<div data-tauri-decorum-tb class="flex flex-row absolute top-0 right-0 z-10 h-10" />
</div>
}
>
<div class="h-screen w-screen flex flex-col items-center justify-center bg-background-base gap-4 px-6">
<div class="text-16-semibold">{t("desktop.error.serverStartFailed.title")}</div>
<div class="text-12-regular opacity-70 text-center max-w-xl">
{t("desktop.error.serverStartFailed.description")}
</div>
<div class="w-full max-w-3xl rounded border border-border bg-background-base overflow-auto max-h-64">
<pre class="p-3 whitespace-pre-wrap break-words text-11-regular">{errorMessage()}</pre>
</div>
<button class="px-3 py-2 rounded bg-primary text-primary-foreground" onClick={() => void restartApp()}>
{t("error.page.action.restart")}
</button>
<div data-tauri-decorum-tb class="flex flex-row absolute top-0 right-0 z-10 h-10" />
</div>
{(data) => props.children(data)}
</Show>
)
}