fix(ui): объяснить неподтверждённый результат повтора сообщения
This commit is contained in:
1 parent
e80cfeb4a9
commit
b55588f29b
8 files changed
+64
-5
No files matched your search
@@ -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">
|
||||
|
||||
Reference in new issue
Block a user