diff --git a/frontend/src/lib/components/translate/TargetSchemaHint.svelte b/frontend/src/lib/components/translate/TargetSchemaHint.svelte index 07afb19a..de6fbd06 100644 --- a/frontend/src/lib/components/translate/TargetSchemaHint.svelte +++ b/frontend/src/lib/components/translate/TargetSchemaHint.svelte @@ -7,7 +7,7 @@ - + @@ -29,16 +29,20 @@ targetSourceLanguageColumn = null, } = $props(); - /** @type {'idle'|'checking'|'complete'|'error'} */ + /** @type {'idle'|'checking'|'complete'|'complete_error'|'error'} */ let state = $state('idle'); let result = $state(null); let abortController = $state(null); let renderKey = $state(0); + /** True if result is a backend/network error (503/504/timeout), not a "table not found" */ + let isTransientError = $derived(state === 'complete' && !result?.table_exists && !!result?.error); + /** CSS-класс body в зависимости от состояния */ let bodyClass = $derived.by(() => { if (state === 'complete' && result?.all_present) return 'px-3 py-2.5 bg-success-light'; if (state === 'complete' && !result?.all_present && result?.table_exists) return 'px-3 py-2.5 bg-warning-light'; + if (state === 'complete' && !result?.table_exists && result?.error) return 'px-3 py-2.5 bg-warning-light'; if (state === 'error' || (state === 'complete' && !result?.table_exists)) return 'px-3 py-2.5 bg-destructive-light'; return 'px-3 py-2.5'; }); @@ -134,7 +138,8 @@
{_('translate.target_schema.table_not_found') || 'Target table not found in the database.'}
-{_('translate.target_schema.check_error') || 'Could not verify target table schema.'}
+{_('translate.target_schema.table_not_found') || 'Target table not found in the database.'}
+