diff --git a/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js b/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js index 120af56..8119a15 100644 --- a/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js +++ b/components/ActionSheetComponents/EachTrainInfo/TrainDataView.js @@ -26,19 +26,27 @@ export const TrainDataView = ({ const [mapsStationData, setMapsStationData] = useState(undefined); const [platformNumber, setPlatformNumber] = useState(); + const [lineNumber, setLineNumber] = useState(); const [platformDescription, setPlatformDescription] = useState(); useEffect(() => { //currentTrainData.Pos = "鴨川~端岡"; //test if (!currentTrainData) return; fetch( - `https://n8n.haruk.in/webhook/JR-shikoku-PosID?PosNum=${currentTrainData?.PosNum}&Line=${currentTrainData?.Line}` + `https://n8n.haruk.in/webhook/JR-shikoku-PosID-v3?PosId=${currentTrainData?.PosNum}&lineName=${currentTrainData?.Line}&StationName=${currentTrainData?.Pos}` ) .then((res) => res.json()) .then((data) => { - setPlatformNumber(data?.type == "Station" ? data?.platform : undefined); - setPlatformDescription( - data?.type == "Station" ? data?.description : undefined - ); + if (!data) return; + const {type, stationName, lineNumber, platformNumber, position, description} = data; + if (type == "Station") { + setLineNumber(lineNumber); + setPlatformNumber(platformNumber); + setPlatformDescription(description); + } else { + setLineNumber(undefined); + setPlatformNumber(undefined); + setPlatformDescription(undefined); + } }); }, [currentTrainData]); useEffect(() => { @@ -50,7 +58,8 @@ export const TrainDataView = ({ const { from, to, Pos } = PosData; if (isBetween === true) return `${from}~${to}`; if (Pos == "") return ""; - return `${Pos}${platformNumber ? ` ${platformNumber}番線` : ""}`; + if (platformNumber) return `${Pos} ${platformNumber}番乗り場`; + if (lineNumber) return `${Pos} ${lineNumber}番線`; }; const [dialog, setDialog] = useState(false); const [deleteDialog, setDeleteDialog] = useState(false); @@ -58,6 +67,7 @@ export const TrainDataView = ({ const [descInput, setDescInput] = useState(""); const [stationInput, setStationInput] = useState(""); const [stationNumberInput, setStationNumberInput] = useState(""); + const [lineInput, setLineInput] = useState(""); return ( <> @@ -100,6 +112,7 @@ export const TrainDataView = ({ getStationID(currentTrainData?.Pos, stationList) ); setPosInput(platformNumber?.toString() || ""); + setLineInput(lineNumber?.toString() || ""); setDeleteDialog(true); } else { setStationInput(Pos.Pos); @@ -108,6 +121,7 @@ export const TrainDataView = ({ ); setDescInput(platformDescription || ""); setPosInput(platformNumber?.toString() || ""); + setLineInput(lineNumber?.toString() || ""); setDialog(true); } }} diff --git a/components/ActionSheetComponents/EachTrainInfoCore/HeaderText.tsx b/components/ActionSheetComponents/EachTrainInfoCore/HeaderText.tsx index 9caced5..2a4ad6b 100644 --- a/components/ActionSheetComponents/EachTrainInfoCore/HeaderText.tsx +++ b/components/ActionSheetComponents/EachTrainInfoCore/HeaderText.tsx @@ -50,45 +50,62 @@ export const HeaderText: FC = ({ const { expoPushToken } = useNotification(); // 列車名、種別、フォントの取得 - const [typeName, trainName, fontAvailable, isOneMan, infogram, isEdit] = - useMemo(() => { - const { type, trainName, trainNumDistance, infogram, isEdit } = - customTrainDataDetector(trainNum, allCustomTrainData); - const [typeString, fontAvailable, isOneMan] = getStringConfig( - type, - trainNum - ); - switch (true) { - case trainName !== "": - // 特急の場合は、列車名を取得 - // 列番対称データがある場合はそれから列車番号を取得 - return [ - typeString, - trainName + - (trainNumDistance !== null - ? ` ${parseInt(trainNum) - trainNumDistance}号` - : ""), - fontAvailable, - isOneMan, - infogram, - isEdit, - ]; - case trainData[trainData.length - 1] === undefined: - return [typeString, "", fontAvailable, isOneMan, infogram, isEdit]; - default: - // 行先がある場合は、行先を取得 - return [ - typeString, - migrateTrainName( - trainData[trainData.length - 1].split(",")[0] + "行き" - ), - fontAvailable, - isOneMan, - infogram, - isEdit - ]; - } - }, [trainData]); + const [ + typeName, + trainName, + fontAvailable, + isOneMan, + infogram, + isEdit, + uwasa, + ] = useMemo(() => { + const { type, trainName, trainNumDistance, infogram, isEdit, uwasa } = + customTrainDataDetector(trainNum, allCustomTrainData); + const [typeString, fontAvailable, isOneMan] = getStringConfig( + type, + trainNum + ); + switch (true) { + case trainName !== "": + // 特急の場合は、列車名を取得 + // 列番対称データがある場合はそれから列車番号を取得 + return [ + typeString, + trainName + + (trainNumDistance !== null + ? ` ${parseInt(trainNum) - trainNumDistance}号` + : ""), + fontAvailable, + isOneMan, + infogram, + isEdit, + uwasa, + ]; + case trainData[trainData.length - 1] === undefined: + return [ + typeString, + "", + fontAvailable, + isOneMan, + infogram, + isEdit, + uwasa, + ]; + default: + // 行先がある場合は、行先を取得 + return [ + typeString, + migrateTrainName( + trainData[trainData.length - 1].split(",")[0] + "行き" + ), + fontAvailable, + isOneMan, + infogram, + isEdit, + uwasa, + ]; + } + }, [trainData]); return ( = ({ {isOneMan && } {trainName} - {isEdit &&alert("このアイコン、列車データはコミュニティによってリアルタイム追加されています。")} />} + {isEdit && ( + + alert( + `[このアイコン、列車データはコミュニティによってリアルタイム追加されています。]\n↓投稿者メモ↓\n${uwasa}` + ) + } + /> + )} diff --git a/components/発車時刻表/EachData.tsx b/components/発車時刻表/EachData.tsx index e9d5467..a228c5c 100644 --- a/components/発車時刻表/EachData.tsx +++ b/components/発車時刻表/EachData.tsx @@ -121,6 +121,7 @@ export const EachData: FC = (props) => { const [dialog, setDialog] = useState(false); const [deleteDialog, setDeleteDialog] = useState(false); const [posInput, setPosInput] = useState(""); + const [lineInput, setLineInput] = useState(""); const [descInput, setDescInput] = useState(""); const [stationInput, setStationInput] = useState(""); const [stationNumberInput, setStationNumberInput] = useState(""); @@ -164,6 +165,8 @@ export const EachData: FC = (props) => { setPosInput, setDescInput, station, + lineInput, + setLineInput, }} /> = ({ useEffect(() => { fetch( - `https://n8n.haruk.in/webhook/JR-shikoku-PosID?PosNum=${currentTrainData?.PosNum}&Line=${currentTrainData?.Line}` + `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 }) => { diff --git a/components/発車時刻表/LED_inside_Component/TrainPositionDataDelete.tsx b/components/発車時刻表/LED_inside_Component/TrainPositionDataDelete.tsx index b266d6c..439d989 100644 --- a/components/発車時刻表/LED_inside_Component/TrainPositionDataDelete.tsx +++ b/components/発車時刻表/LED_inside_Component/TrainPositionDataDelete.tsx @@ -17,7 +17,7 @@ export const TrainPositionDataDelete: FC = ({ stationNumberInput, }) => { const sendPlatformData = () => { - fetch(`https://n8n.haruk.in/webhook/JR-shikoku-PosID`, { + fetch(`https://n8n.haruk.in/webhook/JR-shikoku-PosID-v3`, { method: "DELETE", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ diff --git a/components/発車時刻表/LED_inside_Component/TrainPositionDataPush.tsx b/components/発車時刻表/LED_inside_Component/TrainPositionDataPush.tsx index 7bf8be2..59cdaf3 100644 --- a/components/発車時刻表/LED_inside_Component/TrainPositionDataPush.tsx +++ b/components/発車時刻表/LED_inside_Component/TrainPositionDataPush.tsx @@ -11,8 +11,10 @@ type Props = { stationNumberInput: string; posInput: string; descInput: string; + lineInput: string; setPosInput: (pos: string) => void; setDescInput: (desc: string) => void; + setLineInput: (line: string) => void; station: { Station_JP: string; StationNumber: string; @@ -24,6 +26,8 @@ export const TrainPositionDataPush: FC = ({ currentTrainData, stationInput, stationNumberInput, + lineInput, + setLineInput, posInput, descInput, setPosInput, @@ -31,16 +35,17 @@ export const TrainPositionDataPush: FC = ({ station, }) => { const sendPlatformData = () => { - fetch(`https://n8n.haruk.in/webhook/JR-shikoku-PosID`, { + fetch(`https://n8n.haruk.in/webhook/JR-shikoku-PosID-v3`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ - PosId: currentTrainData?.PosNum, - lineName: currentTrainData?.Line, - PlatformNum: parseInt(posInput), - Description: descInput, - StationName: station.Station_JP, - StationId: station.StationNumber, + 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),//手動入力、番線表記 }), }) .then(() => { @@ -60,11 +65,17 @@ export const TrainPositionDataPush: FC = ({ 駅名: {stationInput} 駅ナンバー: {stationNumberInput} +