項目の軽い整理

This commit is contained in:
harukin-expo-dev-env 2024-09-09 08:06:27 +00:00
parent b50937c63e
commit d6664fa45f
3 changed files with 19 additions and 30 deletions

View File

@ -17,12 +17,7 @@ import { SheetManager } from "react-native-actions-sheet";
import { useNavigation } from "@react-navigation/native"; import { useNavigation } from "@react-navigation/native";
export default function AllTrainDiagramView() { export default function AllTrainDiagramView() {
const { navigate } = useNavigation(); const { navigate } = useNavigation();
const { allTrainDiagram } = useAllTrainDiagram(); const { keyList } = useAllTrainDiagram();
const [keyList, setKeyList] = useState(); // 第二要素
useEffect(
() => allTrainDiagram && setKeyList(Object.keys(allTrainDiagram)),
[]
);
const [input, setInput] = useState(""); // 文字入力 const [input, setInput] = useState(""); // 文字入力
const [keyBoardVisible, setKeyBoardVisible] = useState(false); const [keyBoardVisible, setKeyBoardVisible] = useState(false);
@ -48,13 +43,10 @@ export default function AllTrainDiagramView() {
parseInt(d.replace("M", "").replace("D", "")) - train.trainNumDistance; parseInt(d.replace("M", "").replace("D", "")) - train.trainNumDistance;
TrainNumber = timeInfo + "号"; TrainNumber = timeInfo + "号";
} }
const type = getTrainType(train.type).data;
const limited = `${type}:${train.trainName}${TrainNumber}`;
const payload = { const payload = {
data: { data: { trainNum: d, limited },
trainNum: d,
limited: `${getTrainType(train.type).data}:${
train.trainName
}${TrainNumber}`,
},
navigate, navigate,
from: "AllTrainIDList", from: "AllTrainIDList",
}; };
@ -67,11 +59,9 @@ export default function AllTrainDiagramView() {
<FlatList <FlatList
style={{ flex: 1 }} style={{ flex: 1 }}
data={keyList?.filter((d) => d.includes(input))} data={keyList?.filter((d) => d.includes(input))}
renderItem={({ item }) => ( renderItem={({ item }) => <Item {...{ openTrainInfo, id: item }} />}
<Item openTrainInfo={openTrainInfo} id={item} />
)}
keyExtractor={(item) => item} keyExtractor={(item) => item}
initialNumToRender={100} //initialNumToRender={100}
/> />
<KeyboardAvoidingView <KeyboardAvoidingView
behavior="padding" behavior="padding"
@ -93,13 +83,9 @@ export default function AllTrainDiagramView() {
> >
<TextInput <TextInput
placeholder="列番を入力してフィルタリングします。" placeholder="列番を入力してフィルタリングします。"
onFocus={() => { onFocus={() => setKeyBoardVisible(true)}
setKeyBoardVisible(true);
}}
onEndEditing={() => {}} onEndEditing={() => {}}
onChange={(ret) => { onChange={(ret) => setInput(ret.nativeEvent.text)}
setInput(ret.nativeEvent.text);
}}
value={input} value={input}
style={{ flex: 1 }} style={{ flex: 1 }}
/> />

View File

@ -1,4 +1,4 @@
import React, { useRef, useState, useEffect } from "react"; import React, { useRef, useState, useEffect, useLayoutEffect } from "react";
import { View, Text, TouchableOpacity, Linking } from "react-native"; import { View, Text, TouchableOpacity, Linking } from "react-native";
import MapView, { Marker } from "react-native-maps"; import MapView, { Marker } from "react-native-maps";
import { MaterialCommunityIcons, Ionicons } from "@expo/vector-icons"; import { MaterialCommunityIcons, Ionicons } from "@expo/vector-icons";
@ -23,8 +23,8 @@ export default function TrainMenu({ style }) {
} = useTrainMenu(); } = useTrainMenu();
useEffect(() => { useEffect(() => {
const stationPinData = []; const stationPinData = [];
Object.keys(stationData).map((d, indexBase) => { Object.keys(stationData).forEach((d, indexBase) => {
stationData[d].map((D, index) => { stationData[d].forEach((D, index) => {
if (!D.StationMap) return null; if (!D.StationMap) return null;
if (selectedLine && selectedLine != d) return; if (selectedLine && selectedLine != d) return;
const latlng = D.StationMap.replace( const latlng = D.StationMap.replace(
@ -43,7 +43,7 @@ export default function TrainMenu({ style }) {
}); });
setStationPin(stationPinData); setStationPin(stationPinData);
}, [stationData, selectedLine]); }, [stationData, selectedLine]);
useEffect(() => { useLayoutEffect(() => {
mapRef.current.fitToCoordinates( mapRef.current.fitToCoordinates(
stationPin.map(({ latlng }) => ({ stationPin.map(({ latlng }) => ({
latitude: parseFloat(latlng[0]), latitude: parseFloat(latlng[0]),

View File

@ -6,12 +6,15 @@ const initialState = {
const AllTrainDiagramContext = createContext(initialState); const AllTrainDiagramContext = createContext(initialState);
export const useAllTrainDiagram = () => { export const useAllTrainDiagram = () => useContext(AllTrainDiagramContext);
return useContext(AllTrainDiagramContext);
};
export const AllTrainDiagramProvider = ({ children }) => { export const AllTrainDiagramProvider = ({ children }) => {
const [allTrainDiagram, setAllTrainDiagram] = useState(); const [allTrainDiagram, setAllTrainDiagram] = useState();
const [keyList, setKeyList] = useState(); // 第二要素
useEffect(
() => allTrainDiagram && setKeyList(Object.keys(allTrainDiagram)),
[allTrainDiagram]
);
const customData = {}; const customData = {};
useEffect(() => { useEffect(() => {
fetch( fetch(
@ -55,7 +58,7 @@ export const AllTrainDiagramProvider = ({ children }) => {
return ( return (
<AllTrainDiagramContext.Provider <AllTrainDiagramContext.Provider
value={{ allTrainDiagram, setAllTrainDiagram }} value={{ allTrainDiagram, setAllTrainDiagram,keyList }}
> >
{children} {children}
</AllTrainDiagramContext.Provider> </AllTrainDiagramContext.Provider>