位置情報と地図フィルタリング機能の協調化

This commit is contained in:
harukin-expo-dev-env
2024-05-30 13:09:08 +00:00
parent 4194a83c8e
commit d07c05e523
4 changed files with 48 additions and 12 deletions

View File

@@ -10,15 +10,21 @@ import { stationIDPair } from "../lib/getStationList2";
import { lineListPair } from "../lib/getStationList";
import { SheetManager } from "react-native-actions-sheet";
import { useTrainMenu } from "../stateBox/useTrainMenu";
export default function TrainMenu({ stationData, style }) {
export default function TrainMenu({ style }) {
const { webview } = useCurrentTrain();
const mapRef = useRef();
const { navigate } = useNavigation();
const [stationPin, setStationPin] = useState([]);
const { selectedLine, setSelectedLine } = useTrainMenu();
const {
selectedLine,
setSelectedLine,
injectJavaScript,
setInjectJavaScript,
mapsStationData: stationData,
} = useTrainMenu();
useEffect(() => {
const stationPinData = [];
Object.keys(stationData).map((d, indexBase) =>
Object.keys(stationData).map((d, indexBase) => {
stationData[d].map((D, index) => {
if (!D.StationMap) return null;
if (selectedLine && selectedLine != d) return;
@@ -27,9 +33,14 @@ export default function TrainMenu({ stationData, style }) {
""
).split(",");
if (latlng.length == 0) return null;
if (index == 0 && stationPin.length > 0) {
setInjectJavaScript(
`MoveDisplayStation('${d}_${D.MyStation}_${D.Station_JP}');`
);
}
stationPinData.push({ D, d, latlng, indexBase: 0, index });
})
);
});
});
setStationPin(stationPinData);
}, [stationData, selectedLine]);
useEffect(() => {
@@ -185,7 +196,14 @@ export default function TrainMenu({ stationData, style }) {
</UsefulBox>
</View>
)}
<MapsButton onPress={() => navigate("Apps")} top={0} mapSwitch={"flex"} />
<MapsButton
onPress={() => {
navigate("Apps");
webview.current?.injectJavaScript(injectJavaScript);
}}
top={0}
mapSwitch={"flex"}
/>
</View>
);
}