From ff46c6ac8f6d9e1013e82dfe608ae214ac6e7c87 Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Fri, 13 Feb 2026 15:49:04 +0000 Subject: [PATCH] =?UTF-8?q?=E5=90=84=E3=82=B3=E3=83=B3=E3=83=9D=E3=83=BC?= =?UTF-8?q?=E3=83=8D=E3=83=B3=E3=83=88=E3=81=A7=E3=82=AD=E3=83=A3=E3=83=83?= =?UTF-8?q?=E3=82=B7=E3=83=A5=E3=83=90=E3=82=B9=E3=83=86=E3=82=A3=E3=83=B3?= =?UTF-8?q?=E3=82=B0=E3=82=92=E5=AE=9F=E8=A3=85=E3=81=97=E3=80=81=E9=81=8B?= =?UTF-8?q?=E7=94=A8hub=E3=83=87=E3=83=BC=E3=82=BF=E3=81=AE=E5=8F=96?= =?UTF-8?q?=E5=BE=97=E6=99=82=E3=81=AB=E3=82=BF=E3=82=A4=E3=83=A0=E3=82=B9?= =?UTF-8?q?=E3=82=BF=E3=83=B3=E3=83=97=E3=82=92=E8=BF=BD=E5=8A=A0=E3=80=82?= =?UTF-8?q?=E5=88=97=E8=BB=8A=E6=83=85=E5=A0=B1=E3=81=AE=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=82=92=E3=82=B9=E3=82=AF=E3=83=AD=E3=83=BC=E3=83=AB=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E3=81=AA=E5=BD=A2=E5=BC=8F=E3=81=AB=E5=A4=89=E6=9B=B4?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/発車時刻表/EachData.tsx | 16 +++++++++++++++- lib/webViewInjectjavascript.ts | 12 ++++++++++-- stateBox/useUnyohub.tsx | 4 +++- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/components/発車時刻表/EachData.tsx b/components/発車時刻表/EachData.tsx index d299c4c..347cdea 100644 --- a/components/発車時刻表/EachData.tsx +++ b/components/発車時刻表/EachData.tsx @@ -13,6 +13,7 @@ import { TrainName } from "@/components/発車時刻表/LED_inside_Component/Tra import { TrainPosition } from "@/components/発車時刻表/LED_inside_Component/TrainPosition"; import { StationPosPushDialog } from "@/components/発車時刻表/LED_inside_Component/TrainPositionDataPush"; import { StationPosDeleteDialog } from "@/components/発車時刻表/LED_inside_Component/TrainPositionDataDelete"; +import { ScrollingDescription } from "@/components/発車時刻表/LED_inside_Component/ScrollingDescription"; import { useStationList } from "@/stateBox/useStationList"; import useInterval from "@/lib/useInterval"; import dayjs from "dayjs"; @@ -245,7 +246,20 @@ export const EachData: FC = (props) => { /> )} {trainDescriptionSwitch && !!train.train_info && ( - + + + )} {trainDescriptionSwitch && !!train.uwasa && ( diff --git a/lib/webViewInjectjavascript.ts b/lib/webViewInjectjavascript.ts index d1aa186..89b190f 100644 --- a/lib/webViewInjectjavascript.ts +++ b/lib/webViewInjectjavascript.ts @@ -95,13 +95,19 @@ export const injectJavascriptData: InjectJavascriptData = ( return; } try{ - fetch("${API_ENDPOINTS.UNYOHUB_DATA}").then((response) => response.json()) + // キャッシュバスティング用にタイムスタンプを追加 + const cacheBuster = '?_=' + Date.now(); + fetch("${API_ENDPOINTS.UNYOHUB_DATA}" + cacheBuster) + .then((response) => response.json()) .then((data) => { if(!_.isEqual(data, unyohubData)) { unyohubData = data; console.log('[UnyoHub] Data updated:', unyohubData.length, 'items'); setReload(); } + }) + .catch((error) => { + console.error('[UnyoHub] Fetch error:', error); }); }catch(error){ console.error('[UnyoHub] Fetch error:', error); @@ -116,6 +122,9 @@ export const injectJavascriptData: InjectJavascriptData = ( } const foundUnyos = []; for (const unyo of unyohubData) { + if (!unyo.trains) { + continue; + } const found = unyo.trains.find(train => train.train_number === trainNumber); if (found) { foundUnyos.push({ @@ -129,7 +138,6 @@ export const injectJavascriptData: InjectJavascriptData = ( // position_forward順にソート foundUnyos.sort((a, b) => a.position_forward - b.position_forward); const result = foundUnyos.map(u => u.formations + '(' + u.position_forward + '-' + u.position_rear + ')').join(', '); - console.log('[UnyoHub] Found for', trainNumber, ':', result); return result; }; diff --git a/stateBox/useUnyohub.tsx b/stateBox/useUnyohub.tsx index a350950..c69c8b5 100644 --- a/stateBox/useUnyohub.tsx +++ b/stateBox/useUnyohub.tsx @@ -42,7 +42,9 @@ export const useUnyohub = (): UnyohubHook => { const fetchUnyohubData = async () => { try { - const response = await fetch(API_ENDPOINTS.UNYOHUB_DATA); + // キャッシュバスティング用にタイムスタンプを追加 + const cacheBuster = '?_=' + Date.now(); + const response = await fetch(API_ENDPOINTS.UNYOHUB_DATA + cacheBuster); const data = await response.json(); setUnyohubData(data); await AS.setItem(STORAGE_KEYS.UNYOHUB_DATA, JSON.stringify(data));