Loading web/src/hooks/useAdmin.tsx +38 −8 Original line number Diff line number Diff line import { FieldErrors, Resolver, SubmitHandler, useForm } from "react-hook-form"; import { AdminDatasourceProd } from "../data/datasources/prod/admin_datasource"; import { AdminRepositoryProd } from "../data/repositories/prod/admin_repository"; import { AdminFormValues } from "../infraestructure/entities/admin_form_values"; import { Admin, AdminFormValues } from "../infraestructure/entities/admin_form_values"; import { toast } from "react-toastify"; import axios, { AxiosError } from "axios"; import { useState } from "react"; import { showErrorAxios } from "../utils/Messages"; const adminDatasource = new AdminDatasourceProd(); const adminRepository = new AdminRepositoryProd(adminDatasource); Loading Loading @@ -37,7 +40,7 @@ const resolver: Resolver<AdminFormValues> = async (data) => { type: "required", message: "La contraseña es requerida" }; }else if(data.confirmPassword!=data.password){ }else if(data.confirmPassword!==data.password){ errors.confirmPassword = { type: "validate", message: "Las contraseñas deben coincidir" Loading Loading @@ -69,26 +72,53 @@ export const useAdmin = () => { register, handleSubmit, formState: {errors}, setValue } = useForm<AdminFormValues>({resolver}); const [errorMessage, setErrorMessage] = useState(''); const onSubmit: SubmitHandler<AdminFormValues> = (data: AdminFormValues) => { const fetch = async () => { try{ //await adminRepository.registerAdmin(data); console.log(data); await adminRepository.registerAdmin(data); }catch(error: any){ if(axios.isAxiosError(error)){ error as AxiosError; switch(error.code){ case(axios.AxiosError.ERR_BAD_REQUEST): setErrorMessage("Acceso no autorizado"); break; case(axios.AxiosError.ERR_NETWORK): setErrorMessage("Conexión con el servidor fallida"); break; } } throw new Error(); } } toast.promise( fetch(),{ pending: "Subiendo datos...", success: "Los datos se han subido correctamente", error: "Sucedio un error" error: errorMessage } ) } return {register, handleSubmit, errors, onSubmit}; const getAdminInfo = async (): Promise<Admin | null> => { const token = localStorage.getItem('token'); if(token){ try{ const actualAdmin = await adminRepository.getAdminInfo(token); return actualAdmin; }catch(error: any){ if(axios.isAxiosError(error)){ error as AxiosError; showErrorAxios(error); } } return null; } return null; } return {register, handleSubmit, errors, onSubmit, getAdminInfo}; } No newline at end of file Loading
web/src/hooks/useAdmin.tsx +38 −8 Original line number Diff line number Diff line import { FieldErrors, Resolver, SubmitHandler, useForm } from "react-hook-form"; import { AdminDatasourceProd } from "../data/datasources/prod/admin_datasource"; import { AdminRepositoryProd } from "../data/repositories/prod/admin_repository"; import { AdminFormValues } from "../infraestructure/entities/admin_form_values"; import { Admin, AdminFormValues } from "../infraestructure/entities/admin_form_values"; import { toast } from "react-toastify"; import axios, { AxiosError } from "axios"; import { useState } from "react"; import { showErrorAxios } from "../utils/Messages"; const adminDatasource = new AdminDatasourceProd(); const adminRepository = new AdminRepositoryProd(adminDatasource); Loading Loading @@ -37,7 +40,7 @@ const resolver: Resolver<AdminFormValues> = async (data) => { type: "required", message: "La contraseña es requerida" }; }else if(data.confirmPassword!=data.password){ }else if(data.confirmPassword!==data.password){ errors.confirmPassword = { type: "validate", message: "Las contraseñas deben coincidir" Loading Loading @@ -69,26 +72,53 @@ export const useAdmin = () => { register, handleSubmit, formState: {errors}, setValue } = useForm<AdminFormValues>({resolver}); const [errorMessage, setErrorMessage] = useState(''); const onSubmit: SubmitHandler<AdminFormValues> = (data: AdminFormValues) => { const fetch = async () => { try{ //await adminRepository.registerAdmin(data); console.log(data); await adminRepository.registerAdmin(data); }catch(error: any){ if(axios.isAxiosError(error)){ error as AxiosError; switch(error.code){ case(axios.AxiosError.ERR_BAD_REQUEST): setErrorMessage("Acceso no autorizado"); break; case(axios.AxiosError.ERR_NETWORK): setErrorMessage("Conexión con el servidor fallida"); break; } } throw new Error(); } } toast.promise( fetch(),{ pending: "Subiendo datos...", success: "Los datos se han subido correctamente", error: "Sucedio un error" error: errorMessage } ) } return {register, handleSubmit, errors, onSubmit}; const getAdminInfo = async (): Promise<Admin | null> => { const token = localStorage.getItem('token'); if(token){ try{ const actualAdmin = await adminRepository.getAdminInfo(token); return actualAdmin; }catch(error: any){ if(axios.isAxiosError(error)){ error as AxiosError; showErrorAxios(error); } } return null; } return null; } return {register, handleSubmit, errors, onSubmit, getAdminInfo}; } No newline at end of file