Gửi dữ liệu lên backend

Base sẽ sử dụng react-query để gửi dữ liệu lên backend dùng useMutation

import { useMutation } from "@tanstack/react-query"
import ApiUser, { ILoginBody } from "@app/api/ApiUser" // Import dưới dạng sau thay vì import thẳng những hàm gọi API cần dùng
 
export function SignIn({ changeTab }: SignInProps): JSX.Element {
  const dispatch = useDispatch()
  const router = useRouter()
  const loginMutation = useMutation(ApiUser.login) // Khởi tạo mutation
 
  const handleLogin = (
    values: ILoginBody,
    { setSubmitting }: { setSubmitting: (isSubmitting: boolean) => void },
  ): void => {
    loginMutation.mutate(
      // Gọi API
      { email: values.email, password: values.password }, // Tham số truyền đi theo API quy định
      {
        onSuccess: (res: IAccountInfo) => {
          // Viết hàm xử lý sau khi API gọi thành công ở đây
          dispatch(loginUser({ ...res }))
          router.push(Config.PATHNAME.HOME)
          setSubmitting(false)
        },
        onError: (error) => {
          // Viết hàm xử lý sau khi API trả về lỗi ở đây
          setSubmitting(false)
        },
      },
    )
  }
 
  return <div>...</div>
}