Commit 49933407 authored by Omar Luna Hernández's avatar Omar Luna Hernández
Browse files

Se renombra una variable y se agrega un método para obtener un pueblo por medio de su id

parent 94b07b90
Loading
Loading
Loading
Loading
+19 −6
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ import { useState } from "react";
import { TownDatasourceProd } from "../data/datasources/prod/town_datasource"
import { TownRepositoryProd } from "../data/repositories/prod/town_repository";
import { FieldErrors, Resolver, SubmitHandler, useForm } from "react-hook-form";
import { Town, TownFormValues } from "../infraestructure/entities/town";
import { Town } from "../infraestructure/entities/town";
import { toast } from "react-toastify";
import axios, { AxiosError } from "axios";
import { showErrorAxios } from "../utils/Messages";
@@ -10,8 +10,8 @@ import { showErrorAxios } from "../utils/Messages";
const townDatasource = new TownDatasourceProd();
const townRepository = new TownRepositoryProd(townDatasource);

const resolver: Resolver<TownFormValues> = async (data) => {
  const errors: FieldErrors<TownFormValues> = {};
const resolver: Resolver<Town> = async (data) => {
  const errors: FieldErrors<Town> = {};

  if (!data.name) {
    errors.name = {
@@ -60,11 +60,11 @@ export const useTown = (forceRenderList?: () => void) => {
    handleSubmit,
    formState: {errors},
    setValue
  } = useForm<TownFormValues>({resolver});
  } = useForm<Town>({resolver});
  const [townsList, setTownsList] = useState<Town[]>([]);
  const [errorMessage, setErrorMessage] = useState("");
  
  const onSubmit: SubmitHandler<TownFormValues> = (data: TownFormValues) => {
  const onSubmit: SubmitHandler<Town> = (data: Town) => {
    const fetch = async () => {
      try{
        await townRepository.registerTown(data);
@@ -107,5 +107,18 @@ export const useTown = (forceRenderList?: () => void) => {
    }
  }

  return {register, handleSubmit, errors, onSubmit, setValue, townsList, getTownsByState, setTownsList};
  const getTownById = async (idTown: number): Promise<Town | null> => {
    try{
      const town = await townRepository.getTown(idTown);
      return town;
    }catch(error: any){
      if(axios.isAxiosError(error)){
        error as AxiosError;
        showErrorAxios(error);
      }
    }
    return null;
  }

  return {register, handleSubmit, errors, onSubmit, setValue, townsList, getTownsByState, setTownsList, getTownById};
}
 No newline at end of file