Files
hsp-gdh-front/src/components/dashboard/patient/appointment/create/doctors.jsx

52 lines
1.7 KiB
JavaScript

import { useState, useEffect } from "react";
import { post } from "../../../../../modules/fetchManager";
function DoctorSelector({hospital,service,user,setDoctor}) {
const [doctors, setDoctors] = useState([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
useEffect(() => {
if(service && hospital) {
post('doctors/search',{service_id: service.id, hospital_id: hospital},user.token)
.then((data) => {
setError(null);
setLoading(false);
if(data.status === 404) {
setError("Aucun médecin trouvé");
return;
}
if(data.status >= 400) {
setError("Erreur serveur, veuillez réessayer plus tard");
return;
}
setDoctors(data.JSON);
return;
})
}
},[service,hospital]);
const onChange = (e) => {
setDoctor(e.target.value);
}
if(loading) return <p>Chargement...</p>;
if(error) return <p>{error}</p>;
return(
<div className="text-xl flex row justify-between items-center">
<label htmlFor="doctor_id">Choisir un médecin :</label>
<select name="doctor_id" id="doctor_id" className="w-48" onChange={onChange}>
<option value="">Choisir un médecin</option>
{doctors.map((doctor) => {
return <option value={doctor.id} key={doctor.id}>{doctor.first_name} {doctor.last_name}</option>
})}
</select>
</div>
);
}
export default DoctorSelector;