diff --git a/app/(tabs)/addChantier.tsx b/app/(tabs)/addChantier.tsx index 8265a12..6ae4ce1 100644 --- a/app/(tabs)/addChantier.tsx +++ b/app/(tabs)/addChantier.tsx @@ -1,6 +1,7 @@ import ChantierSummary from '@/components/chantierSummary'; import SelectChantier from '@/components/selectChantier'; import SetStatus from '@/components/setStatus'; + import { ThemedView } from '@/components/theme/themed-view'; import React, { useEffect, useState } from 'react'; import { StyleSheet, ScrollView, Button, TextInput, Text, View } from 'react-native'; @@ -14,104 +15,70 @@ import { ThemedButton } from '@/components/theme/themed-button'; import { ThemedTextInput } from '@/components/theme/themed-textinput'; import Constants from 'expo-constants'; //pour connaître la taille de la barre menu de l'OS en haut - +//Uniquement accessible par le RESPONSSABLE du chantier +//Pour créer ou modifier un chantier export default function AddChantier() { const { chantier, setChantier } = useChantier(); const { user, setUser } = useUser(); const { ressources, setRessources } = useRessources(); + const [editMode,setEditMode] = useState(false); + const [loading, setLoading] = useState(false); - const [nom, setNom] = useState(''); + const [objet, setObjet] = useState(''); + const [date, setDate] = useState(''); const [chefChantier, setChefChantier] = useState(''); const [adresse, setAdresse] = useState(''); const [duree, setDuree] = useState(''); + const [contact, setContact] = useState(''); const [userSelect, setUserSelect] = useState([]); const [ressourcesSelect, setRessourcesSelect] = useState([]); - // Charger les utilisateurs et ressources - useEffect(() => { - async function load() { - setLoading(true); - const usersDb = await getUsers(); - const ressourcesDb = await getRessources(); - setUser(usersDb); - setRessources(ressourcesDb); - setLoading(false); - } - load(); - }, []); - async function handleAddChantier() { setLoading(true); - - // Vérification chef - const chefUser = user.find(u => u.id === chefChantier); - if (!chefUser) { - console.error("Chef introuvable !"); - setLoading(false); - return; - } - - // Trouver les Users de l'équipe - const equipeUsers = userSelect - .map(id => user.find(u => u.id === id)) - .filter(Boolean) as typeof user; - - // Trouver les ressources sélectionnées - const materielSelect = ressourcesSelect - .map(id => ressources.find(r => r.id.toString() === id)) - .filter(Boolean) as Ressources[]; - - - // Construire l'objet chantier complet - const chantierData: Omit = { - chef: chefUser!, - adresse, - dateDep: new Date(), - equipe: equipeUsers, - materiel: materielSelect, - etat: 'En attente', - latitude: 0, - longitude: 0, - anomalies: [], - tempsEst: 0, - vehicules: [], - contact: "", -}; - - // Ajouter le chantier dans Firestore - const id = await addChantier(chantierData); - setLoading(false); - - if (id) { - console.log("Chantier ajouté avec l'ID :", id); - setChantier({ ...chantierData, id }); - } } + + const renderInut = (name : string, preFill : string, value : string, setValue : ((text:string) => void)) => { + return ( + + {name}: + + + ); + }; + + return ( - + {editMode && - + } - Ajouter un nouveau chantier - - - - - Ajouter un équipier - Ajouter une ressources + + {editMode? "Edition d'un chantier" + :"Ajouter un nouveau chantier"} + + {renderInut("Objet","Renovation",objet,setObjet)} + {renderInut("Date de départ","TOTO : JOUR + Demi journé",date,setDate)} + {renderInut("Estimation de la durée (1/2 Journée)","14",duree,setDuree)} + {renderInut("Adresse","1 Rue de la Coutellerie, Paris",adresse,setAdresse)} + {renderInut("Contact client","07 01 02 03 04 05",contact,setContact)} + {renderInut("Vehicule","TODO pas un input bien sûre",adresse,setAdresse)} + {renderInut("Chef de chantier","TODO pas un input non plus",chefChantier,setChefChantier)} + + handleAddChantier()} > + + @@ -132,7 +99,6 @@ const styles = StyleSheet.create({ }, header: { marginTop:60, - marginBottom: 20, alignItems: "center", paddingHorizontal: 20, }, @@ -146,6 +112,15 @@ const styles = StyleSheet.create({ borderRadius: 10, backgroundColor: "transparent", }, + inputLine:{ + width: "100%", + //flexDirection: 'row', + paddingVertical: 5, + //alignItems: "center", + }, + inputName: { + fontSize: 16, + }, input: { width: "100%", borderRadius: 10, diff --git a/app/(tabs)/home.tsx b/app/(tabs)/home.tsx index 7d58e83..024ef23 100644 --- a/app/(tabs)/home.tsx +++ b/app/(tabs)/home.tsx @@ -24,12 +24,13 @@ export default function Home() { + + + + - {role === "chef" && ( - - - - )} + {role === "chef"} + ) @@ -43,13 +44,13 @@ const styles = StyleSheet.create({ container: { flex: 1, marginTop: Constants.statusBarHeight, //pour la barre menu du haut + paddingTop : 60, }, header: { flex: 1, width:"100%" }, summary:{ - marginTop:60, padding:10, }, anomaly:{