Files
jrshikoku/lib/getTrainType.ts
2025-08-25 15:54:40 +00:00

82 lines
2.2 KiB
TypeScript

import { typeID } from "./getStringConfig";
type colorString =
| "aqua"
| "red"
| "#297bff"
| "#ff7300ff"
| "#00869ecc"
| "#727272cc"
| "#00b8d8cc"
| "#e000b0ff"
| "white"
| "black"
| "pink";
type trainTypeString =
| "快速"
| "特急"
| "寝台特急"
| "臨時"
| "普通列車"
| "普通列車(ワンマン)"
| "臨時快速"
| "臨時特急"
| "団体臨時"
| "貨物"
| "回送"
| "単機回送"
| "その他";
type trainTypeDataString = "rapid" | "express" | "normal" | "notService";
type getTrainType = (
d: typeID,
isWhiteMode?: boolean
) => {
color: colorString;
name: trainTypeString;
data: trainTypeDataString;
};
export const getTrainType: getTrainType = (nameString, whiteMode) => {
switch (nameString) {
case "Normal":
return {
color: whiteMode ? "black" : "white",
name: "普通列車",
data: "normal",
};
case "OneMan":
return {
color: whiteMode ? "black" : "white",
name: "普通列車(ワンマン)",
data: "normal",
};
case "Rapid":
case "OneManRapid":
return { color: whiteMode ? "#00b8d8cc" : "aqua", name: "快速", data: "rapid" };
case "LTDEXP":
return { color: "red", name: "特急", data: "express" };
case "NightLTDEXP":
return { color: whiteMode ? "#e000b0ff":"pink", name: "寝台特急", data: "express" };
case "SPCL":
case "SPCL_Normal":
return { color: "#297bff", name: "臨時", data: "normal" };
case "SPCL_Rapid":
return { color: "#297bff", name: "臨時快速", data: "normal" };
case "SPCL_EXP":
return { color: "#297bff", name: "臨時特急", data: "normal" };
case "Party":
return { color: "#ff7300ff", name: "団体臨時", data: "normal" };
case "Freight":
return { color: "#00869ecc", name: "貨物", data: "notService" };
case "Forwarding":
return { color: "#727272cc", name: "回送", data: "notService" };
case "FreightForwarding":
return { color: "#727272cc", name: "単機回送", data: "notService" };
default:
return {
color: whiteMode ? "black" : "white",
name: "その他",
data: "normal",
};
}
};