Use zod instead of yup (#2254)

* use zod instead of yup

* doc

* lint
This commit is contained in:
brendanlaschke
2023-10-27 10:26:32 +02:00
committed by GitHub
parent c04e866de3
commit 6a72c14af3
19 changed files with 61 additions and 67 deletions

View File

@ -3,10 +3,10 @@ import { Controller, SubmitHandler, useForm } from 'react-hook-form';
import { useNavigate } from 'react-router-dom';
import { getOperationName } from '@apollo/client/utilities';
import styled from '@emotion/styled';
import { yupResolver } from '@hookform/resolvers/yup';
import { zodResolver } from '@hookform/resolvers/zod';
import { useRecoilState } from 'recoil';
import { Key } from 'ts-key-enum';
import * as Yup from 'yup';
import { z } from 'zod';
import { SubTitle } from '@/auth/components/SubTitle';
import { Title } from '@/auth/components/Title';
@ -42,14 +42,14 @@ const StyledComboInputContainer = styled.div`
}
`;
const validationSchema = Yup.object()
.shape({
firstName: Yup.string().required('First name can not be empty'),
lastName: Yup.string().required('Last name can not be empty'),
const validationSchema = z
.object({
firstName: z.string().min(1, { message: 'First name can not be empty' }),
lastName: z.string().min(1, { message: 'Last name can not be empty' }),
})
.required();
type Form = Yup.InferType<typeof validationSchema>;
type Form = z.infer<typeof validationSchema>;
export const CreateProfile = () => {
const navigate = useNavigate();
@ -72,7 +72,7 @@ export const CreateProfile = () => {
firstName: currentUser?.firstName ?? '',
lastName: currentUser?.lastName ?? '',
},
resolver: yupResolver(validationSchema),
resolver: zodResolver(validationSchema),
});
const onSubmit: SubmitHandler<Form> = useCallback(

View File

@ -3,8 +3,8 @@ import { Controller, SubmitHandler, useForm } from 'react-hook-form';
import { useNavigate } from 'react-router-dom';
import { getOperationName } from '@apollo/client/utilities';
import styled from '@emotion/styled';
import { yupResolver } from '@hookform/resolvers/yup';
import * as Yup from 'yup';
import { zodResolver } from '@hookform/resolvers/zod';
import { z } from 'zod';
import { SubTitle } from '@/auth/components/SubTitle';
import { Title } from '@/auth/components/Title';
@ -31,13 +31,13 @@ const StyledButtonContainer = styled.div`
width: 200px;
`;
const validationSchema = Yup.object()
.shape({
name: Yup.string().required('Name can not be empty'),
const validationSchema = z
.object({
name: z.string().min(1, { message: 'Name can not be empty' }),
})
.required();
type Form = Yup.InferType<typeof validationSchema>;
type Form = z.infer<typeof validationSchema>;
export const CreateWorkspace = () => {
const navigate = useNavigate();
@ -57,7 +57,7 @@ export const CreateWorkspace = () => {
defaultValues: {
name: '',
},
resolver: yupResolver(validationSchema),
resolver: zodResolver(validationSchema),
});
const onSubmit: SubmitHandler<Form> = useCallback(