feat: 添加用户设置功能,支持修改昵称和邮箱,重构相关路由和组件

This commit is contained in:
2025-12-21 01:11:53 +07:00
parent 2e42bbc278
commit a4034b6b78
22 changed files with 620 additions and 225 deletions

View File

@@ -1,10 +1,13 @@
import type { PhoneCountry } from "./type";
import { toTypedSchema } from "@vee-validate/yup";
import { emailOTPClient, phoneNumberClient, usernameClient } from "better-auth/client/plugins";
import { createAuthClient } from "better-auth/vue";
import * as yup from "yup";
import CircleFlagsCnHk from "~icons/circle-flags/cn-hk";
import CircleFlagsEnUs from "~icons/circle-flags/en-us";
import CircleFlagsTw from "~icons/circle-flags/tw";
import CircleFlagsZh from "~icons/circle-flags/zh";
import { i18n } from "@/locales";
export const authClient = createAuthClient({
fetchOptions: {
@@ -13,6 +16,17 @@ export const authClient = createAuthClient({
plugins: [emailOTPClient(), phoneNumberClient(), usernameClient()],
});
export const emailSchema = toTypedSchema(yup.object({
email: yup
.string()
.required(i18n.global.t("auth.login.validation.emailRequired"))
.email(i18n.global.t("auth.login.validation.emailInvalid")),
otp: yup
.string()
.required(i18n.global.t("auth.login.validation.otpRequired"))
.matches(/^\d{6}$/, i18n.global.t("auth.login.validation.otpInvalid")),
}));
export const countries: PhoneCountry[] = [
{
code: "CN",