Tạo Validation

Validation được dùng để validate dữ liệu trước khi gửi lên sever

Lưu ý: Phải sử dụng FormItem trong thư mục components để có phần dịch message lỗi

Ví dụ: Tạo 1 file check validate cho form login

import * as Yup from "yup"
import { SchemaOf } from "yup"
 
export interface ILoginForm {
  email: string
  password: string
} // Tạo interface cho form
 
export function getValidationSchema(): SchemaOf<ILoginForm> {
  return Yup.object().shape({
    email: Yup.string()
      .email("common_validation.email_is_not") //Khai báo các string dịch ở file translation.json
      .max(255, "common_validation.email_longer")
      .required("common_validation.email_empty"),
    password: Yup.string()
      .min(8, "common_validation.pass_shorter")
      .max(50, "common_validation.pass_longer")
      .required("common_validation.pass_empty"),
  })
}

B. Cách sử dụng

import { getValidationSchema, ILoginForm } from "@app/module/login/NewPassword/form-config" // Import interface và validation
 
export default function Login() {
  const [loginValidation] = useValidation(LoginValidation)
 
  return (
    <Formik
      validationSchema={getValidationSchema()}
      // ...
    >
      <FormItem name="email" label="Tài khoản" required>
        {" "}
        // Giúp hiển thị thông báo lỗi
        <Input name="email" placeholder="Nhập tài khoản" />
      </FormItem>
      <FormItem className="pt-20" name="password" label="Mật khẩu" required>
        <Input.Password name="password" placeholder="Nhập mật khẩu" />
      </FormItem>
    </Formik>
  )
}