Просмотр исходного кода

refactor: 教研库修改为yup

xyh 2 лет назад
Родитель
Сommit
2c99aae4df

+ 0 - 1
packages/app/package.json

@@ -34,7 +34,6 @@
     "react-router-dom": "^6.8.0",
     "use-context-selector": "^1.4.1",
     "yup": "^1.2.0",
-    "zod": "^3.21.4",
     "zustand": "^4.3.7"
   },
   "devDependencies": {

+ 16 - 18
packages/app/src/pages/home/user/modal/hooks.ts

@@ -1,5 +1,5 @@
 import {editUserPassword} from '@apis';
-import {zodResolver} from '@hookform/resolvers/zod';
+import {yupResolver} from '@hookform/resolvers/yup';
 import {LOGIN_PATH} from '@routes';
 import {userStore} from '@stores';
 import {useMutation} from '@tanstack/react-query';
@@ -7,8 +7,8 @@ import {message} from 'antd';
 import {useEffect} from 'react';
 import {useForm} from 'react-hook-form';
 import {useNavigate} from 'react-router-dom';
-import {object, string} from 'zod';
 import {useStore} from 'zustand';
+import {object, string} from 'yup';
 
 type FormState = {
   oldPassword: string;
@@ -16,13 +16,6 @@ type FormState = {
   repeatPassword: string;
 };
 
-const validate = object({
-  oldPassword: string({required_error: '请输入原密码', invalid_type_error: '请输入原密码'})
-    .min(1, '请输入原密码'),
-  newPassword: string({required_error: '请输入新密码', invalid_type_error: '请输入新密码'})
-    .min(1, '请输入原密码'),
-}).passthrough();
-
 export function useEditPassword(onClose: () => void) {
   const logout = useStore(userStore, state => state.logout);
   const navigate = useNavigate();
@@ -41,15 +34,20 @@ export function useEditPassword(onClose: () => void) {
 }
 
 export function useFormState(visible: boolean, onClose: () => void) {
-  const {control, clearErrors, reset, setError, handleSubmit}
-    = useForm<FormState>({
-      defaultValues: {
-        oldPassword: '',
-        newPassword: '',
-        repeatPassword: '',
-      },
-      resolver: zodResolver(validate),
-    });
+  const {
+    control,
+    clearErrors, reset, setError, handleSubmit,
+  } = useForm<FormState>({
+    defaultValues: {
+      oldPassword: '',
+      newPassword: '',
+      repeatPassword: '',
+    },
+    resolver: yupResolver(object({
+      oldPassword: string().required('请输入旧密码'),
+      newPassword: string().required('请输入新密码'),
+    })),
+  });
 
   useEffect(
     function() {

+ 6 - 6
packages/app/src/pages/menu-second/table/modal/hooks.ts

@@ -3,8 +3,8 @@ import {useContextSection, usePutData, useQueryDataInfo} from '@hooks';
 import {AddMenuParams} from '@models';
 import {useEffect} from 'react';
 import {useForm, useFormContext} from 'react-hook-form';
-import {zodResolver} from '@hookform/resolvers/zod';
-import {number, object, string} from 'zod';
+import {yupResolver} from '@hookform/resolvers/yup';
+import {number, object, string} from 'yup';
 import {paramsContext} from '@pages/menu-second/context';
 
 export type FormState = {
@@ -27,10 +27,10 @@ export function useFormState(
       menuOrderBy: 0,
       menuUrl: '',
     },
-    resolver: zodResolver(object({
-      menuName: string({required_error: '请输入菜单名称'}).min(1, '请输入菜单名称'),
-      menuUrl: string({required_error: '请输入菜单路径'}).min(1, '请输入菜单路径'),
-      menuOrderBy: number({required_error: '请输入菜单排序'}),
+    resolver: yupResolver(object({
+      menuName: string().required('请输入菜单名称'),
+      menuUrl: string().required('请输入菜单路径'),
+      menuOrderBy: number().required('请输入菜单排序'),
     })),
   });
 

+ 7 - 7
packages/app/src/pages/menu/table/modal/hooks.ts

@@ -3,8 +3,8 @@ import {usePutData, useQueryDataInfo} from '@hooks';
 import {AddMenuParams} from '@models';
 import {useEffect} from 'react';
 import {useForm, useFormContext} from 'react-hook-form';
-import {zodResolver} from '@hookform/resolvers/zod';
-import {number, object, string} from 'zod';
+import {yupResolver} from '@hookform/resolvers/yup';
+import {number, object, string} from 'yup';
 
 export type FormState = {
   /** 菜单名称 */
@@ -30,11 +30,11 @@ export function useFormState(
       menuIcon: '',
       menuUrl: '',
     },
-    resolver: zodResolver(object({
-      menuName: string({required_error: '请输入菜单名称'}).min(1, '请输入菜单名称'),
-      menuIcon: string({required_error: '请输入菜单图标'}).min(1, '请输入菜单图标'),
-      menuUrl: string({required_error: '请输入菜单路径'}).min(1, '请输入菜单路径'),
-      menuOrderBy: number({required_error: '请输入菜单排序'}),
+    resolver: yupResolver(object({
+      menuName: string().required('请输入菜单名称'),
+      menuIcon: string().required('请输入菜单图标'),
+      menuUrl: string().required('请输入菜单路径'),
+      menuOrderBy: number().required('请输入菜单排序'),
     })),
   });
 

+ 5 - 6
packages/app/src/pages/role/table/modal/hooks.ts

@@ -1,10 +1,10 @@
 import {addRole, editRole, getRoleInfo} from '@apis';
-import {zodResolver} from '@hookform/resolvers/zod';
+import {yupResolver} from '@hookform/resolvers/yup';
 import {usePutData, useQueryDataInfo} from '@hooks';
 import {AddRoleParams} from '@models';
 import {useEffect} from 'react';
 import {useForm, useFormContext} from 'react-hook-form';
-import {object, string} from 'zod';
+import {object, string} from 'yup';
 
 export type FormState = {
   roleName: string,
@@ -21,11 +21,10 @@ export function useFormState(
       roleName: '',
       roleNote: '',
     },
-    resolver: zodResolver(
+    resolver: yupResolver(
       object({
-        roleName: string({required_error: '请输入角色名称', invalid_type_error: '亲输入角色名称'})
-          .min(1, '请输入角色名称'),
-        roleNote: string({invalid_type_error: '请输入字符'}).optional(),
+        roleName: string().required('请输入角色名称'),
+        roleNote: string(),
       }),
     ),
   });

+ 8 - 11
packages/app/src/pages/user/table/modal/hooks.ts

@@ -1,10 +1,10 @@
 import {addUser, editUser, getUserInfo} from '@apis';
-import {zodResolver} from '@hookform/resolvers/zod';
+import {yupResolver} from '@hookform/resolvers/yup';
 import {usePutData, useQueryDataInfo} from '@hooks';
 import {AddUserParams} from '@models';
 import {useEffect} from 'react';
 import {useForm, useFormContext} from 'react-hook-form';
-import {object, string} from 'zod';
+import {object, string} from 'yup';
 
 export type FormState = {
   userName: string,
@@ -15,14 +15,11 @@ export type FormState = {
 };
 
 const validate = object({
-  userName: string({required_error: '请输入用户名称'})
-    .min(1, '请输入用户名称'),
-  realName: string({required_error: '请输入真实姓名'})
-    .min(1, '请输入真实姓名'),
-  userRole: string({required_error: '请选择用户角色'})
-    .min(1, '请选择用户角色'),
-  userEmail: string().optional(),
-  userPhone: string().optional(),
+  userName: string().required('请输入用户名称'),
+  realName: string().required('请输入真实姓名'),
+  userRole: string().required('请选择用户角色'),
+  userEmail: string(),
+  userPhone: string(),
 });
 
 export function useFormState(
@@ -38,7 +35,7 @@ export function useFormState(
       userEmail: '',
       userPhone: '',
     },
-    resolver: zodResolver(validate),
+    resolver: yupResolver(validate),
   });
 
   const {clearErrors, handleSubmit} = formContext;

+ 0 - 7
pnpm-lock.yaml

@@ -188,9 +188,6 @@ importers:
       yup:
         specifier: ^1.2.0
         version: 1.2.0
-      zod:
-        specifier: ^3.21.4
-        version: 3.21.4
       zustand:
         specifier: ^4.3.7
         version: 4.3.7(react@18.2.0)
@@ -11419,10 +11416,6 @@ packages:
       type-fest: 2.19.0
     dev: false
 
-  /zod@3.21.4:
-    resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
-    dev: false
-
   /zustand@4.3.7(react@18.2.0):
     resolution: {integrity: sha512-dY8ERwB9Nd21ellgkBZFhudER8KVlelZm8388B5nDAXhO/+FZDhYMuRnqDgu5SYyRgz/iaf8RKnbUs/cHfOGlQ==}
     engines: {node: '>=12.7.0'}