fix(backups): показывать частичный результат внутри формы

This commit is contained in:
Denozordec committed 2026-10-01 20:39:35 +07:00
1 parent ad457b90a9
commit 98b4c39a00
18 files changed
+112 -16

No files matched your search

+2 -5
View File
@@ -3,7 +3,7 @@ import { useEffect, useRef, useState } from "react"
import type { CreateBackupRequest } from "@mmapp/contracts/backups"
import { ApiClientError } from "@/shared/api/http-client"
import { createBackupsAsync } from "@/shared/api/backups"
import { pollBackupJob, backupJobOutcome } from "@/lib/backup-job-poll"
import { pollBackupJob, backupJobOutcome, backupJobResultError } from "@/lib/backup-job-poll"
import { backupJobStorageKey, createBackupJobCheckpoint, readBackupJobCheckpoint, type BackupJobCheckpoint } from "@/lib/backup-job-checkpoint"
import { userApiError } from "@/shared/api/users"
import { toast } from "sonner"
@@ -50,10 +50,7 @@ export function useBackupJob(backendUrl: string, live: boolean, canRead: boolean
if (!active()) return
const outcome = backupJobOutcome(result)
if (outcome.fullSuccess) toast.success("API подтвердил создание всех резервных копий", { id: "backup-job-" + result.id })
else {
const failures = [...outcome.deviceFailures.map(failure => failure.serverId + ": " + failure.error), ...outcome.uploadFailures.map(file => file.filename + ": " + file.uploadError)]
setError("Создано " + outcome.created + " из " + result.total + ". " + (failures.join("; ") || "Задача завершилась с ошибкой"))
}
else setError(backupJobResultError(result))
await onDone()
} catch (reason) {
if (!active()) return