fix: tsc issue

This commit is contained in:
Nicolas Meienberger 2026-03-20 19:15:09 +01:00
parent 91ba889f15
commit 186cb4f01f
5 changed files with 30 additions and 21 deletions

View file

@ -4163,10 +4163,10 @@ export type GetBackupProgressResponses = {
repositoryName: string;
seconds_elapsed?: number;
seconds_remaining?: number;
percent_done: number;
total_files: number;
percent_done?: number;
total_files?: number;
files_done?: number;
total_bytes: number;
total_bytes?: number;
bytes_done?: number;
current_files?: Array<string>;
} | null;

View file

@ -19,10 +19,19 @@ export const BackupProgressCard = ({ scheduleShortId, initialProgress }: Props)
refetchInterval: 1000,
});
const percentDone = progress ? Math.round(progress.percent_done * 100) : 0;
const {
percent_done = 0,
bytes_done = 0,
total_bytes = 0,
seconds_elapsed = 0,
files_done = 0,
total_files = 0,
} = progress ?? {};
const percentDone = progress ? Math.round(percent_done * 100) : 0;
const currentFile = progress?.current_files?.[0] || "";
const fileName = currentFile.split("/").pop() || currentFile;
const speed = progress ? formatBytes(progress.bytes_done / progress.seconds_elapsed) : null;
const speed = progress ? formatBytes(bytes_done / seconds_elapsed) : null;
const eta = progress?.seconds_remaining ? formatDuration(progress.seconds_remaining) : null;
return (
@ -43,7 +52,7 @@ export const BackupProgressCard = ({ scheduleShortId, initialProgress }: Props)
<p className="font-medium">
{progress ? (
<>
{progress.files_done.toLocaleString()} / {progress.total_files.toLocaleString()}
{files_done.toLocaleString()} / {total_files.toLocaleString()}
</>
) : (
"—"
@ -55,9 +64,9 @@ export const BackupProgressCard = ({ scheduleShortId, initialProgress }: Props)
<p className="font-medium">
{progress ? (
<>
<ByteSize bytes={progress.bytes_done} base={1024} />
<ByteSize bytes={bytes_done} base={1024} />
&nbsp;/&nbsp;
<ByteSize bytes={progress.total_bytes} base={1024} />
<ByteSize bytes={total_bytes} base={1024} />
</>
) : (
"—"
@ -66,12 +75,12 @@ export const BackupProgressCard = ({ scheduleShortId, initialProgress }: Props)
</div>
<div>
<p className="text-xs uppercase text-muted-foreground">Elapsed</p>
<p className="font-medium">{progress ? formatDuration(progress.seconds_elapsed) : "—"}</p>
<p className="font-medium">{progress ? formatDuration(seconds_elapsed) : "—"}</p>
</div>
<div>
<p className="text-xs uppercase text-muted-foreground">Speed</p>
<p className="font-medium">
{progress ? (progress.seconds_elapsed > 0 ? `${speed?.text} ${speed?.unit}/s` : "Calculating...") : "—"}
{progress ? (seconds_elapsed > 0 ? `${speed?.text} ${speed?.unit}/s` : "Calculating...") : "—"}
</p>
</div>
<div>

View file

@ -27,12 +27,12 @@ const dumpStartedEventSchema = z.object({
});
const restoreProgressMetricsSchema = z.object({
seconds_elapsed: z.number(),
percent_done: z.number(),
total_files: z.number(),
files_restored: z.number(),
total_bytes: z.number(),
bytes_restored: z.number(),
seconds_elapsed: z.number().default(0),
percent_done: z.number().default(0),
total_files: z.number().default(0),
files_restored: z.number().default(0),
total_bytes: z.number().default(0),
bytes_restored: z.number().default(0),
});
export const backupStartedEventSchema = backupEventBaseSchema;

View file

@ -14,9 +14,9 @@ import type { ResticDeps } from "../types";
const restoreProgressSchema = z.object({
message_type: z.enum(["status", "summary"]),
seconds_elapsed: z.number(),
seconds_elapsed: z.number().default(0),
percent_done: z.number().default(0),
total_files: z.number(),
total_files: z.number().default(0),
files_restored: z.number().default(0),
total_bytes: z.number().default(0),
bytes_restored: z.number().default(0),

View file

@ -32,10 +32,10 @@ export const resticBackupOutputSchema = resticBackupRunSummarySchema.extend({
export const resticBackupProgressMetricsSchema = z.object({
seconds_elapsed: z.number().default(0),
seconds_remaining: z.number().default(0),
percent_done: z.number(),
total_files: z.number(),
percent_done: z.number().default(0),
total_files: z.number().default(0),
files_done: z.number().default(0),
total_bytes: z.number(),
total_bytes: z.number().default(0),
bytes_done: z.number().default(0),
current_files: z.array(z.string()).default([]),
});