From e424009dd3b36bf9796b173b83d9f1df0555e0f9 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Sun, 8 Feb 2026 15:53:58 +0100 Subject: [PATCH] refactor: create volume & restore snapshot --- app/client/components/restore-form.tsx | 6 +- .../backups/routes/restore-snapshot.tsx | 62 ----------------- .../repositories/routes/restore-snapshot.tsx | 62 ++++++----------- .../modules/volumes/routes/create-volume.tsx | 19 ++---- app/routeTree.gen.ts | 67 +++++++++++++++++++ .../backups/$backupId.$snapshotId.restore.tsx | 38 +++++++++++ .../repositories/$repoId.$snapId.restore.tsx | 41 ++++++++++++ app/routes/(dashboard)/volumes/create.tsx | 19 ++++++ app/routes/__root.tsx | 3 + app/routes/index.tsx | 11 ++- .../repositories/repositories.service.ts | 2 - 11 files changed, 204 insertions(+), 126 deletions(-) delete mode 100644 app/client/modules/backups/routes/restore-snapshot.tsx create mode 100644 app/routes/(dashboard)/backups/$backupId.$snapshotId.restore.tsx create mode 100644 app/routes/(dashboard)/repositories/$repoId.$snapId.restore.tsx create mode 100644 app/routes/(dashboard)/volumes/create.tsx diff --git a/app/client/components/restore-form.tsx b/app/client/components/restore-form.tsx index b6a8c6b4..043e9b3f 100644 --- a/app/client/components/restore-form.tsx +++ b/app/client/components/restore-form.tsx @@ -1,6 +1,5 @@ import { useCallback, useState } from "react"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; -import { useNavigate } from "react-router"; import { toast } from "sonner"; import { ChevronDown, FileIcon, FolderOpen, RotateCcw } from "lucide-react"; import { Button } from "~/client/components/ui/button"; @@ -16,6 +15,7 @@ import { useFileBrowser } from "~/client/hooks/use-file-browser"; import { OVERWRITE_MODES, type OverwriteMode } from "~/schemas/restic"; import type { Repository, Snapshot } from "~/client/lib/types"; import { handleRepositoryError } from "~/client/lib/errors"; +import { useNavigate } from "@tanstack/react-router"; type RestoreLocation = "original" | "custom"; @@ -101,7 +101,7 @@ export function RestoreForm({ snapshot, repository, snapshotId, returnPath }: Re ...restoreSnapshotMutation(), onSuccess: () => { toast.success("Restore completed"); - void navigate(returnPath); + void navigate({ to: returnPath }); }, onError: (error) => { handleRepositoryError("Restore failed", error, repository.id); @@ -156,7 +156,7 @@ export function RestoreForm({ snapshot, repository, snapshotId, returnPath }: Re

-