import React, { useState, useRef, useEffect } from 'react'; import { View, ScrollView, Text, TouchableOpacity } from 'react-native'; import { StatusBar } from 'expo-status-bar'; import { SafeAreaView } from 'react-native-safe-area-context'; import { Ionicons } from '@expo/vector-icons'; import { PageHeader, StyledContainer, } from './generalHelpers.jsx'; import ActionSheet from 'react-native-actions-sheet'; const typeMap = { EMS: 'Medical Services', Fire: 'Fire Department', Rescue: 'Fire & EMS' } const initList = [ { deptId: 0, dept: 'Darien EMS', deptAbv: 'DEMS', rank: 'Assistant Director', rankAbv: 'Asst. Director', type: 'EMS', primary: true, selected: true, admin: true, }, { deptId: 1, dept: 'Noroton Fire Department', deptAbv: 'NFD', rank: 'Lieutenant', rankAbv: 'Lt.', type: 'Fire', primary: false, selected: false, admin: true, }, { deptId: 2, dept: 'Stamford Fire Department', deptAbv: 'SFD', rank: 'Paramedic', rankAbv: 'EMT-P', type: 'Rescue', primary: false, selected: false, admin: true, }, ] export default function Landing() { const actionSheetRef = useRef(null); const [deptList, setDeptList] = useState(initList); const [selectedDepartment, setSelectedDepartment] = useState(deptList?.find((dept) => { return dept?.primary; })); const updateSelectedDepartment = (currentSelectedId, newSelectedId) => { if (currentSelectedId !== newSelectedId) { setDeptList(deptList?.map((item) => { if (item?.selected) { item.selected = false; } if (item?.deptId === newSelectedId) { item.selected = true; } return item; })) } }; useEffect(() => { if (deptList) { setSelectedDepartment(deptList?.find((dept) => { return dept?.selected; })); } }, [deptList]) return ( { actionSheetRef.current?.show(); }}> {selectedDepartment?.deptAbv} {deptList?.map((item) => { return ( {return updateSelectedDepartment(selectedDepartment?.deptId, item?.deptId)}} > {item?.dept} {item?.primary ? : null} {`${item?.deptAbv} - ${typeMap[item?.type]}`} ); })} ); }