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

Se agrega un useEffect que obtiene todos los pueblos y los muestra en una lista desplegable

parent a5400202
Loading
Loading
Loading
Loading
+51 −13
Original line number Diff line number Diff line
import { Dispatch, SetStateAction, useState } from "react";
import { Dispatch, SetStateAction, useEffect, useState } from "react";
import './assets/css/styles.css'
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faWindowClose, faEye, faEyeSlash } from "@fortawesome/free-solid-svg-icons";
import { useAdminRegister } from "../../../hooks/useAdminRegister";
import { usePasswoordVisibility } from "../../../hooks/usePasswordVisibility";
import { State } from "../../../infraestructure/entities/state";
import { useTown } from "../../../hooks/useTown";
import { Town } from "../../../infraestructure/entities/town";
import axios from "axios";

interface props {
  setWindowActive: Dispatch<SetStateAction<boolean>>,
  setShowRegisterPanel: Dispatch<SetStateAction<boolean>>
  setShowRegisterPanel: Dispatch<SetStateAction<boolean>>,
  statesList : State[],
}

export const SuperadminPanelAdminRegister = ({setWindowActive, setShowRegisterPanel}:props) => {
export const SuperadminPanelAdminRegister = ({setWindowActive, setShowRegisterPanel, statesList}:props) => {
  const {
    register,
    errors,
@@ -24,6 +29,30 @@ export const SuperadminPanelAdminRegister = ({setWindowActive, setShowRegisterPa
    handleMouseDownPassword
  } = usePasswoordVisibility();

  const {townsList, getTownsByState, setTownsList} = useTown();

  useEffect(() => {
    const getTownsList = async () => {
      try {
        if (statesList) {
          const townsListBackup: Town[] = [];
          statesList.forEach((state) => {
            getTownsByState(state.stateId, state.name);
            if (townsList) {
              townsListBackup.push(...townsList);
            }
          });
          setTownsList(townsListBackup);
        }
      } catch (error: any) {
        if (axios.isAxiosError(error)) {
          //console.log(error)
        }
      }
    }
    getTownsList();
  }, []);

  return (
    <div className="admin_register_wrap">
      <div className="admin_register_header">
@@ -90,10 +119,19 @@ export const SuperadminPanelAdminRegister = ({setWindowActive, setShowRegisterPa

          <div className="admin_input_cnt">
            <label>Pueblo mágico al que representa</label>
            {townsList === null || townsList.length==0
            ?
              <label>No hay pueblo registrados</label>
            :
              <select
                {...register('townAdmin')}>
                  <option key='1' value={1}>Zacatecas</option>
                {townsList.map((town) => {
                    return (
                      <option key={town.idTown} value={town.idTown}>{town.name}</option>
                    );
                })}
              </select>
            }
            <p className="error">{errors.townAdmin?.message}</p>
          </div>