getStringConfigを移動

This commit is contained in:
harukin-expo-dev-env
2025-08-08 09:25:40 +00:00
parent 7216392c9b
commit 980b251d43
3 changed files with 77 additions and 101 deletions

View File

@@ -10,6 +10,7 @@ import { InfogramText } from "@/components/ActionSheetComponents/EachTrainInfoCo
import { useTrainMenu } from "@/stateBox/useTrainMenu";
import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
import { useNotification } from "@/stateBox/useNotifications";
import { getStringConfig } from "@/lib/getStringConfig";
type Props = {
data: { trainNum: string; limited: string };
@@ -50,81 +51,39 @@ export const HeaderText: FC<Props> = ({
// 列車名、種別、フォントの取得
const [typeName, trainName, fontAvailable, isOneMan, infogram] =
useMemo(() => {
const customTrainData = customTrainDataDetector(
trainNum,
allCustomTrainData
const { type, trainName, trainNumDistance, infogram } =
customTrainDataDetector(trainNum, allCustomTrainData);
const [typeString, fontAvailable, isOneMan] = getStringConfig(
type,
trainNum
);
const [type, fontAvailable, isOneMan] = (() => {
switch (customTrainData.type) {
case "Normal":
return ["普通", true, false];
case "OneMan":
return ["普通", true, true];
case "Rapid":
return ["快速", true, false];
case "OneManRapid":
return ["快速", true, true];
case "LTDEXP":
return ["特急", true, false];
case "NightLTDEXP":
return ["特急", true, false];
case "SPCL":
return ["臨時", true, false];
case "SPCL_Normal":
return ["臨時", true, false];
case "SPCL_Rapid":
return ["臨時快速", true, false];
case "SPCL_EXP":
return ["臨時特急", true, false];
case "Freight":
return ["貨物", false, false];
case "Forwarding":
return ["回送", false, false];
case "FreightForwarding":
return ["単機回送", false, false];
case "Other":
switch (true) {
case !!trainNum.includes("T"):
return ["単機回送", false, false];
case !!trainNum.includes("R"):
case !!trainNum.includes("E"):
case !!trainNum.includes("L"):
case !!trainNum.includes("A"):
case !!trainNum.includes("B"):
return ["回送", false, false];
case !!trainNum.includes("H"):
return ["試運転", false, false];
}
return ["", false, false];
}
})();
switch (true) {
case customTrainData.trainName !== "":
case trainName !== "":
// 特急の場合は、列車名を取得
// 列番対称データがある場合はそれから列車番号を取得
const distance = customTrainData.trainNumDistance;
const number =
distance !== null ? ` ${parseInt(trainNum) - distance}` : "";
const trainName = customTrainData.trainName + number;
trainNumDistance !== null
? ` ${parseInt(trainNum) - trainNumDistance}`
: "";
return [
type,
trainName,
typeString,
trainName + number,
fontAvailable,
isOneMan,
customTrainData.infogram,
infogram,
];
case trainData[trainData.length - 1] === undefined:
return [type, "", fontAvailable, isOneMan, customTrainData.infogram];
return [typeString, "", fontAvailable, isOneMan, infogram];
default:
// 行先がある場合は、行先を取得
return [
type,
typeString,
migrateTrainName(
trainData[trainData.length - 1].split(",")[0] + "行き"
),
fontAvailable,
isOneMan,
customTrainData.infogram,
infogram,
];
}
}, [trainData]);