diff --git a/src/routes/admin/categories/+page.svelte b/src/routes/admin/categories/+page.svelte index 0ea5ffd..8375d46 100644 --- a/src/routes/admin/categories/+page.svelte +++ b/src/routes/admin/categories/+page.svelte @@ -2,6 +2,7 @@ import { page } from '$app/stores'; import type { PageData, ActionData } from './$types'; import { createSlugAutoHandler } from '$lib/utils/slugify'; + import { confirmState } from '$lib/stores/confirm.svelte'; let { data, form }: { data: PageData; form: ActionData } = $props(); @@ -111,13 +112,21 @@ action="?/delete" method="POST" class="inline-form" - onsubmit={(e) => { - if ( - !confirm( - `确定要删除${$page.data.aliases?.category || '分类'} "${category.name}" 吗?删除后相关文章将归为未${$page.data.aliases?.category || '分类'}。` - ) - ) - e.preventDefault(); + onsubmit={async (e) => { + if ((e.target as HTMLFormElement).dataset.confirmed === 'true') { + (e.target as HTMLFormElement).removeAttribute('data-confirmed'); + return; + } + e.preventDefault(); + const form = e.target as HTMLFormElement; + const submitter = e.submitter; + const confirmed = await confirmState.show( + `确定要删除${$page.data.aliases?.category || '分类'} "${category.name}" 吗?删除后相关文章将归为未${$page.data.aliases?.category || '分类'}。` + ); + if (confirmed) { + form.dataset.confirmed = 'true'; + form.requestSubmit(submitter); + } }} > diff --git a/src/routes/admin/files/+page.svelte b/src/routes/admin/files/+page.svelte index be8c754..1b78a39 100644 --- a/src/routes/admin/files/+page.svelte +++ b/src/routes/admin/files/+page.svelte @@ -4,6 +4,7 @@ import { enhance } from '$app/forms'; import type { ActionData, PageData } from './$types'; import { addToast } from '$lib/stores/toast.svelte'; + import { confirmState } from '$lib/stores/confirm.svelte'; let { data, form } = $props<{ data: PageData; form: ActionData }>(); @@ -156,8 +157,19 @@