From d64eaf4671e55cdf99007d2d04a193ff760c31d7 Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Fri, 6 Dec 2024 00:43:14 +0000 Subject: [PATCH] =?UTF-8?q?=E5=89=8A=E9=99=A4=E3=82=B3=E3=83=9E=E3=83=B3?= =?UTF-8?q?=E3=83=89=E3=82=92=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/発車時刻表/EachData.tsx | 10 ++++ .../LED_inside_Component/TrainPosition.tsx | 26 ++++++++--- .../TrainPositionDataDelete.tsx | 46 +++++++++++++++++++ 3 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 components/発車時刻表/LED_inside_Component/TrainPositionDataDelete.tsx diff --git a/components/発車時刻表/EachData.tsx b/components/発車時刻表/EachData.tsx index 241edde..0604b9b 100644 --- a/components/発車時刻表/EachData.tsx +++ b/components/発車時刻表/EachData.tsx @@ -14,6 +14,7 @@ import { TrainName } from "./LED_inside_Component/TrainName"; import { customTrainDataDetector } from "../custom-train-data"; import { TrainPosition } from "./LED_inside_Component/TrainPosition"; import { TrainPositionDataPush } from "./LED_inside_Component/TrainPositionDataPush"; +import { TrainPositionDataDelete } from "./LED_inside_Component/TrainPositionDataDelete"; type Props = { d: { @@ -104,12 +105,20 @@ export const EachData: FC = (props) => { const [platformDescription, setPlatformDescription] = useState(); 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(""); return ( <> + = (props) => { setDescInput={setDescInput} setPosInput={setPosInput} setDialog={setDialog} + setDeleteDialog={setDeleteDialog} setPlatformDescription={setPlatformDescription} setPlatformNumber={setPlatformNumber} platformDescription={platformDescription} diff --git a/components/発車時刻表/LED_inside_Component/TrainPosition.tsx b/components/発車時刻表/LED_inside_Component/TrainPosition.tsx index f1dc0bf..a3ecdbc 100644 --- a/components/発車時刻表/LED_inside_Component/TrainPosition.tsx +++ b/components/発車時刻表/LED_inside_Component/TrainPosition.tsx @@ -23,6 +23,7 @@ type Props = { setDescInput: (desc: string) => void; setPosInput: (pos: string) => void; setDialog: (dialog: boolean) => void; + setDeleteDialog: (dialog: boolean) => void; platformDescription: string; platformNumber: number; setPlatformDescription: (desc: string) => void; @@ -38,6 +39,7 @@ export const TrainPosition: FC = ({ setDescInput, setPosInput, setDialog, + setDeleteDialog, setPlatformDescription, setPlatformNumber, platformDescription, @@ -86,12 +88,24 @@ export const TrainPosition: FC = ({ }} onLongPress={() => { const { isBetween, Pos } = trainPosition(currentTrainData); - if (isBetween === true) return; - setStationInput(Pos.Pos); - setStationNumberInput(getStationID(currentTrainData?.Pos, stationList)); - setDescInput(platformDescription || ""); - setPosInput(platformNumber?.toString() || ""); - setDialog(true); + if (isBetween === true) { + if (platformNumber == undefined && platformDescription == 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() || ""); + setDialog(true); + } }} > diff --git a/components/発車時刻表/LED_inside_Component/TrainPositionDataDelete.tsx b/components/発車時刻表/LED_inside_Component/TrainPositionDataDelete.tsx new file mode 100644 index 0000000..b266d6c --- /dev/null +++ b/components/発車時刻表/LED_inside_Component/TrainPositionDataDelete.tsx @@ -0,0 +1,46 @@ +import React, { FC } from "react"; +import { Text } from "react-native"; +import { Dialog, Button } from "react-native-elements"; +import { trainDataType } from "../../../lib/trainPositionTextArray"; +type Props = { + dialog: boolean; + setDialog: (dialog: boolean) => void; + currentTrainData: trainDataType; + stationInput: string; + stationNumberInput: string; +}; +export const TrainPositionDataDelete: FC = ({ + dialog, + setDialog, + currentTrainData, + stationInput, + stationNumberInput, +}) => { + const sendPlatformData = () => { + fetch(`https://n8n.haruk.in/webhook/JR-shikoku-PosID`, { + method: "DELETE", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + PosId: currentTrainData?.PosNum, + lineName: currentTrainData?.Line, + }), + }) + .then(() => { + alert("位置情報データ削除要求を送信しました。"); + setDialog(false); + }) + .catch(() => { + alert("位置情報データ削除要求の送信に失敗しました。"); + }); + }; + return ( + setDialog(false)}> + 以下のデータを誤情報として削除要求を出しますか? + 路線: {currentTrainData?.Line} + 地点ID: {currentTrainData?.PosNum} + 駅名: {stationInput} + 駅ナンバー: {stationNumberInput} + + ); +};