Files
harukin-expo-dev-env e8a2547ca4 tsx化
2025-12-05 10:43:57 +00:00

36 lines
1.1 KiB
TypeScript

import { useState, useEffect } from 'react';
import { useAllTrainDiagram } from '@/stateBox/useAllTrainDiagram';
import { searchSpecialTrain } from '@/lib/eachTrainInfoCoreLib/searchSpecialTrain';
export const useTrainDiagramData = (trainNum) => {
const { allTrainDiagram: trainList } = useAllTrainDiagram();
const [trainData, setTrainData] = useState([]);
const [trueTrainID, setTrueTrainID] = useState([]);
const [isManuallyExtended, setIsManuallyExtended] = useState(false);
useEffect(() => {
if (!trainNum) return;
// 手動で拡張されている場合は上書きしない
if (isManuallyExtended) return;
const TD = trainList[trainNum];
if (!TD) {
const specialTrainActualIDs = searchSpecialTrain(trainNum, trainList);
setTrueTrainID(specialTrainActualIDs || []);
setTrainData([]);
return;
}
setTrainData(TD.split('#').filter((d) => d !== ''));
}, [trainNum, trainList, isManuallyExtended]);
const setTrainDataExtended = (data) => {
setTrainData(data);
setIsManuallyExtended(true);
};
return { trainData, setTrainData: setTrainDataExtended, trueTrainID };
};