ヘッダーに追加

This commit is contained in:
harukin-expo-dev-env 2025-08-08 10:31:33 +00:00
parent 980b251d43
commit 00e43772a0

View File

@ -11,6 +11,7 @@ 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"; import { getStringConfig } from "@/lib/getStringConfig";
import { FontAwesome } from "@expo/vector-icons";
type Props = { type Props = {
data: { trainNum: string; limited: string }; data: { trainNum: string; limited: string };
@ -49,9 +50,9 @@ export const HeaderText: FC<Props> = ({
const { expoPushToken } = useNotification(); const { expoPushToken } = useNotification();
// 列車名、種別、フォントの取得 // 列車名、種別、フォントの取得
const [typeName, trainName, fontAvailable, isOneMan, infogram] = const [typeName, trainName, fontAvailable, isOneMan, infogram, isEdit] =
useMemo(() => { useMemo(() => {
const { type, trainName, trainNumDistance, infogram } = const { type, trainName, trainNumDistance, infogram, isEdit } =
customTrainDataDetector(trainNum, allCustomTrainData); customTrainDataDetector(trainNum, allCustomTrainData);
const [typeString, fontAvailable, isOneMan] = getStringConfig( const [typeString, fontAvailable, isOneMan] = getStringConfig(
type, type,
@ -61,19 +62,19 @@ export const HeaderText: FC<Props> = ({
case trainName !== "": case trainName !== "":
// 特急の場合は、列車名を取得 // 特急の場合は、列車名を取得
// 列番対称データがある場合はそれから列車番号を取得 // 列番対称データがある場合はそれから列車番号を取得
const number =
trainNumDistance !== null
? ` ${parseInt(trainNum) - trainNumDistance}`
: "";
return [ return [
typeString, typeString,
trainName + number, trainName +
(trainNumDistance !== null
? ` ${parseInt(trainNum) - trainNumDistance}`
: ""),
fontAvailable, fontAvailable,
isOneMan, isOneMan,
infogram, infogram,
isEdit,
]; ];
case trainData[trainData.length - 1] === undefined: case trainData[trainData.length - 1] === undefined:
return [typeString, "", fontAvailable, isOneMan, infogram]; return [typeString, "", fontAvailable, isOneMan, infogram, isEdit];
default: default:
// 行先がある場合は、行先を取得 // 行先がある場合は、行先を取得
return [ return [
@ -84,6 +85,7 @@ export const HeaderText: FC<Props> = ({
fontAvailable, fontAvailable,
isOneMan, isOneMan,
infogram, infogram,
isEdit
]; ];
} }
}, [trainData]); }, [trainData]);
@ -99,14 +101,8 @@ export const HeaderText: FC<Props> = ({
<TouchableOpacity <TouchableOpacity
style={{ borderRadius: 5, flexDirection: "row", alignItems: "center" }} style={{ borderRadius: 5, flexDirection: "row", alignItems: "center" }}
onLongPress={() => { onLongPress={() => {
navigate("generalWebView", { const uri = `https://jr-shikoku-data-post-system.pages.dev?trainNum=${trainNum}&token=${expoPushToken}`;
uri: navigate("generalWebView", { uri, useExitButton: false });
"https://jr-shikoku-data-post-system.pages.dev?trainNum=" +
trainNum +
"&token=" +
expoPushToken,
useExitButton: false,
});
SheetManager.hide("EachTrainInfo"); SheetManager.hide("EachTrainInfo");
}} }}
disabled={!updatePermission} disabled={!updatePermission}
@ -125,6 +121,7 @@ export const HeaderText: FC<Props> = ({
{isOneMan && <OneManText />} {isOneMan && <OneManText />}
<Text style={textConfig}>{trainName}</Text> <Text style={textConfig}>{trainName}</Text>
<InfogramText infogram={infogram} /> <InfogramText infogram={infogram} />
{isEdit &&<FontAwesome name="commenting-o" size={20} color="white" style={{ marginLeft: 5 }} onPress={()=>alert("このアイコン、列車データはコミュニティによってリアルタイム追加されています。")} />}
</TouchableOpacity> </TouchableOpacity>
<View style={{ flex: 1 }} /> <View style={{ flex: 1 }} />