74 lines
3.8 KiB
JavaScript
74 lines
3.8 KiB
JavaScript
import React, { createContext, useContext, useEffect, useState } from "react";
|
|
const initialState = {
|
|
allTrainDiagram: undefined,
|
|
setAllTrainDiagram: () => {},
|
|
};
|
|
|
|
const AllTrainDiagramContext = createContext(initialState);
|
|
|
|
export const useAllTrainDiagram = () => useContext(AllTrainDiagramContext);
|
|
|
|
export const AllTrainDiagramProvider = ({ children }) => {
|
|
const [allTrainDiagram, setAllTrainDiagram] = useState();
|
|
const [keyList, setKeyList] = useState(); // 第二要素
|
|
useEffect(
|
|
() => allTrainDiagram && setKeyList(Object.keys(allTrainDiagram)),
|
|
[allTrainDiagram]
|
|
);
|
|
const customData = {
|
|
"9395D":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:10#昭和町,発,22:13#栗林公園北口,発,22:16#栗林,発,22:19#木太町,発,22:23#屋島,発,22:36#古高松南,発,22:39#八栗口,発,22:43#讃岐牟礼,発,22:45#志度,発,22:49#オレンジタウン,発,22:53#造田,発,22:57#神前,発,23:00#讃岐津田,発,23:06#鶴羽,発,23:10#丹生,発,23:15#三本松,着,23:18#",
|
|
"9174M":"臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250314_20250413_tomorrow_together_worldtour.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:48#早島,発,22:55#妹尾,発,22:59#岡山,着,23:06#",
|
|
"9662D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#page=12#宇和島,発,10:00#北宇和島,発,10:03#高光,発,10:07#伊予吉田,発,10:21#立間,発,10:50#下宇和,発,10:36#卯之町,発,10:39#上宇和,発,10:42#伊予石城,発,10:46#双岩,発,10:53#八幡浜,着,10:58#",
|
|
"9664D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#page=12#卯之町,発,11:18#上宇和,発,11:21#伊予石城,発,11:25#双岩,発,11:34#八幡浜,着,11:39#",
|
|
"9663D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#page=12#八幡浜,発,10:07#双岩,発,10:16#伊予石城,発,10:23#上宇和,発,10:27#卯之町,着,10:30#",
|
|
"9665D":"宇和れんげまつり臨時列車,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250124_20250629_rinji_spring.pdf#page=12#八幡浜,発,13:38#双岩,発,13:45#伊予石城,発,13:52#上宇和,発,13:56#卯之町,発,14:07#下宇和,発,14:10#立間,発,14:18#伊予吉田,発,14:25#高光,発,14:31#北宇和島,発,14:35#宇和島,着,14:37#",
|
|
};
|
|
useEffect(() => {
|
|
fetch(
|
|
"https://n8n.haruk.in/webhook/CrowdTh%E2%82%AC71m3Ra7!ngLead%E2%82%ACr$"
|
|
)
|
|
.then((res) => res.json())
|
|
.then((res) => res.data)
|
|
.then((res) => {
|
|
const data = {};
|
|
res.forEach((d) => {
|
|
const keys = Object.keys(d);
|
|
data[keys] = d[keys];
|
|
});
|
|
return data;
|
|
})
|
|
.then((res) => {
|
|
Object.assign(res, customData);
|
|
setAllTrainDiagram(res);
|
|
})
|
|
.catch((d) => {
|
|
alert("allTrainDiagram取得エラー/再取得します");
|
|
alert(d);
|
|
fetch(
|
|
"https://script.google.com/macros/s/AKfycbx_s7RB-xTy-iAslFJg7LfplLV09-hjDXEjdi9kCP_JT45wq17Af_IPOKIOqIfaNDg/exec"
|
|
)
|
|
.then((res) => res.json())
|
|
.then((res) => {
|
|
const data = {};
|
|
res.forEach((d) => {
|
|
const keys = Object.keys(d);
|
|
data[keys] = d[keys];
|
|
});
|
|
return data;
|
|
})
|
|
.then((res) => {
|
|
Object.assign(res, customData);
|
|
setAllTrainDiagram(res);
|
|
});
|
|
});
|
|
}, []);
|
|
|
|
return (
|
|
<AllTrainDiagramContext.Provider
|
|
value={{ allTrainDiagram, setAllTrainDiagram,keyList }}
|
|
>
|
|
{children}
|
|
</AllTrainDiagramContext.Provider>
|
|
);
|
|
};
|