1716 Commits

Author SHA1 Message Date
harukin-expo-dev-env b6e6d2e809 Merge commit '9eff185351a96859f9fb06c08b073c7b3e5cefa3' into develop 2026-06-25 17:46:42 +00:00
harukin-expo-dev-env 9eff185351 7.0.7 release 2026-06-25 17:36:48 +00:00
harukin-expo-dev-env 10e9aece2b Merge commit 'a1b914485134d0c1d1226a45ca43cd35505eeeef' into patch/6.x 2026-06-25 17:35:52 +00:00
harukin-expo-dev-env a1b9144851 Merge commit '16a62aa3bad5279d05dab49160a31388e4f9aef5' into develop 2026-06-25 17:16:17 +00:00
harukin-expo-dev-env 16a62aa3ba 小見出しも並べられるように変更 2026-06-25 16:57:20 +00:00
harukin-expo-dev-env f8395d7270 Hubアイコンを権限餅専用に 2026-06-25 16:20:04 +00:00
harukin-expo-dev-env 5a0fb9f43c 団体臨時から臨時を削除 2026-06-25 16:01:31 +00:00
harukin-expo-dev-env 9d188198a9 Merge commit 'cb1d2665d811ff6cc2a75806654c1e9f823201e7' into develop 2026-06-25 14:27:38 +00:00
harukin-expo-dev-env cb1d2665d8 切り替えスイッチを設置 2026-06-25 14:27:24 +00:00
harukin-expo-dev-env 3bbdd9d0a6 レイアウト機能調整 2026-06-25 13:26:51 +00:00
harukin-expo-dev-env 159f91e55e Merge commit 'daf261b4f842a5fa050cde0643d86654ae45150a' into feature/train-info-edit 2026-06-23 17:12:37 +00:00
harukin-expo-dev-env daf261b4f8 Merge commit '50fa4de9196adbb86313acadbe403d9a64af585a' into develop 2026-06-23 17:12:31 +00:00
harukin-expo-dev-env 50fa4de919 アイコンステータスの表示改善 2026-06-23 17:11:28 +00:00
harukin-expo-dev-env ab2061b2bd unyohubアイコン対応 2026-06-23 16:40:44 +00:00
harukin-expo-dev-env 4dd0775640 feat: add userscript generator for JR Shikoku operation info
- Implemented a script to generate a Tampermonkey userscript from ndView.tsx.
- Extracted and modified the operation page script body to include necessary postMessage functions.
- Added metadata for the userscript including name, namespace, version, and match URL.
- Ensured compatibility with Tampermonkey's GM_download for image capture.
2026-06-20 06:07:39 +00:00
harukin-expo-dev-env 4f81431ccd feat: 列車情報のキャプチャ機能を追加し、スタイルを改善 2026-06-10 05:04:09 +00:00
harukin-expo-dev-env 6371787b47 Merge commit '0ced766608b43cd9244817a0732246ca8b9c5f38' into develop 2026-06-06 08:35:26 +00:00
harukin-expo-dev-env 0ced766608 fix: バージョンコードを7.0.6に更新 2026-06-05 12:48:19 +00:00
harukin-expo-dev-env 26b61cdbc9 Merge commit '0e6763d9545f03b1331fc60e050dfa346afc4153' into patch/6.x 2026-06-05 12:35:07 +00:00
harukin-expo-dev-env 0e6763d954 feat: えれサイトの列車情報をグループ化し、表示を改善 2026-06-05 12:31:54 +00:00
harukin-expo-dev-env 7ba9a750ea feat: 録画の削除機能を追加し、スワイプ操作での削除を実装 2026-06-01 12:11:00 +00:00
harukin-expo-dev-env f9b2786809 Merge commit '95f498e89418c9bb8c551987f0b3f1b693c05c1d' into develop 2026-05-20 15:29:09 +00:00
harukin-expo-dev-env 95f498e894 fix: マリンライナー編成順序の修正(elesite連携)
マリンライナー(3xxxM)の岡山〜高松間の駅シーケンスを
elesiteTrainOrder.ts と webViewInjectjavascript.ts に追加。
originData には JR 西日本区間の駅がないため、
MARINE_STATION_SEQUENCE としてインラインで定義した。

これにより heading_to:"unknown" のマリン系統でも
正しく進行方向を推論できるようになり、
連結順序が逆順になる問題を解消した。

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-20 13:48:47 +00:00
harukin-expo-dev-env a88f7bac09 Merge commit '23ef404f7b8f728749024b74e1b8742d5b75d529' into develop 2026-05-20 06:18:08 +00:00
harukin-expo-dev-env 23ef404f7b fix: update version code to 7.0.5 in SettingTopPage component 2026-05-20 06:17:56 +00:00
harukin-expo-dev-env 709cbda835 feat: add button for paper timetable in FixedContentBottom component 2026-05-20 06:02:50 +00:00
harukin-expo-dev-env f2bb72e40d Merge commit '6650a8c9513d426701abeef65d35bae0f8d79bb3' into patch/6.x 2026-05-19 03:07:03 +00:00
harukin-expo-dev-env 6650a8c951 feat: add experimental diagram URL support and update related components 2026-05-19 03:06:45 +00:00
harukin-expo-dev-env d76daf8791 Merge commit '8d7005170c0a7b89587871aef84ebb55df473c04' into patch/6.x 2026-05-15 17:22:28 +00:00
harukin-expo-dev-env 8d7005170c Refactor Elesite sorting logic and introduce new utility functions
- Moved the Elesite sorting logic to a new module `elesiteTrainOrder.ts`.
- Created utility functions to infer heading direction and sort Elesite entries by train number.
- Updated `injectJavascriptData` to utilize the new sorting logic and handle station sequences.
- Refactored `useElesite` to use the new sorting utility for improved readability and maintainability.
2026-05-15 17:21:18 +00:00
harukin-expo-dev-env 37e147e3be Merge commit '26aa71866ae1c949f0c31c7899ef68c30d111a61' into develop 2026-05-05 10:43:58 +00:00
harukin-expo-dev-env 26aa71866a feat: add Koboke Observatory to tourist spots data 2026-05-05 09:10:34 +00:00
harukin-expo-dev-env 2274934731 fix: update version code to 7.0.4 2026-05-05 08:12:25 +00:00
harukin-expo-dev-env 6c674a3f38 Merge commit 'd72acabe9de6b17c5e2206bea9f69ddd2ae3aea1' into patch/6.x 2026-05-05 08:10:22 +00:00
harukin-expo-dev-env d72acabe9d Merge commit '3e0e4876bc64e73100b6c825d6218201577a6f9a' into develop 2026-05-05 08:09:57 +00:00
harukin-expo-dev-env 3e0e4876bc feat: purple reload button when mock API is active
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-05 08:06:55 +00:00
harukin-expo-dev-env 3ab0b332ec Merge commit '5e6ff42fe6d6e30b30ae96e13fcd598197ca5fd8' into develop 2026-05-05 08:04:56 +00:00
harukin-expo-dev-env 5e6ff42fe6 Add script to compile web inject JavaScript with minification and obfuscation options
- Introduced `compile-web-script.ts` for generating JavaScript files for userscripts.
- Supports options for minification and obfuscation.
- Generates base JS, minified JS, and obfuscated userscript.
- Configurable via command line arguments and environment variables.
2026-05-05 08:04:47 +00:00
harukin-expo-dev-env 4916edd498 fix: use /train-positions/current endpoint for mock polling
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-03 18:25:47 +00:00
harukin-expo-dev-env 0c582765db feat: poll mock API server for live train positions
- positionMasters: add fetchMockTrainPositions() targeting
  /train-positions/latest on the mock API server
- useTrainMenu: when mockApiFeatureEnabled and not recording/playing,
  poll /train-positions/latest every 15s and update mockTrainPositions
  (same interval as live mode); on mode switch updates immediately
- useCurrentTrain:
  - playing: use local recording data (no network call)
  - mock ON idle: fetch from mock API server (15s poll driven by useTrainMenu)
  - mock OFF: fetch from real backend as before
- Recording still forces mock OFF so real API data is captured

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-03 18:01:12 +00:00
harukin-expo-dev-env ff6a8c9518 feat: integrate position-masters API into mock system
- Add lib/mockApi/positionMasters.ts
  - fetchPositionMasters() from jr-shikoku-backend-mock-api-v1.haruk.in
  - buildPosLookup() / lookupPos() helpers
  - serializePosLookupForJs() for baking into injected scripts
- webviewXhrInterceptor: accept positionMasters in MockApiConfig,
  bake _POS_LOOKUP into injected JS, enrich Pos from PosNum on serve
- useTrainMenu: fetch position masters on mock-enable (and at startup
  if already enabled); expose positionMasters + lookupPosText()
- useCurrentTrain: fill Pos via lookupPosText when mapping mock data
- mockApi/index.ts: re-export positionMasters types and helpers

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-03 17:46:13 +00:00
harukin-expo-dev-env c425c0917b Merge commit '7b7ac73169255ae569ab38756f14a139dd255b9c' into develop 2026-05-02 09:15:31 +00:00
harukin-expo-dev-env 7b7ac73169 feat: add detailed changelog for version update to 7.0.3, highlighting new features and improvements 2026-05-02 08:59:55 +00:00
harukin-expo-dev-env 8594e79c25 Merge commit '6ce2cad4e5428dd30c066053176c59784cbe6fc0' into develop 2026-05-02 03:01:15 +00:00
harukin-expo-dev-env 6ce2cad4e5 fix: update version code to 7.0.3 2026-05-02 02:59:29 +00:00
harukin-expo-dev-env 75795f31e9 Merge commit '35542339943b4da6c181d5b6cc586d720752ab13' into patch/6.x 2026-05-02 02:53:10 +00:00
harukin-expo-dev-env 3554233994 fix: update header colors in injected JavaScript for better visibility 2026-05-02 02:52:22 +00:00
harukin-expo-dev-env d71cc373c9 fix: sync WebView train display when playback frame changes
The XHR interceptor baked _MOCK_TRAIN at page load time, so seeking or
advancing a playback frame only changed React state but had no effect
on the already-loaded WebView page.

- webviewXhrInterceptor.ts:
  - Expose window.__jrsMockUpdateTrain(newData) from inside the IIFE so
    the _MOCK_TRAIN variable can be updated after page load
  - Add generateMockUpdateScript(trainPositions) helper: calls
    __jrsMockUpdateTrain with fresh data + GetDateTime, then calls
    window.setReload() to trigger the page's own redraw cycle

- WebView.tsx:
  - Import generateMockUpdateScript
  - Add useEffect watching mockTrainPositions (skips first mount since
    beforeContentLoaded already has correct data)
  - When mockApiFeatureEnabled && mockTrainPositions changes, inject the
    update script via webview.current.injectJavaScript()

Result: seeking, prev/next frame, and auto-advance during playback now
immediately update the train position display in the WebView.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-02 01:06:34 +00:00
harukin-expo-dev-env 3587f72434 feat: add RecordingStatusBar with elapsed timer and keep-awake
- RecordingStatusBar.tsx: shown during recorderState === 'recording'
  - absolute positioned red bar at top of map screen (zIndex 2000)
  - blinking REC dot (700ms interval) + REC label + MM:SS elapsed timer
  - snapshot count display (right side)
  - pointerEvents="none" so it doesn't block map interaction
  - activateKeepAwakeAsync while recording, deactivated on stop/unmount
    (same pattern as FixedPositionBox, tag = 'recording-status-bar')
- Apps.tsx: render <RecordingStatusBar /> alongside PlaybackTimeline

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-02 00:59:03 +00:00
harukin-expo-dev-env 4f4d3cad0a fix: crash on playback start + support multiple recordings
Crash fix (React Hooks violation):
- PlaybackTimeline.tsx: move ALL hooks (useRef for PanResponder, useCallback)
  to before the early return; use seekRef/totalRef to share values into
  PanResponder handlers without stale closure issues

Multiple recordings support:
- trainRecorder.ts: redesign to id-based multi-recording system
  - RecordingMeta type for lightweight list (no snapshots)
  - TrainRecording now includes id field
  - saveRecording/loadRecordingById/deleteRecordingById/loadRecordingList
  - migrateOldRecording() migrates old single MOCK_RECORDING key on first launch
- constants/storage.ts: add MOCK_RECORDINGS_INDEX + MOCK_RECORDING_DATA_PREFIX keys
- useTrainMenu: savedRecording → recordingList (RecordingMeta[]) + activeRecording (TrainRecording|null)
  - startPlayback(id) loads full recording on demand
  - deleteRecording(id) deletes by id and refreshes list
  - stopPlayback clears activeRecording
- DataSourceSettings: recording list UI
  - shows all recordings with date/time, snapshot count, duration
  - ▶ play and 削除 buttons per row
  - recording/playing status indicator

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-02 00:52:30 +00:00