getStringConfigを移動
This commit is contained in:
parent
7216392c9b
commit
980b251d43
@ -10,6 +10,7 @@ import { InfogramText } from "@/components/ActionSheetComponents/EachTrainInfoCo
|
|||||||
import { useTrainMenu } from "@/stateBox/useTrainMenu";
|
import { useTrainMenu } from "@/stateBox/useTrainMenu";
|
||||||
import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
|
import { useAllTrainDiagram } from "@/stateBox/useAllTrainDiagram";
|
||||||
import { useNotification } from "@/stateBox/useNotifications";
|
import { useNotification } from "@/stateBox/useNotifications";
|
||||||
|
import { getStringConfig } from "@/lib/getStringConfig";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
data: { trainNum: string; limited: string };
|
data: { trainNum: string; limited: string };
|
||||||
@ -50,81 +51,39 @@ export const HeaderText: FC<Props> = ({
|
|||||||
// 列車名、種別、フォントの取得
|
// 列車名、種別、フォントの取得
|
||||||
const [typeName, trainName, fontAvailable, isOneMan, infogram] =
|
const [typeName, trainName, fontAvailable, isOneMan, infogram] =
|
||||||
useMemo(() => {
|
useMemo(() => {
|
||||||
const customTrainData = customTrainDataDetector(
|
const { type, trainName, trainNumDistance, infogram } =
|
||||||
trainNum,
|
customTrainDataDetector(trainNum, allCustomTrainData);
|
||||||
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) {
|
switch (true) {
|
||||||
case !!trainNum.includes("T"):
|
case trainName !== "":
|
||||||
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 !== "":
|
|
||||||
// 特急の場合は、列車名を取得
|
// 特急の場合は、列車名を取得
|
||||||
// 列番対称データがある場合はそれから列車番号を取得
|
// 列番対称データがある場合はそれから列車番号を取得
|
||||||
const distance = customTrainData.trainNumDistance;
|
|
||||||
const number =
|
const number =
|
||||||
distance !== null ? ` ${parseInt(trainNum) - distance}号` : "";
|
trainNumDistance !== null
|
||||||
const trainName = customTrainData.trainName + number;
|
? ` ${parseInt(trainNum) - trainNumDistance}号`
|
||||||
|
: "";
|
||||||
return [
|
return [
|
||||||
type,
|
typeString,
|
||||||
trainName,
|
trainName + number,
|
||||||
fontAvailable,
|
fontAvailable,
|
||||||
isOneMan,
|
isOneMan,
|
||||||
customTrainData.infogram,
|
infogram,
|
||||||
];
|
];
|
||||||
case trainData[trainData.length - 1] === undefined:
|
case trainData[trainData.length - 1] === undefined:
|
||||||
return [type, "", fontAvailable, isOneMan, customTrainData.infogram];
|
return [typeString, "", fontAvailable, isOneMan, infogram];
|
||||||
default:
|
default:
|
||||||
// 行先がある場合は、行先を取得
|
// 行先がある場合は、行先を取得
|
||||||
return [
|
return [
|
||||||
type,
|
typeString,
|
||||||
migrateTrainName(
|
migrateTrainName(
|
||||||
trainData[trainData.length - 1].split(",")[0] + "行き"
|
trainData[trainData.length - 1].split(",")[0] + "行き"
|
||||||
),
|
),
|
||||||
fontAvailable,
|
fontAvailable,
|
||||||
isOneMan,
|
isOneMan,
|
||||||
customTrainData.infogram,
|
infogram,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}, [trainData]);
|
}, [trainData]);
|
||||||
|
@ -22,6 +22,7 @@ import { BigButton } from "./atom/BigButton";
|
|||||||
import { Switch } from "react-native-elements";
|
import { Switch } from "react-native-elements";
|
||||||
import { migrateTrainName } from "@/lib/eachTrainInfoCoreLib/migrateTrainName";
|
import { migrateTrainName } from "@/lib/eachTrainInfoCoreLib/migrateTrainName";
|
||||||
import { OneManText } from "./ActionSheetComponents/EachTrainInfoCore/HeaderTextParts/OneManText";
|
import { OneManText } from "./ActionSheetComponents/EachTrainInfoCore/HeaderTextParts/OneManText";
|
||||||
|
import { getStringConfig } from "@/lib/getStringConfig";
|
||||||
export default function AllTrainDiagramView() {
|
export default function AllTrainDiagramView() {
|
||||||
const { goBack, navigate } = useNavigation();
|
const { goBack, navigate } = useNavigation();
|
||||||
const { keyList, allTrainDiagram, allCustomTrainData } = useAllTrainDiagram();
|
const { keyList, allTrainDiagram, allCustomTrainData } = useAllTrainDiagram();
|
||||||
@ -75,50 +76,6 @@ export default function AllTrainDiagramView() {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const getStringConfig = (type, id) => {
|
|
||||||
switch (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 !!id.includes("T"):
|
|
||||||
return ["単機回送", false, false];
|
|
||||||
case !!id.includes("R"):
|
|
||||||
case !!id.includes("E"):
|
|
||||||
case !!id.includes("L"):
|
|
||||||
case !!id.includes("A"):
|
|
||||||
case !!id.includes("B"):
|
|
||||||
return ["回送", false, false];
|
|
||||||
case !!id.includes("H"):
|
|
||||||
return ["試運転", false, false];
|
|
||||||
}
|
|
||||||
return ["", false, false];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const Item = ({ id, openTrainInfo }) => {
|
const Item = ({ id, openTrainInfo }) => {
|
||||||
const { img, trainName, type, trainNumDistance, infogram } =
|
const { img, trainName, type, trainNumDistance, infogram } =
|
||||||
customTrainDataDetector(id, allCustomTrainData);
|
customTrainDataDetector(id, allCustomTrainData);
|
||||||
|
60
lib/getStringConfig.ts
Normal file
60
lib/getStringConfig.ts
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
type typeID =
|
||||||
|
| "Normal"
|
||||||
|
| "OneMan"
|
||||||
|
| "Rapid"
|
||||||
|
| "OneManRapid"
|
||||||
|
| "LTDEXP"
|
||||||
|
| "NightLTDEXP"
|
||||||
|
| "SPCL"
|
||||||
|
| "SPCL_Normal"
|
||||||
|
| "SPCL_Rapid"
|
||||||
|
| "SPCL_EXP"
|
||||||
|
| "Freight"
|
||||||
|
| "Forwarding"
|
||||||
|
| "FreightForwarding"
|
||||||
|
| "Other";
|
||||||
|
type types = (types: typeID, id: string) => [string, boolean, boolean];
|
||||||
|
export const getStringConfig: types = (type, id) => {
|
||||||
|
switch (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 !!id.includes("T"):
|
||||||
|
return ["単機回送", false, false];
|
||||||
|
case !!id.includes("R"):
|
||||||
|
case !!id.includes("E"):
|
||||||
|
case !!id.includes("L"):
|
||||||
|
case !!id.includes("A"):
|
||||||
|
case !!id.includes("B"):
|
||||||
|
return ["回送", false, false];
|
||||||
|
case !!id.includes("H"):
|
||||||
|
return ["試運転", false, false];
|
||||||
|
}
|
||||||
|
return ["", false, false];
|
||||||
|
}
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user