diff --git a/components/trainMenu.js b/components/trainMenu.js index b075037..2b76461 100644 --- a/components/trainMenu.js +++ b/components/trainMenu.js @@ -6,16 +6,19 @@ import { useCurrentTrain } from "../stateBox/useCurrentTrain"; import { useNavigation } from "@react-navigation/native"; import lineColorList from "../assets/originData/lineColorList"; import { stationIDPair } from "../lib/getStationList2"; +import { lineListPair } from "../lib/getStationList"; export default function TrainMenu({ stationData, style }) { const { webview } = useCurrentTrain(); const mapRef = useRef(); const { navigate } = useNavigation(); const [stationPin, setStationPin] = useState([]); + const [selectedLine, setSelectedLine] = useState(undefined); useEffect(() => { const stationPinData = []; Object.keys(stationData).map((d, indexBase) => stationData[d].map((D, index) => { if (!D.StationMap) return null; + if (selectedLine && selectedLine != d) return; const latlng = D.StationMap.replace( "https://www.google.co.jp/maps/place/", "" @@ -25,7 +28,7 @@ export default function TrainMenu({ stationData, style }) { }) ); setStationPin(stationPinData); - }, [stationData]); + }, [stationData, selectedLine]); useEffect(() => { mapRef.current.fitToCoordinates( stationPin.map(({ latlng }) => ({ @@ -37,6 +40,32 @@ export default function TrainMenu({ stationData, style }) { }, [stationPin]); return ( + {selectedLine && ( + + + {selectedLine ? lineListPair[stationIDPair[selectedLine]] : "全線"} + + + )} + { - setStationPin( - stationData[d].map((D, index) => { - if (!D.StationMap) return null; - const latlng = D.StationMap.replace( - "https://www.google.co.jp/maps/place/", - "" - ).split(","); - if (latlng.length == 0) return null; - return { D, d, latlng, indexBase: 0, index }; - }) - ); - }} + onPress={() => setSelectedLine(selectedLine == d ? undefined : d)} > {stationIDPair[d]} diff --git a/lib/getStationList.js b/lib/getStationList.js index f1314de..06bb601 100644 --- a/lib/getStationList.js +++ b/lib/getStationList.js @@ -29,6 +29,17 @@ export const lineList = [ "鳴門線(池谷-鳴門間)[N]", "瀬戸大橋線(宇多津-児島間)[M]", ]; +export const lineListPair = { + Y: "予讃線(高松-松山間)[Y]", + U: "予讃線(松山-宇和島間)[U]", + S: "予讃線/愛ある伊予灘線(向井原-伊予大洲間)[S]", + D: "土讃線(多度津-高知間)[D]", + K: "土讃線(高知-窪川間)[K]", + T: "高徳線(高松-徳島間)[T]", + B: "徳島線(徳島-阿波池田)[B]", + N: "鳴門線(池谷-鳴門間)[N]", + M: "瀬戸大橋線(宇多津-児島間)[M]", +}; export const getStationList = async (props) => { if (status) return status;