Feat: Add localisation nouveau chantier sur la carte
This commit is contained in:
@@ -20,6 +20,8 @@ import SelectRessource from '@/components/add/select/selectRessource';
|
||||
import { db } from '@/firebase_config';
|
||||
import { doc } from 'firebase/firestore';
|
||||
|
||||
import { useLocation } from '@/hooks/useLocation';
|
||||
|
||||
type RessourcesQte = [Ressources, number];
|
||||
|
||||
//Uniquement accessible par le RESPONSSABLE du chantier
|
||||
@@ -28,6 +30,7 @@ export default function AddChantier() {
|
||||
const { chantier, setChantier } = useChantier();
|
||||
const { user, setUser } = useUser();
|
||||
const { ressources, setRessources } = useRessources();
|
||||
const { geocodeAddress} = useLocation();
|
||||
|
||||
const [editMode,setEditMode] = useState(false);
|
||||
|
||||
@@ -62,6 +65,16 @@ export default function AddChantier() {
|
||||
};
|
||||
async function onConfirm(): Promise<void> {
|
||||
if (!isValidChantier() || !chefChantier) return;
|
||||
try {
|
||||
setLoading(true);
|
||||
const coords = await geocodeAddress(adresse);
|
||||
|
||||
if (!coords) {
|
||||
console.error("Impossible de géocoder l'adresse");
|
||||
alert("Adresse introuvable. Veuillez vérifier l'adresse.");
|
||||
setLoading(false);
|
||||
return;
|
||||
}
|
||||
const chantierDate = new Date(date);
|
||||
chantierDate.setHours(morning ? 0 : 12, 0, 0, 0);
|
||||
//CREATE NEW TYPE CHANTIER FOR FIRESTORE
|
||||
@@ -80,8 +93,8 @@ export default function AddChantier() {
|
||||
anomalies: [],
|
||||
dateDep: chantierDate,
|
||||
tempsEst: parseInt(duree) || 1,
|
||||
latitude: 0, //TODO
|
||||
longitude: 0, //TODO
|
||||
latitude: coords.latitude, //TODO
|
||||
longitude: coords.longitude, //TODO
|
||||
};
|
||||
const id = await addChantier(chantierFirestore as any);
|
||||
if (id) {
|
||||
@@ -95,7 +108,13 @@ export default function AddChantier() {
|
||||
} as Chantier);
|
||||
setOpenConfirmation(false);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Erreur lors de la création du chantier:", error);
|
||||
alert("Erreur lors de la création du chantier");
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
}
|
||||
|
||||
function onCancel(): void {
|
||||
setOpenConfirmation(false);
|
||||
|
||||
Reference in New Issue
Block a user