import React, { useEffect, useRef } from "react"; import { View, Text, TouchableOpacity, Platform, BackHandler, } from "react-native"; import ActionSheet, { SheetManager } from "react-native-actions-sheet"; import { useSafeAreaInsets } from "react-native-safe-area-context"; import { useTrainMenu } from "../../stateBox/useTrainMenu"; import lineColorList from "../../assets/originData/lineColorList"; import { stationIDPair } from "../../lib/getStationList2"; import { lineListPair } from "../../lib/getStationList"; export const TrainMenuLineSelector = () => { const { selectedLine, setSelectedLine, mapsStationData: stationData, } = useTrainMenu(); const actionSheetRef = useRef(null); const insets = useSafeAreaInsets(); const platformIs = Platform.OS == "android"; return ( } ref={actionSheetRef} isModal={Platform.OS == "ios"} containerStyle={platformIs ? { paddingBottom: insets.bottom } : {}} useBottomSafeAreaPadding={platformIs} > {Object.keys(stationData).map((d) => ( { SheetManager.hide("TrainMenuLineSelector"); setSelectedLine(selectedLine == d ? undefined : d); }} > {stationIDPair[d]} {lineListPair[stationIDPair[d]]} ))} ); }; const Handler = () => { useEffect(() => { const backAction = () => { SheetManager.hide("TrainMenuLineSelector"); return true; }; const backHandler = BackHandler.addEventListener( "hardwareBackPress", backAction ); return () => backHandler.remove(); }, []); return <>; };