fix(ui): объяснить неподтверждённый результат повтора сообщения

This commit is contained in:
Denozordec committed 2026-10-08 14:30:54 +07:00
1 parent e80cfeb4a9
commit b55588f29b
8 files changed
+64 -5

No files matched your search

+6 -1
View File
@@ -30,7 +30,12 @@ export function AlertsOutboxPanel({base,operationsBusy,available,beginOperation,
const requestRevision=++writeRevision.current,abort=new AbortController();writeController.current=abort;setOutboxPending(source,true)
const current=()=>active.current&&requestRevision===writeRevision.current
try{await retryAlertsOutbox(base,selected.id,{expectedVersion:selected.resolutionVersion,acknowledgedDuplicateRisk:true},{signal:abort.signal});if(current()){setOutboxPending(source,false);setSelected(null);setMessage("Сообщение поставлено в очередь. Отправка и доставка ещё не подтверждены.");void refresh()}}
catch(e){if(current()){if(e instanceof ApiClientError&&[400,401,403,409,422].includes(e.status))setOutboxPending(source,false);setMutationError(e instanceof Error?e.message:"Результат повтора неизвестен")}}
catch(e){if(current()){
const rejected=e instanceof ApiClientError&&[400,401,403,409,422].includes(e.status)
if(rejected)setOutboxPending(source,false)
const detail=e instanceof Error?e.message:"Ответ не получен"
setMutationError(rejected?detail:"Результат повтора не подтверждён. Автоматический повтор заблокирован. Проверьте очередь и чат перед новой попыткой. "+detail)
}}
finally{mutationLock.current=false;endOperation();if(current())setMutationBusy(false)}
}
return <section aria-label="Очередь Telegram" className="min-w-0"><OpsPanel title="Очередь Telegram" description="Приём сообщения API и доставка в чат — разные состояния." headerRight={<Button type="button" variant="outline" size="sm" aria-label="Обновить очередь Telegram" disabled={busy||mutationBusy} onClick={()=>void refresh()}>Обновить</Button>} contentClassName="space-y-3 px-5 py-4">