trainDiagramをmenuトップに移動、HeaderConfigを分離統合、バグ修正
This commit is contained in:
parent
52b15288b9
commit
1b16e09633
@ -6,10 +6,9 @@ import LottieView from "lottie-react-native";
|
||||
import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons";
|
||||
import { customTrainDataDetector } from "../custom-train-data";
|
||||
import { useInterval } from "../../lib/useInterval";
|
||||
import trainList from "../../assets/originData/trainList";
|
||||
import { objectIsEmpty } from "../../lib/objectIsEmpty";
|
||||
import { parseAllTrainDiagram } from "../../lib/parseAllTrainDiagram";
|
||||
import { getTrainType } from "../../lib/getTrainType";
|
||||
import { HeaderConfig } from "../../lib/HeaderConfig";
|
||||
|
||||
let diagramData = undefined;
|
||||
|
||||
@ -42,18 +41,9 @@ let diagramData = undefined;
|
||||
* 9031M サンライズ瀬戸琴平(延長)(臨時?)
|
||||
* 9062D 四国まんなか千年ものがたり(臨時?)
|
||||
*/
|
||||
export default function LED_vision({
|
||||
station,
|
||||
navigate,
|
||||
setTrainInfo,
|
||||
EachTrainInfoAsSR,
|
||||
}) {
|
||||
const HeaderConfig = {
|
||||
headers: {
|
||||
referer: "https://train.jr-shikoku.co.jp/sp.html",
|
||||
},
|
||||
};
|
||||
const [trainDiagram, setTrainDiagram] = useState(null); // 全列車のダイヤを列番ベースで整理
|
||||
export default function LED_vision(props) {
|
||||
const { station, navigate, setTrainInfo, EachTrainInfoAsSR, trainDiagram } =
|
||||
props;
|
||||
const [stationDiagram, setStationDiagram] = useState({}); //当該駅の全時刻表
|
||||
const [currentTrain, setCurrentTrain] = useState(null); //現在在線中の全列車
|
||||
const [currentTrainLoading, setCurrentTrainLoading] = useState("loading");
|
||||
@ -61,23 +51,6 @@ export default function LED_vision({
|
||||
const [trainIDSwitch, setTrainIDSwitch] = useState(false);
|
||||
const [trainDescriptionSwitch, setTrainDescriptionSwitch] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
//全列車リストを生成する副作用[無条件初回実行]
|
||||
fetch(
|
||||
"https://train.jr-shikoku.co.jp/g?arg1=station&arg2=traintimeinfo&arg3=dia",
|
||||
HeaderConfig
|
||||
)
|
||||
.then((response) => response.text())
|
||||
.then((d) => {
|
||||
if (d.indexOf("<title>404 Not Found</title>") != -1) throw Error;
|
||||
setTrainDiagram(parseAllTrainDiagram(d));
|
||||
})
|
||||
.catch((d) => {
|
||||
console.log("fallback");
|
||||
setTrainDiagram(trainList);
|
||||
});
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
// 現在の駅に停車するダイヤを作成する副作用[列車ダイヤと現在駅情報]
|
||||
if (!trainDiagram) {
|
||||
@ -378,7 +351,11 @@ const EachData = ({
|
||||
/>
|
||||
<LastStation lastStation={d.lastStation} />
|
||||
<DependTime time={d.time} />
|
||||
<StatusAndDelay currentTrain={currentTrain} train={d.train} />
|
||||
<StatusAndDelay
|
||||
currentTrain={currentTrain}
|
||||
train={d.train}
|
||||
station={props.station}
|
||||
/>
|
||||
</TouchableOpacity>
|
||||
{trainDescriptionSwitch && !!train.info && (
|
||||
<Description info={train.info} />
|
||||
@ -451,7 +428,7 @@ const checkDuplicateTrainData = (currentTrainArray) => {
|
||||
else return notNyujoData[0];
|
||||
};
|
||||
|
||||
const StatusAndDelay = ({ currentTrain, train }) => {
|
||||
const StatusAndDelay = ({ currentTrain, train, station }) => {
|
||||
// 土讃線複数存在対策
|
||||
const getTrainDelayStatus = (current) => {
|
||||
if (!current) return () => {};
|
||||
|
5
lib/HeaderConfig.js
Normal file
5
lib/HeaderConfig.js
Normal file
@ -0,0 +1,5 @@
|
||||
export const HeaderConfig = {
|
||||
headers: {
|
||||
referer: "https://train.jr-shikoku.co.jp/sp.html",
|
||||
},
|
||||
};
|
@ -33,11 +33,6 @@ export const lineList = [
|
||||
export const getStationList = async (props) => {
|
||||
if (status) return status;
|
||||
//駅リストイニシャライズ
|
||||
const HeaderConfig = {
|
||||
headers: {
|
||||
referer: "https://train.jr-shikoku.co.jp/sp.html",
|
||||
},
|
||||
};
|
||||
return await Promise.all([
|
||||
yosan,
|
||||
uwajima,
|
||||
|
@ -1,5 +1,5 @@
|
||||
export const getTrainType = (data) => {
|
||||
switch (data) {
|
||||
export const getTrainType = (nameString) => {
|
||||
switch (nameString) {
|
||||
case "Rapid":
|
||||
return { color: "aqua", name: "快速", data: "rapid" };
|
||||
case "LTDEXP":
|
||||
|
23
menu.js
23
menu.js
@ -25,6 +25,8 @@ import {
|
||||
} from "@expo/vector-icons";
|
||||
import LottieView from "lottie-react-native";
|
||||
import { StationDeteilView } from "./components/ActionSheetComponents/StationDeteilView";
|
||||
import { parseAllTrainDiagram } from "./lib/parseAllTrainDiagram";
|
||||
import trainList from "./assets/originData/trainList";
|
||||
|
||||
import LED_vision from "./components/発車時刻表/LED_vidion";
|
||||
import Sign from "./components/駅名表/Sign";
|
||||
@ -36,6 +38,7 @@ import { getStationList, lineList } from "./lib/getStationList";
|
||||
import { JRSTraInfo } from "./components/ActionSheetComponents/JRSTraInfo";
|
||||
import { EachTrainInfo } from "./components/ActionSheetComponents/EachTrainInfo";
|
||||
import useInterval from "./lib/useInterval";
|
||||
import { HeaderConfig } from "./lib/HeaderConfig";
|
||||
|
||||
export default function Menu(props) {
|
||||
const {
|
||||
@ -150,6 +153,25 @@ export default function Menu(props) {
|
||||
}
|
||||
}, [selectedCurrentStation]);
|
||||
|
||||
//全列車ダイヤリストを作成するuseEffect
|
||||
const [trainDiagram, setTrainDiagram] = useState(null); // 全列車のダイヤを列番ベースで整理
|
||||
useEffect(() => {
|
||||
//全列車リストを生成する副作用[無条件初回実行]
|
||||
fetch(
|
||||
"https://train.jr-shikoku.co.jp/g?arg1=station&arg2=traintimeinfo&arg3=dia",
|
||||
HeaderConfig
|
||||
)
|
||||
.then((response) => response.text())
|
||||
.then((d) => {
|
||||
if (d.indexOf("<title>404 Not Found</title>") != -1) throw Error;
|
||||
setTrainDiagram(parseAllTrainDiagram(d));
|
||||
})
|
||||
.catch((d) => {
|
||||
console.log("fallback");
|
||||
setTrainDiagram(trainList);
|
||||
});
|
||||
}, []);
|
||||
|
||||
const openStationACFromEachTrainInfo = (stationName) => {
|
||||
// EachTrainInfoAsSR.current?.hide();
|
||||
// const findStationEachLine = (selectLine) => {
|
||||
@ -226,6 +248,7 @@ export default function Menu(props) {
|
||||
navigate={navigate}
|
||||
setTrainInfo={setTrainInfo}
|
||||
EachTrainInfoAsSR={EachTrainInfoAsSR}
|
||||
trainDiagram={trainDiagram}
|
||||
/>
|
||||
)}
|
||||
<JRSTraInfoBox
|
||||
|
Loading…
Reference in New Issue
Block a user