From 7198b1b3f7720c263cfa4086686cc50fabd3adc0 Mon Sep 17 00:00:00 2001 From: KirCute <951206789@qq.com> Date: Mon, 24 Nov 2025 19:12:31 +0800 Subject: [PATCH] feat(archive): support non-overwrite decompress --- src/pages/home/toolbar/Decompress.tsx | 13 +++++++++++++ src/utils/api.ts | 2 ++ 2 files changed, 15 insertions(+) diff --git a/src/pages/home/toolbar/Decompress.tsx b/src/pages/home/toolbar/Decompress.tsx index e8cc82dc5..e78012fab 100644 --- a/src/pages/home/toolbar/Decompress.tsx +++ b/src/pages/home/toolbar/Decompress.tsx @@ -22,6 +22,7 @@ export const Decompress = () => { const [archivePass, setArchivePass] = createSignal("") const [cacheFull, setCacheFull] = createSignal(true) const [putIntoNewDir, setPutIntoNewDir] = createSignal(false) + const [overwrite, setOverwrite] = createSignal(false) const handler = (name: string) => { if (name === "decompress") { batch(() => { @@ -68,6 +69,17 @@ export const Decompress = () => { opened={isOpen()} onClose={onClose} loading={loading()} + footerSlot={ + + setOverwrite(!overwrite())} + > + {t("home.conflict_policy.overwrite_existing")} + + + } onSubmit={async (dst) => { const { path, name } = getPathAndName() const resp = await ok( @@ -78,6 +90,7 @@ export const Decompress = () => { innerPath(), cacheFull(), putIntoNewDir(), + overwrite(), ) handleRespWithNotifySuccess(resp, () => { refresh() diff --git a/src/utils/api.ts b/src/utils/api.ts index e570dfda6..26e5985d9 100644 --- a/src/utils/api.ts +++ b/src/utils/api.ts @@ -198,6 +198,7 @@ export const fsArchiveDecompress = ( inner_path = "/", cache_full = true, put_into_new_dir = false, + overwrite = false, ): PEmptyResp => { return r.post("/fs/archive/decompress", { src_dir, @@ -207,6 +208,7 @@ export const fsArchiveDecompress = ( inner_path, cache_full, put_into_new_dir, + overwrite, }) }