diff --git a/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js b/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js
index 75ca93b..9dd81fa 100644
--- a/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js
+++ b/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js
@@ -38,7 +38,14 @@ export const TrainDataView = ({
.then((res) => res.json())
.then((data) => {
if (!data) return;
- const {type, stationName, lineNumber, platformNumber, position, description} = data;
+ const {
+ type,
+ stationName,
+ lineNumber,
+ platformNumber,
+ position,
+ description,
+ } = data;
if (type == "Station") {
setLineNumber(lineNumber);
setPlatformNumber(platformNumber);
@@ -55,10 +62,8 @@ export const TrainDataView = ({
}, []);
const onLine = !!currentPosition?.toString().length;
const [dialog, setDialog] = useState(false);
- const [deleteDialog, setDeleteDialog] = useState(false);
const [posInput, setPosInput] = useState("");
const [descInput, setDescInput] = useState("");
- const [stationInput, setStationInput] = useState("");
const [stationNumberInput, setStationNumberInput] = useState("");
const [lineInput, setLineInput] = useState("");
return (
@@ -67,18 +72,13 @@ export const TrainDataView = ({
dialog={dialog}
setDialog={setDialog}
currentTrainData={currentTrainData}
- stationInput={stationInput}
stationNumberInput={stationNumberInput}
- posInput={posInput}
- descInput={descInput}
- setPosInput={setPosInput}
- setDescInput={setDescInput}
lineInput={lineInput}
setLineInput={setLineInput}
- station={{
- Station_JP: currentTrainData?.Pos,
- StationNumber: currentPosition[0],
- }}
+ posInput={posInput}
+ setPosInput={setPosInput}
+ descInput={descInput}
+ setDescInput={setDescInput}
/>
= (props) => {
setDialog={setDialog}
{...{
currentTrainData,
- stationInput,
stationNumberInput,
- posInput,
- descInput,
- setPosInput,
- setDescInput,
- station,
lineInput,
setLineInput,
+ posInput,
+ setPosInput,
+ descInput,
+ setDescInput
}}
/>
= (props) => {
setPlatformNumber={setPlatformNumber}
platformDescription={platformDescription}
platformNumber={platformNumber}
+ lineInput={lineInput}
+ setLineInput={setLineInput}
key={d.train + "-trainPosition"}
/>
)}
diff --git a/components/発車時刻表/LED_inside_Component/TrainPosition.tsx b/components/発車時刻表/LED_inside_Component/TrainPosition.tsx
index 7e41950..a371f7c 100644
--- a/components/発車時刻表/LED_inside_Component/TrainPosition.tsx
+++ b/components/発車時刻表/LED_inside_Component/TrainPosition.tsx
@@ -1,4 +1,4 @@
-import React, { FC, useEffect } from "react";
+import React, { FC, useEffect, useState } from "react";
import { Text, TextStyle, View, TouchableOpacity } from "react-native";
import { useStationList } from "../../../stateBox/useStationList";
import {
@@ -24,9 +24,11 @@ type Props = {
setDialog: (dialog: boolean) => void;
setDeleteDialog: (dialog: boolean) => void;
platformDescription: string;
- platformNumber: number;
+ platformNumber: string;
setPlatformDescription: (desc: string) => void;
- setPlatformNumber: (num: number) => void;
+ setPlatformNumber: (num: string) => void;
+ lineInput: string;
+ setLineInput: (line: string) => void;
};
export const TrainPosition: FC = ({
@@ -43,27 +45,55 @@ export const TrainPosition: FC = ({
setPlatformNumber,
platformDescription,
platformNumber,
+ setLineInput,
}) => {
- const { currentTrain } = useCurrentTrain();
const { stationList } = useStationList();
-
+ type data = {
+ type: string;
+ lineNumber: string;
+ platformNumber: string;
+ position: string;
+ stationName: string;
+ description: string;
+ };
+ const [database, setDatabase] = useState(null);
+ const [text, setText] = useState("");
+ const [masterText, setMasterText] = useState("");
+ useEffect(() => {
+ const text = `${currentTrainData?.PosNum} ${currentTrainData?.Line} ${currentTrainData?.Pos}`;
+ setText(trainIDSwitch ? text : masterText);
+ return () => {
+ setText("");
+ };
+ }, [masterText, trainIDSwitch]);
useEffect(() => {
fetch(
`https://n8n.haruk.in/webhook/JR-shikoku-PosID-v3?PosId=${currentTrainData?.PosNum}&lineName=${currentTrainData?.Line}&StationName=${currentTrainData?.Pos}`
)
.then((res) => res.json())
- .then((data: { type: string; platform: number; description: string }) => {
- const { type, platform, description } = data;
- setPlatformNumber(type == "Station" ? platform : undefined);
- setPlatformDescription(type == "Station" ? description : undefined);
+ .then((data: data) => {
+ const { type, platformNumber, description, lineNumber } = data;
+ setDatabase(data);
+ const { isBetween, Pos } = trainPosition(currentTrainData);
+ if (isBetween === true) {
+ // 移動中
+ setMasterText(`現在地:${Pos.from}→${Pos.to}間を走行中`);
+ } else {
+ if (Pos.Pos) {
+ let platform = platformNumber ? `${platformNumber}番乗り場` : "";
+ let line = lineNumber ? `${lineNumber}番線` : "";
+ setMasterText(
+ `現在地:${Pos.Pos} ${platform || line} ${description || ""}`
+ );
+ } else {
+ setMasterText("");
+ }
+ }
});
- }, [currentTrainData, currentTrain]);
-
- const trainPositionText = (trainData: trainDataType) => {
- const { isBetween, Pos } = trainPosition(trainData);
- if (isBetween === true) return `現在地:${Pos.from}→${Pos.to}間を走行中`;
- else return Pos.Pos == "" ? "" : `現在地:${Pos.Pos}`;
- };
+ return () => {
+ setMasterText("");
+ };
+ }, [currentTrainData?.PosNum, currentTrainData?.Line, currentTrainData?.Pos]);
return (
= ({
}}
onLongPress={() => {
const { isBetween, Pos } = trainPosition(currentTrainData);
+ setStationNumberInput(getStationID(currentTrainData?.Pos, stationList));
+ setPosInput(database?.platformNumber?.toString() || "");
if (isBetween === true) {
- if (platformNumber == undefined && platformDescription == undefined)
+ if (database?.platformNumber == undefined && database?.description == undefined)
return;
setStationInput(`${Pos.from}→${Pos.to}間`);
- setStationNumberInput(
- getStationID(currentTrainData?.Pos, stationList)
- );
- setPosInput(platformNumber?.toString() || "");
setDeleteDialog(true);
} else {
- setStationInput(Pos.Pos);
- setStationNumberInput(
- getStationID(currentTrainData?.Pos, stationList)
- );
- setDescInput(platformDescription || "");
- setPosInput(platformNumber?.toString() || "");
+ setStationInput(currentTrainData?.Pos);
+ setDescInput(database?.description || "");
+ setLineInput(database?.lineNumber?.toString() || "");
+ setPlatformNumber(database?.platformNumber?.toString() || "");
setDialog(true);
}
}}
@@ -104,13 +130,7 @@ export const TrainPosition: FC = ({
style={{ ...descriptionStyle, color: "green" }}
numberOfLines={numberOfLines}
>
- {`${
- trainIDSwitch
- ? currentTrainData?.PosNum + currentTrainData?.Line
- : trainPositionText(currentTrainData)
- } ${platformNumber ? platformNumber + "番線" : ""} ${
- platformDescription ? "(" + platformDescription + ")" : ""
- }`}
+ {text}
diff --git a/components/発車時刻表/LED_inside_Component/TrainPositionDataPush.tsx b/components/発車時刻表/LED_inside_Component/TrainPositionDataPush.tsx
index 59cdaf3..7145ef1 100644
--- a/components/発車時刻表/LED_inside_Component/TrainPositionDataPush.tsx
+++ b/components/発車時刻表/LED_inside_Component/TrainPositionDataPush.tsx
@@ -1,13 +1,13 @@
-import React, { FC, useState } from "react";
+import React, { FC } from "react";
import { Text } from "react-native";
import { Dialog, Input, Button } from "react-native-elements";
import { trainDataType } from "../../../lib/trainPositionTextArray";
-import { useCurrentTrain } from "../../../stateBox/useCurrentTrain";
+import { getStationID } from "@/lib/eachTrainInfoCoreLib/getStationData";
+import { useStationList } from "@/stateBox/useStationList";
type Props = {
dialog: boolean;
setDialog: (dialog: boolean) => void;
currentTrainData: trainDataType;
- stationInput: string;
stationNumberInput: string;
posInput: string;
descInput: string;
@@ -15,37 +15,33 @@ type Props = {
setPosInput: (pos: string) => void;
setDescInput: (desc: string) => void;
setLineInput: (line: string) => void;
- station: {
- Station_JP: string;
- StationNumber: string;
- };
+
};
export const TrainPositionDataPush: FC = ({
dialog,
setDialog,
currentTrainData,
- stationInput,
stationNumberInput,
lineInput,
setLineInput,
posInput,
- descInput,
setPosInput,
+ descInput,
setDescInput,
- station,
}) => {
+ const { stationList } = useStationList();
const sendPlatformData = () => {
fetch(`https://n8n.haruk.in/webhook/JR-shikoku-PosID-v3`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
- PosId: currentTrainData?.PosNum,//自動:位置情報ID
- StationId: station.StationNumber,//自動:駅ID
- StationName: station.Station_JP,//自動:駅名、漢字
- lineName: currentTrainData?.Line,//自動:位置情報路線ID(koutoku/yosan)
- Description: descInput,//手動入力、参考情報
- platformNumber: parseInt(posInput),//手動入力、乗り場表記
- lineNumber: parseInt(lineInput),//手動入力、番線表記
+ PosId: currentTrainData?.PosNum, //自動:位置情報ID
+ StationId: getStationID(currentTrainData?.Pos, stationList), //自動:駅ID
+ StationName: currentTrainData?.Pos, //自動:駅名、漢字
+ lineName: currentTrainData?.Line, //自動:位置情報路線ID(koutoku/yosan)
+ Description: descInput, //手動入力、参考情報
+ platformNumber: parseInt(posInput), //手動入力、乗り場表記
+ lineNumber: parseInt(lineInput), //手動入力、番線表記
}),
})
.then(() => {
@@ -60,9 +56,10 @@ export const TrainPositionDataPush: FC = ({
};
return (
);