Feat: Add localisation nouveau chantier sur la carte

This commit is contained in:
Amaël Kesteman
2025-12-13 19:20:22 +01:00
parent a243d791f9
commit abdeaa7d45
4 changed files with 107 additions and 7 deletions

View File

@@ -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);