import { useState } from 'react'; import { Button, GestureResponderEvent, Pressable, ScrollView, StyleSheet, View, LayoutAnimation } from 'react-native'; import { ThemedTextInput } from './themed-textinpute'; import { ThemedView } from "./themed-view"; import { ThemedText } from './themed-text'; import { ThemedButton } from './themed-button'; import { Chantier, Chef, exempleChantier } from '@/class/class'; import { Dimensions } from "react-native"; import Animated, { Layout,LinearTransition,Easing,runOnJS } from 'react-native-reanimated'; import { useChantier } from '@/app/Context'; const screenHeight = Dimensions.get("window").height; /* */ export default function SelectChantier() { const { chantier, setChantier } = useChantier(); const [search, setSearch] = useState(''); const [isOpen,setIsOpen] = useState(false); const [chantiers,setChantiers] = useState([exempleChantier,exempleChantier,exempleChantier,exempleChantier,exempleChantier,exempleChantier]); const AnimatedThemedView = Animated.createAnimatedComponent(ThemedView); const AnimatedThemedText = Animated.createAnimatedComponent(ThemedText); const AnimatedThemedButton = Animated.createAnimatedComponent(ThemedButton); const AnimatedThemedTextInput = Animated.createAnimatedComponent(ThemedTextInput); function onPressOpen(): void { LayoutAnimation.configureNext( LayoutAnimation.Presets.easeInEaseOut ); setIsOpen(!isOpen); } function selectChantier(chantier: Chantier): void { setChantier(chantier); setIsOpen(false); } const renderChantier = (chantier:Chantier, index: number) => { return( selectChantier(chantier)}> adresse: {chantier.adresse} chef de chantier: {chantier.chef.prenom} {chantier.chef.nom} date de début: {chantier.dateDep} etat: {chantier.etat} ); }; return( onPressOpen()}> {isOpen ? "Close" : "Open"} {isOpen && {chantiers.map((chantier, index) => ( renderChantier(chantier, index) )) } } ) } const styles = StyleSheet.create({ windowClose:{ //backgroundColor: '#00FFFF', //borderRadius:10, padding: 10, width:"50%", height:60, overflow: 'hidden', }, windowOpean:{ //backgroundColor: '#00FFFF', //borderRadius:10, width:"100%", height: screenHeight/2, padding: 10, }, window:{ borderRadius:15, height: "100%", //backgroundColor: '#00FF00', overflow: 'hidden', }, menu:{ padding:5, flex: 1, minHeight: 0, //backgroundColor:'#FF00FF', }, list:{ flex: 1, overflow: 'hidden', borderRadius:10, }, chantiersList:{ //padding:5, //backgroundColor:'0000FF', //flexDirection: 'row', //alignItems: 'center', gap: 8, }, chantier:{ padding:5, //marginTop:5, //margin:5, borderRadius:10, //borderWidth: 1, }, input: { width: '100%', borderWidth: 1, borderRadius: 10, padding: 10, fontSize: 16, marginBottom:10, }, buttonClose:{ width:'100%', margin: 0, borderRadius: 15, padding: 10, height:40, }, buttonOpen:{ width:'50%', margin: 5, borderRadius: 10, padding: 10, height:40, }, buttonText:{ textAlign: 'center', } });