From b07521e4ef6bf126f2a7debd0432489ef5655ba8 Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Sat, 23 Aug 2025 14:26:24 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=AA=E3=83=AA=E3=82=B8=E3=83=8A=E3=83=AB?= =?UTF-8?q?=E3=83=80=E3=82=A4=E3=83=A4=E8=A1=A8=E7=A4=BA=E5=8F=8D=E6=98=A0?= =?UTF-8?q?=E3=81=AB=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EachTrainInfo/EachStopList.js | 55 ++++++++++++++----- .../EachTrainInfo/ShowSpecialTrain.js | 41 ++++++++------ .../EachTrainInfoCore.js | 7 ++- .../searchSpecialTrain.ts | 8 ++- 4 files changed, 73 insertions(+), 38 deletions(-) diff --git a/components/ActionSheetComponents/EachTrainInfo/EachStopList.js b/components/ActionSheetComponents/EachTrainInfo/EachStopList.js index cde3b8a..5ebbb70 100644 --- a/components/ActionSheetComponents/EachTrainInfo/EachStopList.js +++ b/components/ActionSheetComponents/EachTrainInfo/EachStopList.js @@ -12,9 +12,9 @@ export const EachStopList = ({ openStationACFromEachTrainInfo, showThrew, }) => { - if(!showThrew){ - if(i.split(",")[1] == "通過") return null; - if(i.split(",")[1] == "通編") return null; + if (!showThrew) { + if (i.split(",")[1] == "通過") return null; + if (i.split(",")[1] == "通編") return null; } const [station, se, time] = i.split(","); // 阿波池田,発,6:21 const Stations = stationList @@ -33,6 +33,24 @@ export const EachStopList = ({ const StationNumbers = Stations && Stations.filter((d) => d.StationNumber).map((d) => d.StationNumber); + const [seString, seType] = (() => { + switch (se) { + case "発": + return ["出発", "normal"]; + case "着": + return ["到着", "normal"]; + case "発編": + return ["出発", "community"]; + case "着編": + return ["到着", "community"]; + case "通編": + return ["通過", "community"]; + case "頃編": + return ["頃", "community"]; + default: + return [se, "normal"]; + } + })(); // Array [ "T01", "B01",] const lineIDs = []; const EachIDs = []; @@ -48,7 +66,7 @@ export const EachStopList = ({ .set("hour", parseInt(time.split(":")[0])) .set("minute", parseInt(time.split(":")[1])) .add(isNaN(currentTrainData?.delay) ? 0 : currentTrainData.delay, "minute"); - const timeString = se == "通過" ? "" : dates.format("HH:mm").split(":"); + const timeString = se == "通過" ? "" : dates.format("HH:mm"); return ( - + {station} @@ -122,12 +149,13 @@ export const EachStopList = ({ {time} @@ -137,18 +165,17 @@ export const EachStopList = ({ style={{ fontSize: 20, color: isNaN(currentTrainData?.delay) - ? "black" + ? `#000${se == "通過" || se == "通編" ? "5" : ""}` : currentTrainData?.delay == 0 - ? "black" + ? `#000${se == "通過" || se == "通編" ? "5" : ""}` : "red", width: 60, + fontStyle: seType == "community" ? "italic" : "normal", }} > - {se == "通過" ? "レ" : `${timeString[0]}:${timeString[1]}`} - - - {se?.replace("発", "出発").replace("着", "到着")} + {se == "通過" ? "レ" : timeString} + {seString} diff --git a/components/ActionSheetComponents/EachTrainInfo/ShowSpecialTrain.js b/components/ActionSheetComponents/EachTrainInfo/ShowSpecialTrain.js index ea8e121..38dc720 100644 --- a/components/ActionSheetComponents/EachTrainInfo/ShowSpecialTrain.js +++ b/components/ActionSheetComponents/EachTrainInfo/ShowSpecialTrain.js @@ -14,24 +14,29 @@ export const ShowSpecialTrain = ({ }; return ( <> - {isTrainDataNothing && trueTrainID && ( - replaceSpecialTrainDetail(trueTrainID)} - style={{ - padding: 10, - flexDirection: "row", - borderColor: "blue", - borderWidth: 1, - margin: 10, - borderRadius: 5, - alignItems: "center", - }} - > - - 本来の列車情報を表示 - - - )} + {isTrainDataNothing && + trueTrainID?.map((ids) => { + return ( + replaceSpecialTrainDetail(ids)} + style={{ + padding: 10, + flexDirection: "row", + borderColor: "blue", + borderWidth: 1, + margin: 10, + borderRadius: 5, + alignItems: "center", + }} + > + + 本来の列車情報候補を表示:({ids}) + + + ); + })} ); }; diff --git a/components/ActionSheetComponents/EachTrainInfoCore.js b/components/ActionSheetComponents/EachTrainInfoCore.js index 92a6521..60daa28 100644 --- a/components/ActionSheetComponents/EachTrainInfoCore.js +++ b/components/ActionSheetComponents/EachTrainInfoCore.js @@ -197,15 +197,15 @@ export const EachTrainInfoCore = ({ const scrollHandlers = actionSheetRef ? useScrollHandlers("scrollview-1", actionSheetRef) : null; - const [trueTrainID, setTrueTrainID] = useState(); + const [trueTrainID, setTrueTrainID] = useState([]); useEffect(() => { if (!data.trainNum) return; const TD = trainList[data.trainNum]; setHeadStation([]); setTailStation([]); if (!TD) { - const specialTrainActualID = searchSpecialTrain(data.trainNum, trainList); - setTrueTrainID(specialTrainActualID || undefined); + const specialTrainActualIDs = searchSpecialTrain(data.trainNum, trainList); + setTrueTrainID(specialTrainActualIDs || []); setTrainData([]); return; } @@ -494,6 +494,7 @@ export const EachTrainInfoCore = ({ /> ) )} + 背景が緑色、時刻が斜体になっている時刻はコミュニティで追加されている独自データです。 {tailStation.length != 0 && tailStation.map(({ station, dia }, index) => showTailStation.findIndex((d) => d == index) == -1 ? ( diff --git a/lib/eachTrainInfoCoreLib/searchSpecialTrain.ts b/lib/eachTrainInfoCoreLib/searchSpecialTrain.ts index 535f68d..ee444b1 100644 --- a/lib/eachTrainInfoCoreLib/searchSpecialTrain.ts +++ b/lib/eachTrainInfoCoreLib/searchSpecialTrain.ts @@ -8,8 +8,9 @@ export const searchSpecialTrain = (trainNum: string, trainList: any[]) => { } return false; }; - if (search("D")) return searchBase + "D"; - if (search("M")) return searchBase + "M"; + const returnBase = []; + if (search("D")) returnBase.push(searchBase + "D"); + if (search("M")) returnBase.push(searchBase + "M"); //増結いしづちの場合 const baseStr = trainNum @@ -21,6 +22,7 @@ export const searchSpecialTrain = (trainNum: string, trainList: any[]) => { if (9000 < baseNum && baseNum < 9047) { //いしづちの1001M-1046Mが9000番台になっている場合に発動 const TD = trainList[`${baseNum - 8000}M`]; - if (TD) return `${baseNum - 8000}M`; + if (TD) returnBase.push(`${baseNum - 8000}M`); } + return returnBase; };