refactor: notification system

This commit is contained in:
wonfen
2025-05-04 22:17:08 +08:00
parent e2ad2d23f8
commit 8296675574
43 changed files with 384 additions and 355 deletions

View File

@@ -2,7 +2,6 @@ import { useState, useRef, memo, useEffect } from "react";
import { useTranslation } from "react-i18next";
import { useForm } from "react-hook-form";
import { useVerge } from "@/hooks/use-verge";
import { Notice } from "@/components/base";
import { isValidUrl } from "@/utils/helper";
import { useLockFn } from "ahooks";
import {
@@ -17,6 +16,7 @@ import {
import Visibility from "@mui/icons-material/Visibility";
import VisibilityOff from "@mui/icons-material/VisibilityOff";
import { saveWebdavConfig, createWebdavBackup } from "@/services/cmds";
import { showNotice } from "@/services/noticeService";
export interface BackupConfigViewerProps {
onBackupSuccess: () => Promise<void>;
@@ -83,21 +83,21 @@ export const BackupConfigViewer = memo(
if (!url) {
urlRef.current?.focus();
Notice.error(t("WebDAV URL Required"));
showNotice('error', t("WebDAV URL Required"));
throw new Error(t("WebDAV URL Required"));
} else if (!isValidUrl(url)) {
urlRef.current?.focus();
Notice.error(t("Invalid WebDAV URL"));
showNotice('error', t("Invalid WebDAV URL"));
throw new Error(t("Invalid WebDAV URL"));
}
if (!username) {
usernameRef.current?.focus();
Notice.error(t("WebDAV URL Required"));
showNotice('error', t("WebDAV URL Required"));
throw new Error(t("Username Required"));
}
if (!password) {
passwordRef.current?.focus();
Notice.error(t("WebDAV URL Required"));
showNotice('error', t("WebDAV URL Required"));
throw new Error(t("Password Required"));
}
};
@@ -111,11 +111,11 @@ export const BackupConfigViewer = memo(
data.username.trim(),
data.password,
).then(() => {
Notice.success(t("WebDAV Config Saved"));
showNotice('success', t("WebDAV Config Saved"));
onSaveSuccess();
});
} catch (error) {
Notice.error(t("WebDAV Config Save Failed", { error }), 3000);
showNotice('error', t("WebDAV Config Save Failed", { error }), 3000);
} finally {
setLoading(false);
}
@@ -126,11 +126,11 @@ export const BackupConfigViewer = memo(
try {
setLoading(true);
await createWebdavBackup().then(async () => {
showNotice('success', t("Backup Created"));
await onBackupSuccess();
Notice.success(t("Backup Created"));
});
} catch (error) {
Notice.error(t("Backup Failed", { error }));
showNotice('error', t("Backup Failed", { error }));
} finally {
setLoading(false);
}