engin rennomé en machine

This commit is contained in:
Rochas
2025-12-13 12:37:31 +01:00
parent dc02896fdd
commit d4b056b197
2 changed files with 21 additions and 21 deletions

View File

@@ -18,7 +18,7 @@ import DateTimePicker, { DateTimePickerEvent } from '@react-native-community/dat
import Constants from 'expo-constants'; //pour connaître la taille de la barre menu de l'OS en haut import Constants from 'expo-constants'; //pour connaître la taille de la barre menu de l'OS en haut
import SelectChafChantier from '@/components/selectChefChantier'; import SelectChafChantier from '@/components/selectChefChantier';
import SelectEngins from '@/components/selectEngins'; import SelectMachine from '@/components/selectMachine';
//Uniquement accessible par le RESPONSSABLE du chantier //Uniquement accessible par le RESPONSSABLE du chantier
//Pour créer ou modifier un chantier //Pour créer ou modifier un chantier
@@ -170,7 +170,7 @@ export default function AddChantier() {
{renderInut("Contact client","07 01 02 03 04 05",contact,setContact,true)} {renderInut("Contact client","07 01 02 03 04 05",contact,setContact,true)}
<View style = {styles.inputLine}> <View style = {styles.inputLine}>
<ThemedText style = {styles.inputName}>Engins:</ThemedText> <ThemedText style = {styles.inputName}>Engins:</ThemedText>
<SelectEngins style = {styles.input} sendEngins={setEngins}/> <SelectMachine style = {styles.input} sendMachines={setEngins}/>
</View> </View>
<View style = {styles.inputLine}> <View style = {styles.inputLine}>
<ThemedText style = {styles.inputName}>Chef de chantier:</ThemedText> <ThemedText style = {styles.inputName}>Chef de chantier:</ThemedText>

View File

@@ -12,26 +12,26 @@ import { getRessources } from "@/services/ressourcesService";
const { width, height } = Dimensions.get("window"); const { width, height } = Dimensions.get("window");
type Props = { type Props = {
sendEngins: (engins: Ressources[]) => void; sendMachines: (machine: Ressources[]) => void;
style?: StyleProp<ViewStyle>; style?: StyleProp<ViewStyle>;
}; };
export default function SelectEngins({style,sendEngins: sendEngins , ...otherProps }: Props) { export default function SelectMachine({style,sendMachines: sendMachines , ...otherProps }: Props) {
const { chantier, setChantier} = useChantier(); const { chantier, setChantier} = useChantier();
const [engins, setEngins] = useState<Ressources[]>([]); const [machines, setMachines] = useState<Ressources[]>([]);
const [tempStatus, setTempStatus] = useState(""); const [tempStatus, setTempStatus] = useState("");
const [isOpen,setIsOpen] = useState(false); const [isOpen,setIsOpen] = useState(false);
const [openConfirmation,setOpenConfirmation] = useState(false); const [openConfirmation,setOpenConfirmation] = useState(false);
const [listEngins,setListEngins] = useState<Ressources[]>([]); const [listMachines,setListMachines] = useState<Ressources[]>([]);
const AnimatedThemedView = Animated.createAnimatedComponent(ThemedView); const AnimatedThemedView = Animated.createAnimatedComponent(ThemedView);
useEffect(() => { useEffect(() => {
async function loadData() { async function loadData() {
try { try {
const data = await getRessources();//TODO engin/vehicule uniquement const data = await getRessources();//TODO machine uniquement
setListEngins(data); setListMachines(data);
} catch (error) { } catch (error) {
console.error("Erreur lors du chargement :", error); console.error("Erreur lors du chargement :", error);
} }
@@ -44,21 +44,21 @@ export default function SelectEngins({style,sendEngins: sendEngins , ...otherPro
setIsOpen(!isOpen); setIsOpen(!isOpen);
} }
function onPressRessource(engin: Ressources): void{ function onPressRessource(machine: Ressources): void{
const exists = engins.some(item => item.name === engin.name); const exists = machines.some(item => item.name === machine.name);
if(exists){ if(exists){
setEngins(prev => prev.filter(item => item.name !== engin.name)); setMachines(prev => prev.filter(item => item.name !== machine.name));
} }
else{ else{
setEngins(prevItem => [...prevItem, engin]); setMachines(prevItem => [...prevItem, machine]);
} }
sendEngins(engins); sendMachines(machines);
//setIsOpen(false); //setIsOpen(false);
} }
const EnginsSummary = ({ item }: { item: Ressources }) => { const MachineSummary = ({ item }: { item: Ressources }) => {
if (!item) return null; if (!item) return null;
const exists = engins.some(i => i.name === item.name); const exists = machines.some(i => i.name === item.name);
return( return(
<View style={{padding:10,width:"100%"}}> <View style={{padding:10,width:"100%"}}>
<ThemedButton lvl={exists?2:0} border={exists?3:0} style={{padding:10,width:"100%",borderRadius:10}} onPress={() => {onPressRessource(item)}}> <ThemedButton lvl={exists?2:0} border={exists?3:0} style={{padding:10,width:"100%",borderRadius:10}} onPress={() => {onPressRessource(item)}}>
@@ -72,16 +72,16 @@ export default function SelectEngins({style,sendEngins: sendEngins , ...otherPro
} }
const EnginsSearch = () => { const MachineSearch = () => {
return( return(
<Modal transparent={true}> <Modal transparent={true}>
<View style={styles.overlay}> <View style={styles.overlay}>
<ThemedView style={styles.overlayView}> <ThemedView style={styles.overlayView}>
<ThemedText style={{fontSize: 25}}>Rechercher un engin :</ThemedText> <ThemedText style={{fontSize: 25}}>Rechercher des machines :</ThemedText>
<FlatList <FlatList
style={{width:"100%"}} style={{width:"100%"}}
data={listEngins} data={listMachines}
renderItem={EnginsSummary} renderItem={MachineSummary}
keyExtractor={(_, index) => index.toString()} keyExtractor={(_, index) => index.toString()}
/> />
@@ -97,8 +97,8 @@ export default function SelectEngins({style,sendEngins: sendEngins , ...otherPro
return( return(
<ThemedButton style={style} lvl={1} onPress={() => onPressOpen()}> <ThemedButton style={style} lvl={1} onPress={() => onPressOpen()}>
<ThemedText style={styles.centeredText}>{engins?engins.length+" engin(s) sélectionné":"sélectionner des engin(s)"}</ThemedText> <ThemedText style={styles.centeredText}>{machines?machines.length+" machine(s) sélectionné":"sélectionner des machine(s)"}</ThemedText>
{isOpen && EnginsSearch()} {isOpen && MachineSearch()}
</ThemedButton> </ThemedButton>