From 1dd29e5776f455d9a54bb06f8b872eed529e5ca8 Mon Sep 17 00:00:00 2001 From: JSR Date: Wed, 18 Mar 2026 17:49:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20OOBE=20=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=8A=A5=E9=94=99=E5=B9=B6=E8=A1=A5=E9=BD=90?= =?UTF-8?q?=E7=90=86=E7=94=B1=E5=88=86=E7=B1=BB=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/OOBE/OOBE.tsx | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/components/OOBE/OOBE.tsx b/src/components/OOBE/OOBE.tsx index f0ab428..01d699e 100644 --- a/src/components/OOBE/OOBE.tsx +++ b/src/components/OOBE/OOBE.tsx @@ -313,11 +313,17 @@ export const OOBE: React.FC = ({ visible, onComplete }) => { setLoading(true) try { if (!(window as any).api) throw new Error("api not ready") + const ensureSuccess = (res: any, fallbackMessage: string) => { + if (!res?.success) { + throw new Error(res?.message || fallbackMessage) + } + } if (workingTheme) { const exists = themes.some((t) => t.id === workingTheme.id) if (!exists) { - await (window as any).api.saveTheme(workingTheme) + const saveRes = await (window as any).api.saveTheme(workingTheme) + ensureSuccess(saveRes, t("common.error")) } if (currentTheme?.id !== workingTheme.id) { await setTheme(workingTheme.id) @@ -325,25 +331,29 @@ export const OOBE: React.FC = ({ visible, onComplete }) => { } for (const student of students) { - await (window as any).api.createStudent({ name: student.name }) + const createStudentRes = await (window as any).api.createStudent({ name: student.name }) + ensureSuccess(createStudentRes, t("common.error")) } for (const reason of reasons) { - await (window as any).api.createReason({ + const createReasonRes = await (window as any).api.createReason({ content: reason.content, + category: t("reasons.others"), delta: reason.delta, }) + ensureSuccess(createReasonRes, t("common.error")) } if (adminPassword || pointsPassword) { - await (window as any).api.authSetPasswords({ + const authRes = await (window as any).api.authSetPasswords({ adminPassword: adminPassword || null, pointsPassword: pointsPassword || null, }) + ensureSuccess(authRes, t("common.error")) } const res = await (window as any).api.setSetting("is_wizard_completed", true) - if (!res?.success) throw new Error(res?.message || "failed") + ensureSuccess(res, "failed") messageApi.success(t("common.success")) onComplete()