Compare commits

...

39 Commits

Author SHA1 Message Date
harukin-expo-dev-env
002c60baa1 Merge commit 'de2b94292dc97df6e290e91976d01cea24c98ced' into develop 2025-03-22 12:32:10 +00:00
harukin-expo-dev-env
de2b94292d アドレスを修正 2025-03-22 12:32:02 +00:00
harukin-expo-dev-env
ff41948f14 ごな線直通系の普通表記が消滅していたバグを修正 2025-03-22 12:27:21 +00:00
harukin-expo-dev-env
403466d4fa あしずりのアイコンが不足していたバグを修正 2025-03-22 12:24:56 +00:00
harukin-expo-dev-env
8c75e06ac1 Merge commit 'f0c5402050fef1c949b1b82a89a9df220cb24b9f' into patch/6.x 2025-03-22 11:34:19 +00:00
harukin-expo-dev-env
f0c5402050 6.0.1 2025-03-22 11:34:12 +00:00
harukin-expo-dev-env
1f0f1a0ed3 Merge commit '20ab13bcaa88ddfe972e731cbb71958725ab1c30' into develop 2025-03-22 11:32:38 +00:00
harukin-expo-dev-env
20ab13bcaa 徳島界隈の普通列車運用アイコンを登録 2025-03-22 11:32:31 +00:00
harukin-expo-dev-env
e16783ecfb Merge commit '9b1fee75c7cbaeb7c2aee665389da0cd905f1187' into develop 2025-03-22 11:22:00 +00:00
harukin-expo-dev-env
9b1fee75c7 trainListをスクロールして閉じようとしたらトップにスクロールを移動させるように変更 2025-03-22 11:18:20 +00:00
harukin-expo-dev-env
a2b37f4f35 iOSでタブがおかしくなっていたバグを修正 2025-03-22 11:02:19 +00:00
harukin-expo-dev-env
1ff2f234e8 Androidでキーボード表示時にタブが消えなかった問題を修正 2025-03-22 10:56:39 +00:00
harukin-expo-dev-env
842b724103 LED関連でデータの解析依存関係を修正 2025-03-22 10:29:44 +00:00
harukin-expo-dev-env
7f148c17e4 グリーン、寝台のアイコンを追加 2025-03-22 10:10:29 +00:00
harukin-expo-dev-env
e604df3e6a フォント追加 2025-03-22 09:28:14 +00:00
harukin-expo-dev-env
8bc048523e 変更に伴う臨時列車データ更新 2025-03-22 09:27:59 +00:00
harukin-expo-dev-env
ea39f00515 列車表示のロジックをrelativeなものからcustomTrainData経由のものに統一 2025-03-22 09:27:38 +00:00
harukin-expo-dev-env
3e12371b16 ワンマンサンポートを追加 2025-03-22 07:37:12 +00:00
harukin-expo-dev-env
f6a571bcfe サンポートのデータをcustom-train-dataに追加 2025-03-22 07:32:48 +00:00
harukin-expo-dev-env
3d75ab149f コードの配置変更 2025-03-21 17:02:10 +00:00
harukin-expo-dev-env
9fe53f55e9 importのミスを修正 2025-03-21 13:22:11 +00:00
harukin-expo-dev-env
db53878385 Merge commit '45500e7a4ae614debd93404339958465db88f71d' into develop 2025-03-19 15:47:47 +00:00
harukin-expo-dev-env
45500e7a4a Merge commit '740815704eb2a87ff8fd2a45c5f96d4dd793ddfb' into patch/6.x 2025-03-19 15:37:43 +00:00
harukin-expo-dev-env
740815704e WESTLIVE臨時を追加 2025-03-19 15:37:07 +00:00
harukin-expo-dev-env
795e535e23 Merge commit '6a888e6e1243f9067be193add69577f7ee624fb1' into patch/6.x 2025-03-19 12:19:42 +00:00
harukin-expo-dev-env
6a888e6e12 一部データの修正 2025-03-19 11:31:41 +00:00
harukin-expo-dev-env
b5b650695a 一部の普通列車が表示されてる問題を修正 2025-03-19 10:46:43 +00:00
harukin-expo-dev-env
5725e2645d Merge commit '2c5023568a0442679b476bd84651eca3fcc90ee1' into develop 2025-03-16 05:55:24 +00:00
harukin-expo-dev-env
2c5023568a Merge commit '88b1a892e44aee130745cc10f621e3e02f17f489' into patch/6.x 2025-03-16 05:54:57 +00:00
harukin-expo-dev-env
88b1a892e4 土佐くろ直通記入 2025-03-16 05:54:43 +00:00
harukin-expo-dev-env
7f364adde9 発動していなかったバグを修正 2025-03-16 05:35:54 +00:00
harukin-expo-dev-env
a9e9a5cb3b 牟岐線のダイヤ情報書き込み完了 2025-03-16 05:06:35 +00:00
harukin-expo-dev-env
15be3eaab2 位置情報への牟岐線対応修正 2025-03-16 02:31:25 +00:00
harukin-expo-dev-env
fa07287da0 パス表示修正 2025-03-16 00:55:09 +00:00
harukin-expo-dev-env
281a816673 牟岐線接続系列車修正 2025-03-16 00:54:04 +00:00
harukin-expo-dev-env
ff4a24e07a うずしおのデータ修正 2025-03-15 06:48:53 +00:00
harukin-expo-dev-env
2ed67389c0 Merge commit '8a48bc48e6eb82921fcda3a84e07db2eca51e614' into develop 2025-03-15 04:23:06 +00:00
harukin-expo-dev-env
8a48bc48e6 Merge commit '0a520309e2f181b0a1b1780577dfdad15139cded' into patch/6.x 2025-03-15 04:22:57 +00:00
harukin-expo-dev-env
0a520309e2 特急、快速列車のアイコンに対応 2025-03-15 04:22:35 +00:00
16 changed files with 1341 additions and 989 deletions

View File

@ -27,15 +27,16 @@ export function AppContainer() {
const [fontLoaded, error] = useFonts({
"JR-Nishi": require("./assets/fonts/jr-nishi.otf"),
Zou: require("./assets/fonts/DelaGothicOne-Regular.ttf"),
"JNR-font": require("./assets/fonts/JNRfont_pict.ttf"),
});
return (
<NavigationContainer ref={navigationRef}>
<Tab.Navigator
tabBarOptions={{ keyboardHidesTabBar: Platform.OS === "android" }}
initialRouteName="topMenu"
screenOptions={{
lazy: false,
animation: "shift",
tabBarHideOnKeyboard: Platform.OS === "android",
}}
detachInactiveScreens={false}
lazy={false}

2
Top.js
View File

@ -6,7 +6,7 @@ import TrainBase from "./components/trainbaseview";
import HowTo from "./howto";
import News from "./components/news";
import TrainMenu from "./components/trainMenu";
import FavoriteList from "./components/FavoriteList";
import { FavoriteList } from "./components/FavoriteList";
import { optionData } from "./lib/stackOption";
import { useCurrentTrain } from "./stateBox/useCurrentTrain";
import { useTrainMenu } from "./stateBox/useTrainMenu";

Binary file not shown.

View File

@ -0,0 +1,94 @@
◆国鉄っぽいフォントぽいフォントピクトfor Win(xp)
 かつて日本国有鉄道(国鉄)の吊り下げ式駅名標や駅の案内で使用されていたもピクトグラム
(プラスアルファ)を搭載したフォントです。
 東海地方~四国で広く使用されていたものを見本としています。
◆作成ソフト
TTEditにより作成しています。
◆インストールの方法
 「スタート」から設定、コントロールパネルを開き、さらに「フォント」フォルダを開きます。
ファイルメニューから「新しいフォントのインストール」で、フォントを選択のうえインストール
してください。
 また、フォントファイルを適宜の場所に解凍し、上記「フォント」フォルダを開いたうえで、
ドラッグアンドドロップする方法でもインストールできます。
◆収録文字・記号一覧
左側が入力文字、右側が表示されるピクト類です。
0…公衆電話
1…エスカレーター(のぼり)
2…エスカレーター(くだり)
3…階段(おり)
4…階段(のぼり)
B…国鉄バスつばめマーク(つばめ左向き)
C…国鉄バスつばめマーク(つばめ右向き)
G…グリーン車マーク
J…国鉄「JNR」ロゴ
L…L特急マーク
M…公衆便所(男性)
S…シルバーシート
W…公衆便所(女性)
い…手荷物一時預かり
お…大阪市内の駅マーク
き…京都市内の駅マーク
く…北九州市内の駅マーク
け…禁煙マーク
こ…神戸市内の駅マーク
さ…札幌市内の駅マーク
し…新幹線
せ…仙台市内の駅マーク
た…タクシー
つ…つばめマーク(つばめ左向き)
ツ…つばめマーク(つばめ右向き)
て…手荷物預かり
で…国電
と…東京都区内の駅マーク
な…名古屋市内の駅マーク
は…国鉄ハイウェイバス
ば…路線バス
ひ…広島市内の駅マーク
ふ…福岡市内の駅マーク
ぶ…寝台急行マーク
ブ…寝台特急マーク
や…東京山手線内の駅マーク
ゆ…温泉マーク
よ…横浜市内の駅マーク
れ…レール
ろ…コインロッカー
←…矢印(左向き)
→…矢印(右向き)
↑…矢印(上向き)
↓…矢印(下向き)
◆ご使用に当たってのお願い
 フォントは無料にて配布しています。商用利用には耐えられない出来だと思いますが、ご自身
の責任においてご自由にお使いください。
 インストール及び使用にあたっても、ご自身の責任においてご使用ください。インストールや
使用によって蒙る損害については、当方は一切責任を負いかねます。
◆Windows Vistaをお使いの方へ
 Windows Vistaをお使いの方で、フォントのエッジを滑らかにしたい方は、スクリーンフ
ォントの縁を滑らかにする方法を「標準」にしてください。Clear Typeだと滑らかに表示されない
場合があります。
 ・標準への変更方法
 1.ウィンドウ上で右クリックをします。
 2.現れたメニュー中の「個人設定」を選択。
 3.続いて「ウィンドウの色とデザイン」を選択。
 4.一番下の「「デザイン」プロパティを開きます」をクリックします。
 5.現れた別ウィンドウの「効果」ボタンをクリック。
 「次の方法でスクリーンフォントの縁を滑らかにする」のところを「Clear Type」から「標
   準」にします。
 ※これでこのフォントについてはより滑らかに表示されますが、他のフォントが滑らかに表示さ
れない場合が多くなります。
◆フォント自体についての若干のご説明
 このフォントは、前述のとおり、国鉄において東海地区から四国地区の吊り下げ式駅名標や各種
案内表示で使用されたものを見本としています。もともとは、「鉄道掲示基準規程」という通達に
定められているピクトグラムです。
--------------------------------------
作成者Yokochan
ホームページ「旅と鉄の盲腸」http://travelcecum.xsrv.jp/font.htm
連絡先travel_cecum@yahoo.co.jp

View File

@ -847,5 +847,83 @@
"5481D":"徳島,発,19:22#佐古,発,19:26#蔵本,発,19:30#鮎喰,発,19:33#府中,発,19:37#石井,発,19:43#下浦,発,19:47#牛島,発,19:51#麻植塚,発,19:54#鴨島,発,19:57#西麻植,発,20:00#阿波川島,発,20:04#学,発,20:13#山瀬,発,20:18#阿波山川,発,20:22#川田,発,20:26#穴吹,着,20:34#",
"5483D":"徳島,発,19:52#佐古,発,19:55#蔵本,発,19:58#鮎喰,発,20:01#府中,発,20:05#石井,発,20:09#下浦,発,20:13#牛島,発,20:17#麻植塚,発,20:21#鴨島,発,20:27#西麻植,発,20:31#阿波川島,発,20:44#学,発,20:48#山瀬,発,21:00#阿波山川,発,21:04#川田,発,21:08#穴吹,着,21:18#",
"5489D":"徳島,発,22:52#佐古,発,22:55#蔵本,発,22:58#鮎喰,発,23:01#府中,発,23:05#石井,発,23:09#下浦,発,23:13#牛島,発,23:17#麻植塚,発,23:21#鴨島,発,23:24#西麻植,発,23:27#阿波川島,発,23:30#学,発,23:35#山瀬,発,23:39#阿波山川,発,23:43#川田,発,23:47#穴吹,着,23:54#",
"8451D":"徳島,発,10:35#蔵本,発,10:42#石井,発,10:54#鴨島,発,11:11#阿波川島,発,11:22#穴吹,発,11:50#貞光,発,12:18#阿波加茂,発,12:39#阿波池田,着,12:59#"
"8451D":"徳島,発,10:35#蔵本,発,10:42#石井,発,10:54#鴨島,発,11:11#阿波川島,発,11:22#穴吹,発,11:50#貞光,発,12:18#阿波加茂,発,12:39#阿波池田,着,12:59#",
// 牟岐線運用
// 上り
"4520D":"阿南,発,05:44#阿波中島,発,05:48#西原,発,05:52#羽ノ浦,発,05:56#立江,発,06:00#阿波赤石,発,06:03#南小松島,発,06:08#中田,発,06:11#地蔵橋,発,06:16#文化の森,発,06:20#二軒屋,発,06:22#阿波富田,発,06:26#徳島,着,06:28#",
"522D":"牟岐,発,05:40#辺川,発,05:44#山河内,発,05:52#日和佐,発,05:58#北河内,発,06:01#木岐,発,06:06#由岐,発,06:10#阿波福井,発,06:17#新野,発,06:21#桑野,発,06:26#阿波橘,発,06:31#見能林,発,06:34#阿南,発,06:47#阿波中島,発,06:51#西原,発,06:54#羽ノ浦,発,06:57#立江,発,07:01#阿波赤石,発,07:03#南小松島,発,07:08#中田,発,07:11#地蔵橋,発,07:15#文化の森,発,07:18#二軒屋,発,07:23#阿波富田,発,07:26#徳島,着,07:28#",
"524D":"阿南,発,07:01#阿波中島,発,07:05#西原,発,07:09#羽ノ浦,発,07:13#立江,発,07:17#阿波赤石,発,07:20#南小松島,発,07:25#中田,発,07:34#地蔵橋,発,07:38#文化の森,発,07:42#二軒屋,発,07:44#阿波富田,発,07:48#徳島,着,07:50#",
"526D":"桑野,発,07:02#阿波橘,発,07:07#見能林,発,07:11#阿南,発,07:15#阿波中島,発,07:19#西原,発,07:22#羽ノ浦,発,07:28#立江,発,07:32#阿波赤石,発,07:35#南小松島,発,07:41#中田,発,07:45#地蔵橋,発,07:49#文化の森,発,07:52#二軒屋,発,08:00#阿波富田,発,08:04#徳島,着,08:06#",
"528D":"牟岐,発,06:32#辺川,発,06:36#山河内,発,06:43#日和佐,発,06:50#北河内,発,06:53#木岐,発,06:58#由岐,発,07:04#阿波福井,発,07:11#新野,発,07:16#桑野,発,07:21#阿波橘,発,07:26#見能林,発,07:30#阿南,発,07:36#阿波中島,発,07:40#西原,発,07:43#羽ノ浦,発,07:47#立江,発,07:51#阿波赤石,発,07:54#南小松島,発,08:00#中田,発,08:07#地蔵橋,発,08:11#文化の森,発,08:15#二軒屋,発,08:17#阿波富田,発,08:20#徳島,着,08:22#",
"530D":"阿波海南,発,06:57#浅川,発,07:01#鯖瀬,発,07:05#牟岐,発,07:12#辺川,発,07:17#山河内,発,07:24#日和佐,発,07:31#北河内,発,07:34#木岐,発,07:39#由岐,発,07:43#阿波福井,発,07:50#新野,発,07:54#桑野,発,07:59#阿波橘,発,08:04#見能林,発,08:07#阿南,発,08:14#阿波中島,発,08:18#西原,発,08:21#羽ノ浦,発,08:25#立江,発,08:28#阿波赤石,発,08:31#南小松島,発,08:39#中田,発,08:42#地蔵橋,発,08:46#文化の森,発,08:49#二軒屋,発,08:52#阿波富田,発,08:55#徳島,着,08:57#",
"532D":"桑野,発,08:31#阿波橘,発,08:36#見能林,発,08:40#阿南,発,08:44#阿波中島,発,08:48#西原,発,08:51#羽ノ浦,発,08:57#立江,発,09:01#阿波赤石,発,09:03#南小松島,発,09:08#中田,発,09:12#地蔵橋,発,09:16#文化の森,発,09:20#二軒屋,発,09:23#阿波富田,発,09:26#徳島,着,09:29#",
"534D":"阿南,発,09:26#阿波中島,発,09:30#西原,発,09:33#羽ノ浦,発,09:37#立江,発,09:40#阿波赤石,発,09:43#南小松島,発,09:50#中田,発,09:53#地蔵橋,発,09:57#文化の森,発,10:00#二軒屋,発,10:06#阿波富田,発,10:09#徳島,着,10:12#",
"4536D":"阿波海南,発,08:25#浅川,発,08:29#鯖瀬,発,08:33#牟岐,発,08:54#辺川,発,08:58#山河内,発,09:06#日和佐,発,09:13#北河内,発,09:16#木岐,発,09:21#由岐,発,09:25#阿波福井,発,09:32#新野,発,09:36#桑野,発,09:41#阿波橘,発,09:46#見能林,発,09:49#阿南,着,09:52#",
"536D":"阿南,発,09:56#阿波中島,発,10:00#西原,発,10:03#羽ノ浦,発,10:07#立江,発,10:10#阿波赤石,発,10:13#南小松島,発,10:20#中田,発,10:23#地蔵橋,発,10:27#文化の森,発,10:30#二軒屋,発,10:36#阿波富田,発,10:39#徳島,着,10:42#",
"538D":"阿南,発,10:26#阿波中島,発,10:30#西原,発,10:33#羽ノ浦,発,10:37#立江,発,10:40#阿波赤石,発,10:43#南小松島,発,10:50#中田,発,10:53#地蔵橋,発,10:57#文化の森,発,11:00#二軒屋,発,11:06#阿波富田,発,11:09#徳島,着,11:12#",
"540D":"阿南,発,10:56#阿波中島,発,11:00#西原,発,11:03#羽ノ浦,発,11:07#立江,発,11:10#阿波赤石,発,11:13#南小松島,発,11:20#中田,発,11:23#地蔵橋,発,11:27#文化の森,発,11:30#二軒屋,発,11:36#阿波富田,発,11:39#徳島,着,11:42#",
"542D":"牟岐,発,10:24#辺川,発,10:28#山河内,発,10:36#日和佐,発,10:43#北河内,発,10:46#木岐,発,10:51#由岐,発,10:55#阿波福井,発,11:02#新野,発,11:06#桑野,発,11:11#阿波橘,発,11:16#見能林,発,11:19#阿南,発,11:26#阿波中島,発,11:30#西原,発,11:33#羽ノ浦,発,11:37#立江,発,11:40#阿波赤石,発,11:43#南小松島,発,11:50#中田,発,11:53#地蔵橋,発,11:57#文化の森,発,12:00#二軒屋,発,12:06#阿波富田,発,12:09#徳島,着,12:12#",
"4544D":"阿南,発,11:56#阿波中島,発,12:00#西原,発,12:03#羽ノ浦,発,12:07#立江,発,12:10#阿波赤石,発,12:13#南小松島,発,12:20#中田,発,12:23#地蔵橋,発,12:27#文化の森,発,12:30#二軒屋,発,12:36#阿波富田,発,12:39#徳島,着,12:42#",
"4546D":"阿南,発,12:26#阿波中島,発,12:30#西原,発,12:33#羽ノ浦,発,12:37#立江,発,12:40#阿波赤石,発,12:43#南小松島,発,12:50#中田,発,12:53#地蔵橋,発,12:57#文化の森,発,13:00#二軒屋,発,13:06#阿波富田,発,13:09#徳島,着,13:12#",
"4548D":"阿南,発,12:56#阿波中島,発,13:00#西原,発,13:03#羽ノ浦,発,13:07#立江,発,13:10#阿波赤石,発,13:13#南小松島,発,13:20#中田,発,13:23#地蔵橋,発,13:27#文化の森,発,13:30#二軒屋,発,13:36#阿波富田,発,13:39#徳島,着,13:42#",
"4550D":"阿波海南,発,12:08#浅川,発,12:12#鯖瀬,発,12:16#牟岐,発,12:24#辺川,発,12:28#山河内,発,12:36#日和佐,発,12:43#北河内,発,12:46#木岐,発,12:51#由岐,発,12:55#阿波福井,発,13:02#新野,発,13:06#桑野,発,13:11#阿波橘,発,13:16#見能林,発,13:19#阿南,発,13:26#阿波中島,発,13:30#西原,発,13:33#羽ノ浦,発,13:37#立江,発,13:40#阿波赤石,発,13:43#南小松島,発,13:50#中田,発,13:53#地蔵橋,発,13:57#文化の森,発,14:00#二軒屋,発,14:06#阿波富田,発,14:09#徳島,着,14:12#",
"552D":"阿南,発,13:56#阿波中島,発,14:00#西原,発,14:03#羽ノ浦,発,14:07#立江,発,14:10#阿波赤石,発,14:13#南小松島,発,14:20#中田,発,14:23#地蔵橋,発,14:27#文化の森,発,14:30#二軒屋,発,14:36#阿波富田,発,14:39#徳島,着,14:42#",
"4554D":"阿南,発,14:26#阿波中島,発,14:30#西原,発,14:33#羽ノ浦,発,14:37#立江,発,14:40#阿波赤石,発,14:43#南小松島,発,14:50#中田,発,14:53#地蔵橋,発,14:57#文化の森,発,15:00#二軒屋,発,15:06#阿波富田,発,15:09#徳島,着,15:12#",
"4556D":"阿南,発,14:56#阿波中島,発,15:00#西原,発,15:03#羽ノ浦,発,15:07#立江,発,15:10#阿波赤石,発,15:13#南小松島,発,15:20#中田,発,15:23#地蔵橋,発,15:27#文化の森,発,15:30#二軒屋,発,15:36#阿波富田,発,15:39#徳島,着,15:41#",
"4558D":"阿波海南,発,14:08#浅川,発,14:12#鯖瀬,発,14:16#牟岐,発,14:24#辺川,発,14:28#山河内,発,14:36#日和佐,発,14:43#北河内,発,14:46#木岐,発,14:51#由岐,発,14:55#阿波福井,発,15:02#新野,発,15:06#桑野,発,15:11#阿波橘,発,15:16#見能林,発,15:19#阿南,発,15:26#阿波中島,発,15:30#西原,発,15:33#羽ノ浦,発,15:37#立江,発,15:40#阿波赤石,発,15:43#南小松島,発,15:50#中田,発,15:53#地蔵橋,発,15:57#文化の森,発,16:00#二軒屋,発,16:06#阿波富田,発,16:09#徳島,着,16:12#",
"560D":"阿南,発,15:56#阿波中島,発,16:00#西原,発,16:03#羽ノ浦,発,16:07#立江,発,16:10#阿波赤石,発,16:13#南小松島,発,16:20#中田,発,16:23#地蔵橋,発,16:27#文化の森,発,16:30#二軒屋,発,16:36#阿波富田,発,16:39#徳島,着,16:42#",
"562D":"桑野,発,16:11#阿波橘,発,16:16#見能林,発,16:19#阿南,発,16:26#阿波中島,発,16:30#西原,発,16:33#羽ノ浦,発,16:37#立江,発,16:40#阿波赤石,発,16:43#南小松島,発,16:50#中田,発,16:53#地蔵橋,発,16:57#文化の森,発,17:00#二軒屋,発,17:06#阿波富田,発,17:09#徳島,着,17:12#",
"564D":"阿南,発,16:56#阿波中島,発,17:00#西原,発,17:03#羽ノ浦,発,17:07#立江,発,17:10#阿波赤石,発,17:13#南小松島,発,17:20#中田,発,17:23#地蔵橋,発,17:27#文化の森,発,17:30#二軒屋,発,17:36#阿波富田,発,17:39#徳島,着,17:42#",
"4566D":"阿波海南,発,16:08#浅川,発,16:12#鯖瀬,発,16:16#牟岐,発,16:24#辺川,発,16:28#山河内,発,16:36#日和佐,発,16:43#北河内,発,16:46#木岐,発,16:51#由岐,発,16:55#阿波福井,発,17:02#新野,発,17:06#桑野,発,17:11#阿波橘,発,17:16#見能林,発,17:19#阿南,着,17:22#",
"566D":"阿南,発,17:26#阿波中島,発,17:30#西原,発,17:33#羽ノ浦,発,17:37#立江,発,17:40#阿波赤石,発,17:43#南小松島,発,17:50#中田,発,17:53#地蔵橋,発,17:57#文化の森,発,18:00#二軒屋,発,18:06#阿波富田,発,18:09#徳島,着,18:12#",
"568D":"阿南,発,17:56#阿波中島,発,18:00#西原,発,18:03#羽ノ浦,発,18:07#立江,発,18:10#阿波赤石,発,18:13#南小松島,発,18:20#中田,発,18:23#地蔵橋,発,18:27#文化の森,発,18:30#二軒屋,発,18:36#阿波富田,発,18:39#徳島,着,18:42#",
"570D":"阿南,発,18:26#阿波中島,発,18:30#西原,発,18:33#羽ノ浦,発,18:37#立江,発,18:40#阿波赤石,発,18:43#南小松島,発,18:50#中田,発,18:53#地蔵橋,発,18:57#文化の森,発,19:00#二軒屋,発,19:06#阿波富田,発,19:09#徳島,着,19:12#",
"4572D":"阿波海南,発,17:26#浅川,発,17:29#鯖瀬,発,17:33#牟岐,発,17:41#辺川,発,17:45#山河内,発,17:53#日和佐,発,18:02#北河内,発,18:05#木岐,発,18:10#由岐,発,18:14#阿波福井,発,18:22#新野,発,18:26#桑野,発,18:38#阿波橘,発,18:43#見能林,発,18:46#阿南,発,18:56#阿波中島,発,19:00#西原,発,19:03#羽ノ浦,発,19:07#立江,発,19:10#阿波赤石,発,19:13#南小松島,発,19:20#中田,発,19:23#地蔵橋,発,19:27#文化の森,発,19:30#二軒屋,発,19:36#阿波富田,発,19:39#徳島,着,19:42#",
"574D":"阿南,発,19:26#阿波中島,発,19:30#西原,発,19:33#羽ノ浦,発,19:37#立江,発,19:40#阿波赤石,発,19:43#南小松島,発,19:50#中田,発,19:53#地蔵橋,発,19:57#文化の森,発,20:00#二軒屋,発,20:06#阿波富田,発,20:09#徳島,着,20:12#",
"4576D":"阿波海南,発,18:26#浅川,発,18:29#鯖瀬,発,18:33#牟岐,発,18:41#辺川,発,18:45#山河内,発,18:53#日和佐,発,19:02#北河内,発,19:05#木岐,発,19:10#由岐,発,19:14#阿波福井,発,19:22#新野,発,19:26#桑野,発,19:30#阿波橘,発,19:35#見能林,発,19:38#阿南,着,19:41#",
"576D":"阿南,発,19:56#阿波中島,発,20:00#西原,発,20:03#羽ノ浦,発,20:07#立江,発,20:10#阿波赤石,発,20:13#南小松島,発,20:20#中田,発,20:23#地蔵橋,発,20:27#文化の森,発,20:30#二軒屋,発,20:36#阿波富田,発,20:39#徳島,着,20:42#",
"578D":"阿南,発,20:56#阿波中島,発,21:00#西原,発,21:03#羽ノ浦,発,21:07#立江,発,21:10#阿波赤石,発,21:13#南小松島,発,21:20#中田,発,21:23#地蔵橋,発,21:27#文化の森,発,21:30#二軒屋,発,21:36#阿波富田,発,21:39#徳島,着,21:42#",
"4580D":"阿波海南,発,20:34#浅川,発,20:38#鯖瀬,発,20:44#牟岐,発,20:57#辺川,発,21:03#山河内,発,21:12#日和佐,発,21:20#北河内,発,21:23#木岐,発,21:28#由岐,発,21:32#阿波福井,発,21:41#新野,発,21:45#桑野,発,21:50#阿波橘,発,21:55#見能林,発,21:58#阿南,着,22:00#",
"580D":"阿南,発,22:03#阿波中島,発,22:07#西原,発,22:10#羽ノ浦,発,22:14#立江,発,22:18#阿波赤石,発,22:20#南小松島,発,22:25#中田,発,22:28#地蔵橋,発,22:32#文化の森,発,22:36#二軒屋,発,22:39#阿波富田,発,22:42#徳島,着,22:44#",
//下り
"521D":"牟岐,発,06:34#鯖瀬,発,06:39#浅川,発,06:43#阿波海南,着,06:47#",
"4523D":"徳島,発,05:45#阿波富田,発,05:48#二軒屋,発,05:51#文化の森,発,05:53#地蔵橋,発,05:57#中田,発,06:01#南小松島,発,06:07#阿波赤石,発,06:12#立江,発,06:15#羽ノ浦,発,06:18#西原,発,06:22#阿波中島,発,06:25#阿南,発,06:37#見能林,発,06:40#阿波橘,発,06:43#桑野,発,06:48#新野,発,06:53#阿波福井,発,06:56#由岐,発,07:12#木岐,発,07:15#北河内,発,07:21#日和佐,発,07:31#山河内,発,07:38#辺川,発,07:44#牟岐,発,07:51#鯖瀬,発,07:56#浅川,発,08:00#阿波海南,着,08:03#",
"525D":"徳島,発,06:46#阿波富田,発,06:49#二軒屋,発,06:52#文化の森,発,06:54#地蔵橋,発,06:57#中田,発,07:02#南小松島,発,07:07#阿波赤石,発,07:12#立江,発,07:17#羽ノ浦,発,07:25#西原,発,07:29#阿波中島,発,07:32#阿南,発,07:45#見能林,発,07:49#阿波橘,発,07:52#桑野,発,07:59#新野,発,08:03#阿波福井,発,08:07#由岐,発,08:14#木岐,発,08:17#北河内,発,08:22#日和佐,発,08:25#山河内,発,08:32#辺川,発,08:39#牟岐,着,08:43#",
"527D":"徳島,発,07:17#阿波富田,発,07:20#二軒屋,発,07:23#文化の森,発,07:25#地蔵橋,発,07:29#中田,発,07:34#南小松島,発,07:39#阿波赤石,発,07:44#立江,発,07:51#羽ノ浦,発,07:54#西原,発,07:58#阿波中島,発,08:01#阿南,発,08:10#見能林,発,08:14#阿波橘,発,08:18#桑野,着,08:23#",
"529D":"徳島,発,07:51#阿波富田,発,07:55#二軒屋,発,07:58#文化の森,発,08:00#地蔵橋,発,08:03#中田,発,08:08#南小松島,発,08:12#阿波赤石,発,08:16#立江,発,08:19#羽ノ浦,発,08:25#西原,発,08:28#阿波中島,発,08:31#阿南,着,08:35#",
"531D":"徳島,発,08:24#阿波富田,発,08:27#二軒屋,発,08:30#文化の森,発,08:32#地蔵橋,発,08:36#中田,発,08:42#南小松島,発,08:45#阿波赤石,発,08:50#立江,発,08:54#羽ノ浦,発,08:58#西原,発,09:01#阿波中島,発,09:04#阿南,着,09:08#",
"4533D":"徳島,発,09:30#阿波富田,発,09:33#二軒屋,発,09:36#文化の森,発,09:38#地蔵橋,発,09:42#中田,発,09:46#南小松島,発,09:50#阿波赤石,発,09:54#立江,発,09:57#羽ノ浦,発,10:07#西原,発,10:10#阿波中島,発,10:13#阿南,発,10:24#見能林,発,10:27#阿波橘,発,10:30#桑野,発,10:35#新野,発,10:39#阿波福井,発,10:43#由岐,発,10:54#木岐,発,10:58#北河内,発,11:03#日和佐,発,11:06#山河内,発,11:13#辺川,発,11:20#牟岐,発,11:29#鯖瀬,発,11:34#浅川,発,11:38#阿波海南,着,11:42#",
"535D":"徳島,発,10:00#阿波富田,発,10:03#二軒屋,発,10:06#文化の森,発,10:08#地蔵橋,発,10:12#中田,発,10:16#南小松島,発,10:20#阿波赤石,発,10:24#立江,発,10:27#羽ノ浦,発,10:37#西原,発,10:40#阿波中島,発,10:43#阿南,着,10:46#",
"4537D":"徳島,発,10:30#阿波富田,発,10:33#二軒屋,発,10:36#文化の森,発,10:38#地蔵橋,発,10:42#中田,発,10:46#南小松島,発,10:50#阿波赤石,発,10:54#立江,発,10:57#羽ノ浦,発,11:07#西原,発,11:10#阿波中島,発,11:13#阿南,着,11:16#",
"4539D":"徳島,発,11:00#阿波富田,発,11:03#二軒屋,発,11:06#文化の森,発,11:08#地蔵橋,発,11:12#中田,発,11:16#南小松島,発,11:20#阿波赤石,発,11:24#立江,発,11:27#羽ノ浦,発,11:37#西原,発,11:40#阿波中島,発,11:43#阿南,着,11:46#",
"4541D":"徳島,発,11:30#阿波富田,発,11:33#二軒屋,発,11:36#文化の森,発,11:38#地蔵橋,発,11:42#中田,発,11:46#南小松島,発,11:50#阿波赤石,発,11:54#立江,発,11:57#羽ノ浦,発,12:07#西原,発,12:10#阿波中島,発,12:13#阿南,発,12:24#見能林,発,12:27#阿波橘,発,12:30#桑野,発,12:35#新野,発,12:39#阿波福井,発,12:43#由岐,発,12:54#木岐,発,12:58#北河内,発,13:03#日和佐,発,13:06#山河内,発,13:13#辺川,発,13:20#牟岐,発,13:29#鯖瀬,発,13:34#浅川,発,13:38#阿波海南,着,13:42#",
"4543D":"徳島,発,12:00#阿波富田,発,12:03#二軒屋,発,12:06#文化の森,発,12:08#地蔵橋,発,12:12#中田,発,12:16#南小松島,発,12:20#阿波赤石,発,12:24#立江,発,12:27#羽ノ浦,発,12:37#西原,発,12:40#阿波中島,発,12:43#阿南,着,12:46#",
"4545D":"徳島,発,12:30#阿波富田,発,12:33#二軒屋,発,12:36#文化の森,発,12:38#地蔵橋,発,12:42#中田,発,12:46#南小松島,発,12:50#阿波赤石,発,12:54#立江,発,12:57#羽ノ浦,発,13:07#西原,発,13:10#阿波中島,発,13:13#阿南,着,13:16#",
"547D":"徳島,発,13:00#阿波富田,発,13:03#二軒屋,発,13:06#文化の森,発,13:08#地蔵橋,発,13:12#中田,発,13:16#南小松島,発,13:20#阿波赤石,発,13:24#立江,発,13:27#羽ノ浦,発,13:37#西原,発,13:40#阿波中島,発,13:43#阿南,着,13:46#",
"4549D":"徳島,発,13:30#阿波富田,発,13:33#二軒屋,発,13:36#文化の森,発,13:38#地蔵橋,発,13:42#中田,発,13:46#南小松島,発,13:50#阿波赤石,発,13:54#立江,発,13:57#羽ノ浦,発,14:07#西原,発,14:10#阿波中島,発,14:13#阿南,発,14:24#見能林,発,14:27#阿波橘,発,14:30#桑野,発,14:35#新野,発,14:39#阿波福井,発,14:43#由岐,発,14:54#木岐,発,14:58#北河内,発,15:03#日和佐,発,15:06#山河内,発,15:13#辺川,発,15:20#牟岐,発,15:29#鯖瀬,発,15:34#浅川,発,15:38#阿波海南,着,15:42#",
"4551D":"徳島,発,14:00#阿波富田,発,14:03#二軒屋,発,14:06#文化の森,発,14:08#地蔵橋,発,14:12#中田,発,14:16#南小松島,発,14:20#阿波赤石,発,14:24#立江,発,14:27#羽ノ浦,発,14:37#西原,発,14:40#阿波中島,発,14:43#阿南,着,14:46#",
"4557D":"牟岐,発,16:49#鯖瀬,発,16:54#浅川,発,16:58#阿波海南,着,17:02#",
"553D":"徳島,発,14:30#阿波富田,発,14:33#二軒屋,発,14:36#文化の森,発,14:38#地蔵橋,発,14:42#中田,発,14:46#南小松島,発,14:50#阿波赤石,発,14:54#立江,発,14:57#羽ノ浦,発,15:07#西原,発,15:10#阿波中島,発,15:13#阿南,着,15:16#",
"555D":"徳島,発,15:00#阿波富田,発,15:03#二軒屋,発,15:06#文化の森,発,15:08#地蔵橋,発,15:12#中田,発,15:16#南小松島,発,15:20#阿波赤石,発,15:24#立江,発,15:27#羽ノ浦,発,15:37#西原,発,15:40#阿波中島,発,15:43#阿南,発,15:54#見能林,発,15:57#阿波橘,発,16:00#桑野,発,16:04#",
"559D":"徳島,発,15:30#阿波富田,発,15:33#二軒屋,発,15:36#文化の森,発,15:38#地蔵橋,発,15:42#中田,発,15:46#南小松島,発,15:50#阿波赤石,発,15:54#立江,発,15:57#羽ノ浦,発,16:07#西原,発,16:10#阿波中島,発,16:13#阿南,着,16:16#",
"4559D":"阿南,発,16:24#見能林,発,16:27#阿波橘,発,16:30#桑野,発,16:35#新野,発,16:39#阿波福井,発,16:43#由岐,発,16:54#木岐,発,16:58#北河内,発,17:03#日和佐,発,17:06#山河内,発,17:13#辺川,発,17:20#牟岐,発,17:39#鯖瀬,発,17:44#浅川,発,17:48#阿波海南,着,17:52#",
"561D":"徳島,発,16:00#阿波富田,発,16:03#二軒屋,発,16:06#文化の森,発,16:08#地蔵橋,発,16:12#中田,発,16:16#南小松島,発,16:20#阿波赤石,発,16:24#立江,発,16:27#羽ノ浦,発,16:37#西原,発,16:40#阿波中島,発,16:43#阿南,着,16:46#",
"563D":"徳島,発,16:30#阿波富田,発,16:33#二軒屋,発,16:36#文化の森,発,16:38#地蔵橋,発,16:42#中田,発,16:46#南小松島,発,16:50#阿波赤石,発,16:54#立江,発,16:57#羽ノ浦,発,17:07#西原,発,17:10#阿波中島,発,17:13#阿南,着,17:16#",
"4563D":"阿南,発,17:24#見能林,発,17:27#阿波橘,発,17:30#桑野,発,17:35#新野,発,17:39#阿波福井,発,17:43#由岐,発,17:50#木岐,発,17:54#北河内,発,17:59#日和佐,発,18:02#山河内,発,18:09#辺川,発,18:16#牟岐,着,18:20#",
"565D":"徳島,発,17:00#阿波富田,発,17:03#二軒屋,発,17:06#文化の森,発,17:08#地蔵橋,発,17:12#中田,発,17:16#南小松島,発,17:20#阿波赤石,発,17:24#立江,発,17:27#羽ノ浦,発,17:37#西原,発,17:40#阿波中島,発,17:43#阿南,着,17:46#",
"567D":"徳島,発,17:30#阿波富田,発,17:33#二軒屋,発,17:36#文化の森,発,17:38#地蔵橋,発,17:42#中田,発,17:46#南小松島,発,17:50#阿波赤石,発,17:54#立江,発,17:57#羽ノ浦,発,18:07#西原,発,18:10#阿波中島,発,18:13#阿南,発,18:24#見能林,発,18:27#阿波橘,発,18:30#桑野,発,18:35#新野,発,18:39#阿波福井,発,18:43#由岐,発,18:50#木岐,発,18:54#北河内,発,18:59#日和佐,発,19:02#山河内,発,19:09#辺川,発,19:16#牟岐,着,19:20#",
"4571D":"牟岐,発,19:33#鯖瀬,発,19:40#浅川,発,19:46#阿波海南,着,19:50#",
"569D":"徳島,発,18:00#阿波富田,発,18:03#二軒屋,発,18:06#文化の森,発,18:08#地蔵橋,発,18:12#中田,発,18:16#南小松島,発,18:20#阿波赤石,発,18:24#立江,発,18:27#羽ノ浦,発,18:37#西原,発,18:40#阿波中島,発,18:43#阿南,着,18:46#",
"573D":"徳島,発,18:30#阿波富田,発,18:33#二軒屋,発,18:36#文化の森,発,18:38#地蔵橋,発,18:42#中田,発,18:46#南小松島,発,18:50#阿波赤石,発,18:54#立江,発,18:57#羽ノ浦,発,19:07#西原,発,19:10#阿波中島,発,19:13#阿南,着,19:16#",
"575D":"徳島,発,19:00#阿波富田,発,19:03#二軒屋,発,19:06#文化の森,発,19:08#地蔵橋,発,19:12#中田,発,19:16#南小松島,発,19:20#阿波赤石,発,19:24#立江,発,19:27#羽ノ浦,発,19:37#西原,発,19:40#阿波中島,発,19:43#阿南,発,19:54#見能林,発,19:57#阿波橘,発,20:00#桑野,発,20:05#新野,発,20:09#阿波福井,発,20:13#由岐,発,20:22#木岐,発,20:26#北河内,発,20:31#日和佐,発,20:34#山河内,発,20:42#辺川,発,20:52#牟岐,着,20:57#",
"577D":"徳島,発,19:30#阿波富田,発,19:33#二軒屋,発,19:36#文化の森,発,19:38#地蔵橋,発,19:42#中田,発,19:46#南小松島,発,19:50#阿波赤石,発,19:54#立江,発,19:57#羽ノ浦,発,20:07#西原,発,20:10#阿波中島,発,20:13#阿南,着,20:16#",
"579D":"徳島,発,20:00#阿波富田,発,20:03#二軒屋,発,20:06#文化の森,発,20:08#地蔵橋,発,20:12#中田,発,20:16#南小松島,発,20:20#阿波赤石,発,20:24#立江,発,20:27#羽ノ浦,発,20:30#西原,発,20:34#阿波中島,発,20:37#阿南,着,20:40#",
"581D":"徳島,発,20:30#阿波富田,発,20:33#二軒屋,発,20:36#文化の森,発,20:39#地蔵橋,発,20:42#中田,発,20:47#南小松島,発,20:51#阿波赤石,発,20:55#立江,発,20:58#羽ノ浦,発,21:07#西原,発,21:10#阿波中島,発,21:14#阿南,着,21:18#",
"583D":"徳島,発,21:30#阿波富田,発,21:33#二軒屋,発,21:36#文化の森,発,21:38#地蔵橋,発,21:42#中田,発,21:46#南小松島,発,21:50#阿波赤石,発,21:54#立江,発,21:57#羽ノ浦,発,22:14#西原,発,22:17#阿波中島,発,22:20#阿南,発,22:26#見能林,発,22:29#阿波橘,発,22:32#桑野,発,22:37#新野,発,22:41#阿波福井,発,22:45#由岐,発,22:54#木岐,発,22:58#北河内,発,23:03#日和佐,発,23:06#山河内,発,23:14#辺川,発,23:23#牟岐,着,23:29#",
"585D":"徳島,発,22:55#阿波富田,発,22:58#二軒屋,発,23:01#文化の森,発,23:03#地蔵橋,発,23:07#中田,発,23:11#南小松島,発,23:15#阿波赤石,発,23:19#立江,発,23:22#羽ノ浦,発,23:26#西原,発,23:29#阿波中島,発,23:32#阿南,着,23:36#",
// 臨時列車
"9395D":"WEST LIVE TOUR 2025臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250323_west-live-tour-2025.pdf#高松,発,22:10#昭和町,発,22:12#栗林公園北口,発,22:15#栗林,発,22:18#木太町,発,22:22#屋島,発,22:26#古高松南,発,22:38#八栗口,発,22:41#讃岐牟礼,発,22:44#志度,発,22:48#オレンジタウン,発,22:52#造田,発,22:56#神前,発,22:59#讃岐津田,発,23:05#鶴羽,発,23:09#丹生,発,23:14#三本松,着,23:18#",
"9174M":"WEST LIVE TOUR 2025臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250323_west-live-tour-2025.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:55#早島,発,22:59#妹尾,発,23:03#岡山,着,23:12#",
}

View File

@ -189,7 +189,8 @@ export const EachTrainInfoCore = ({
const count = position * 44 - 50;
// 0.5秒待機してからスクロール
setTimeout(
() => scrollHandlers.ref.current?.scrollTo({ y: count, animated: true }),
() =>
scrollHandlers.ref.current?.scrollTo({ y: count, animated: true }),
400
);
}
@ -291,7 +292,7 @@ export const EachTrainInfoCore = ({
} else if (pos[1] == "児島" && pos[0] == "宇多津") {
setCurrentPosition(["Y09", "M12"]);
return;
}else if (pos[0] == "伊予若宮" && pos[1] == "伊予白滝") {
} else if (pos[0] == "伊予若宮" && pos[1] == "伊予白滝") {
setCurrentPosition(["S18", "S14"]);
return;
} else if (pos[0] == "伊予白滝" && pos[1] == "伊予若宮") {
@ -380,13 +381,6 @@ export const EachTrainInfoCore = ({
}
};
const headerItem = {
currentTrainData,
currentPosition,
nearTrainIDList,
openTrainInfo,
navigate,
};
return (
<View
style={{
@ -419,6 +413,7 @@ export const EachTrainInfoCore = ({
tailStation={tailStation}
navigate={navigate}
from={from}
scrollHandlers={scrollHandlers}
/>
<DynamicHeaderScrollView
@ -431,8 +426,28 @@ export const EachTrainInfoCore = ({
maxHeight: isLandscape ? height - 94 : (height / 100) * 70,
},
}}
shortHeader={<ShortHeader {...headerItem} />}
longHeader={<LongHeader {...headerItem} />}
shortHeader={
<ShortHeader
{...{
currentTrainData,
currentPosition,
nearTrainIDList,
openTrainInfo,
navigate,
}}
/>
}
longHeader={
<LongHeader
{...{
currentTrainData,
currentPosition,
nearTrainIDList,
openTrainInfo,
navigate,
}}
/>
}
topStickyContent={
<ScrollStickyContent
{...{ currentTrainData, showThrew, setShowThrew, haveThrough }}

View File

@ -7,6 +7,8 @@ import { migrateTrainName } from "../../../lib/eachTrainInfoCoreLib/migrateTrain
import { TrainIconStatus } from "./trainIconStatus";
import { TrainViewIcon } from "./trainViewIcon";
import { OneManText } from "./HeaderTextParts/OneManText";
import { customTrainDataDetector } from "@/components/custom-train-data";
import { InfogramText } from "@/components/ActionSheetComponents/EachTrainInfoCore/HeaderTextParts/InfogramText";
type Props = {
data: { trainNum: string; limited: string };
@ -18,10 +20,11 @@ type Props = {
navigate: any;
from: string;
fontLoaded: boolean;
scrollHandlers: any;
};
const textConfig: TextStyle = {
fontSize: 18,
fontSize: 17,
fontWeight: "bold",
color: "white",
};
@ -35,105 +38,87 @@ export const HeaderText: FC<Props> = ({
tailStation,
navigate,
from,
scrollHandlers
}) => {
const { limited, trainNum } = data;
// 貨物の判定
const freightDetect = (num:string)=>{
switch(num){
case "71":
return "貨物 東京(タ)→高松(タ)";
case "73":
case "75":
return "貨物 大阪(タ)→高松(タ)";
case "3079":
return "貨物 高松(タ)→伊予三島";
case "3071":
case "3077":
return "貨物 高松(タ)→新居浜";
case "3073":
return "貨物 高松(タ)→松山貨物";
case "70":
return "貨物 高松(タ)→東京(タ)";
case "74":
case "76":
return "貨物 高松(タ)→大阪(タ)";
case "3078":
return "貨物 伊予三島→高松(タ)";
case "3070":
return "貨物 新居浜→高松(タ)";
case "3076":
return "貨物 新居浜→高松(タ)";
case "3072":
return "貨物 松山貨物→高松(タ)";
case "9070":
return "貨物 臨時";
default:
return false;
}
}
// 列車名、種別、フォントの取得
const [typeName, trainName, fontAvailable] = useMemo(() => {
if (!limited) return "";
const limitedArray = limited.split(":");
const [type, fontAvailable] = (() => {
const d = getType(limitedArray[0]);
const [typeName, trainName, fontAvailable, isOneMan, infogram] =
useMemo(() => {
const customTrainData = customTrainDataDetector(trainNum);
const [type, fontAvailable, isOneMan] = (() => {
switch (customTrainData.type) {
case "LTDEXP":
return ["特急", true, false];
case "Rapid":
return ["快速", true, false];
case "Normal":
return ["普通", true, false];
case "OneManRapid":
return ["快速", true, true];
case "OneMan":
return ["普通", true, true];
case "NightLTDEXP":
return ["特急", true, false];
case "SPCL":
return ["臨時", false, false];
case "SPCL_EXP":
return ["臨時特急", false, false];
case "SPCL_Rapid":
return ["臨時快速", true, false];
case "SPCL_Normal":
return ["臨時", true, false];
case "Freight":
return ["貨物", false, false];
case "Other":
switch (true) {
case !!trainNum.includes("T"):
return ["単機回送", false, false];
case !!trainNum.includes("R"):
case !!trainNum.includes("E"):
case !!trainNum.includes("L"):
case !!trainNum.includes("A"):
case !!trainNum.includes("B"):
return ["回送", false, false];
case !!trainNum.includes("H"):
return ["試運転", false, false];
}
return ["", false, false];
}
})();
switch (true) {
case !!d:
return [d, true];
case !!trainNum.includes("T"):
return ["単機回送", false];
case !!trainNum.includes("R"):
case !!trainNum.includes("E"):
case !!trainNum.includes("L"):
case !!trainNum.includes("A"):
case !!trainNum.includes("B"):
return ["回送", false];
case !!trainNum.includes("H"):
return ["試運転", false];
case !!trainNum.match("D"):
case !!trainNum.match("M"):
return ["普通", true];
case !!freightDetect(trainNum):
return [freightDetect(trainNum), false];
case customTrainData.trainName !== "":
// 特急の場合は、列車名を取得
// 列番対称データがある場合はそれから列車番号を取得
const distance = customTrainData.trainNumDistance;
const number =
distance !== null ? ` ${parseInt(trainNum) - distance}` : "";
const trainName = customTrainData.trainName + number;
return [
type,
trainName,
fontAvailable,
isOneMan,
customTrainData.infogram,
];
case trainData[trainData.length - 1] === undefined:
return [type, "", fontAvailable, isOneMan, customTrainData.infogram];
default:
return ["", false];
// 行先がある場合は、行先を取得
return [
type,
migrateTrainName(
trainData[trainData.length - 1].split(",")[0] + "行き"
),
fontAvailable,
isOneMan,
customTrainData.infogram,
];
}
})();
switch (true) {
case !!limitedArray[1]:
// 特急の場合は、列車名を取得
return [type, migrateTrainName(limitedArray[1]), fontAvailable];
case trainData.length == 0:
// 特急以外の場合は、列車番号を取得
return [type, "", fontAvailable];
default:
// 行先がある場合は、行先を取得
return [
type,
migrateTrainName(
trainData[trainData.length - 1].split(",")[0] + "行き"
),
fontAvailable,
];
}
}, [limited, trainData]);
// 1人運転の判定
const isOneMan = useMemo(() => {
const OneManRegex = new RegExp(/^4[1-9]\d\d[DM]$/);
const OneManRegex2 = new RegExp(/^5[1-7]\d\d[DM]$/);
return !!(
OneManRegex.test(trainNum) ||
OneManRegex2.test(trainNum) ||
trainNum === "3621D"
);
}, [trainNum]);
}, [trainData]);
return (
<View style={{ padding: 10, flexDirection: "row", alignItems: "center" }}>
<View style={{ padding: 10, flexDirection: "row", alignItems: "center" }} onTouchStart={()=>scrollHandlers.ref.current?.scrollTo({ y: 0, animated: true })}>
<TrainIconStatus {...{ data, navigate, from }} />
<View
style={{ borderRadius: 5, flexDirection: "row", alignItems: "center" }}
@ -143,7 +128,7 @@ export const HeaderText: FC<Props> = ({
fontSize: 20,
color: "white",
fontFamily: fontAvailable ? "JR-Nishi" : undefined,
fontWeight: !fontAvailable ?"bold":undefined,
fontWeight: !fontAvailable ? "bold" : undefined,
marginRight: 5,
}}
>
@ -151,6 +136,7 @@ export const HeaderText: FC<Props> = ({
</Text>
{isOneMan && <OneManText />}
<Text style={textConfig}>{trainName}</Text>
<InfogramText infogram={infogram} />
</View>
<View style={{ flex: 1 }} />

View File

@ -0,0 +1,18 @@
import React, { FC } from "react";
import { Text } from "react-native";
type props = {
infogram: string;
}
export const InfogramText: FC<props> = ({infogram}) => {
return (
<Text
style={{
fontSize: 20,
color: "white",
fontFamily: "JNR-font",
}}
>
{infogram}
</Text>
);
};

View File

@ -49,6 +49,11 @@ export const AppsWebView = ({ openStationACFromEachTrainInfo }) => {
const onMessage = (event) => {
const { data } = event.nativeEvent;
/**
* {type,trainNum,limited}
* {type,currentLines}
* {type,event,id,name,pdf,map,url,chk}
*/
if (data.includes("train.html")) {
navigate("trainbase", { info: data, from: "Train" });
return;

View File

@ -17,7 +17,7 @@ import { SwitchArea } from "../atom/SwitchArea";
import { useNotification } from "../../stateBox/useNotifications";
import { SheetHeaderItem } from "@/components/atom/SheetHeaderItem";
const versionCode = "6.0";
const versionCode = "6.0.1";
export const SettingTopPage = ({
testNFC,

View File

@ -25,9 +25,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "しおかぜ",
trainIcon: "https://storage.haruk.in/s8000nr.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
trainNumDistance: 0,
info: "いしづちと併結 / 8000系で運転",
infogram: ""
};
case "2M":
return {
@ -35,9 +36,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "しおかぜ",
trainIcon: "https://storage.haruk.in/s8000nr.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
trainNumDistance: 0,
info: "8000系で運転",
infogram: ""
};
//8000 アンパン
case "10M":
@ -51,6 +53,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
trainNumDistance: 0,
info: "いしづちと併結 / アンパンマン列車で運転",
infogram: ""
};
//8600
case "8M":
@ -66,9 +69,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "しおかぜ",
trainIcon: "https://storage.haruk.in/s8600.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/shiokaze.html",
trainNumDistance: 0,
info: "いしづちと併結 / 8600系で運転",
infogram: ""
};
//いしづちメイン
@ -96,9 +100,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "いしづち",
trainIcon: "https://storage.haruk.in/s8000no.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
trainNumDistance: 1000,
info: "しおかぜと併結 / 8000系で運転",
infogram: ""
};
//8000 アンパン
@ -113,6 +118,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
trainNumDistance: 1000,
info: "しおかぜと併結 / アンパンマン列車で運転",
infogram: ""
};
//8600
@ -129,9 +135,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "いしづち",
trainIcon: "https://storage.haruk.in/s8600_isz.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
trainNumDistance: 1000,
info: "しおかぜと併結 / 8600系で運転",
infogram: ""
};
//MEXP
@ -142,9 +149,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "モーニングEXP高松",
trainIcon: "https://storage.haruk.in/s8000nr.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/morning.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/morning.html",
trainNumDistance: null,
info: "8000系で運転",
infogram: ""
};
//8600
case "1091M":
@ -153,9 +161,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "モーニングEXP松山",
trainIcon: "https://storage.haruk.in/s8600_isz.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/morning.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/morning.html",
trainNumDistance: null,
info: "8600系で運転",
infogram: ""
};
//三桁いしづち
//8000 アンパン
@ -168,78 +177,63 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
trainNumDistance: 940,
info: "アンパンマン列車で運転",
infogram: ""
};
//8600
case "1043M":
case "1042M":
return {
type: "LTDEXP",
trainName: "いしづち",
trainIcon: "https://storage.haruk.in/s8600_isz.png",
infoUrl:
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
trainNumDistance: 940,
info: "8600系で運転",
infogram: ""
};
case "1046M":
return {
type: "LTDEXP",
trainName: "いしづち",
trainIcon: "https://storage.haruk.in/s8600_isz.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/ishizuchi.html",
trainNumDistance: 940,
info: "8600系で運転",
infogram: ""
};
//南風 2700ーマル
case "34D":
case "58D":
case "31D":
case "51D":
return {
type: "LTDEXP",
trainName: "南風",
trainIcon: "https://storage.haruk.in/s2700.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/nanpu.html",
trainNumDistance: 30,
info: "しまんとと併結 / 2700系で運転",
};
case "52D":
case "53D":
return {
type: "LTDEXP",
trainName: "南風",
trainIcon: "https://storage.haruk.in/s2700.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/nanpu.html",
trainNumDistance: 30,
info: "うずしおと併結 / 2700系で運転",
};
case "38D":
case "40D":
case "42D":
case "46D":
case "50D":
case "52D":
case "54D":
case "58D":
case "31D":
case "35D":
case "39D":
case "41D":
case "43D":
case "47D":
case "51D":
case "53D":
case "55D":
return {
type: "LTDEXP",
trainName: "南風",
trainIcon: "https://storage.haruk.in/s2700.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/nanpu.html",
infoUrl: "https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/nanpu.html",
trainNumDistance: 30,
info: "2700系で運転",
infogram: ""
};
//2700アンパン
case "36D":
case "37D":
return {
type: "LTDEXP",
trainName: "南風",
trainIcon: `https://n8n.haruk.in/webhook/dosan-anpanman-pictures.png?trainNum=${TrainNumber}&day=${dayjs().format(
"yyyy-MM-DD"
)}`,
infoUrl: "https://www.jr-eki.com/aptrain/naani/dosan/train.html",
trainNumDistance: 30,
info: "うずしおと連結 / アンパンマン列車で運転",
};
case "32D":
case "36D":
case "44D":
@ -259,30 +253,22 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-eki.com/aptrain/naani/dosan/train.html",
trainNumDistance: 30,
info: "アンパンマン列車で運転",
infogram: ""
};
//うずしお
//2700
case "5006D":
case "5022D":
case "5013D":
case "5029D":
return {
type: "LTDEXP",
trainName: "うずしお",
trainIcon: "https://storage.haruk.in/s2700_uzu.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 5000,
info: "南風と併結 / 高松-宇多津間進行方向逆転 / 2700系で運転",
};
case "3004D":
case "3006D":
case "3010D":
case "3014D":
case "3016D":
case "3022D":
case "3028D":
case "3003D":
case "3007D":
case "3013D":
case "3019D":
case "3025D":
case "3031D":
return {
@ -290,29 +276,32 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "うずしお",
trainIcon: "https://storage.haruk.in/s2700_uzu.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 3000,
info: "2700系で運転",
infogram: ""
};
//2700 二両編成
case "3008D":
case "3020D":
case "3026D":
case "3032D":
case "3001D":
case "3005D":
case "3011D":
case "3017D":
case "3019D":
case "3023D":
case "3029D":
return {
type: "LTDEXP",
trainName: "うずしお",
trainIcon: "https://storage.haruk.in/s2700_uzu.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 3000,
info: "2700系で運転",
infogram: ""
};
//2600
@ -331,23 +320,12 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "うずしお",
trainIcon: "https://storage.haruk.in/s2600.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 3000,
info: "2600系で運転",
infogram: ""
};
//キハ185
case "3001D":
case "3008D":
return {
type: "LTDEXP",
trainName: "うずしお",
trainIcon: "https://storage.haruk.in/s185tu_uzu.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uzushio.html",
trainNumDistance: 3000,
info: "キハ185系で運転",
};
//マリンライナー
case "3104M":
@ -422,9 +400,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
type: "Rapid",
trainName: "マリンライナー",
trainIcon: "https://storage.haruk.in/s5001.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
infoUrl: "https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
trainNumDistance: 3100,
info: "",
infogram: ""
};
case "3102M":
case "3101M":
@ -435,9 +414,106 @@ export const customTrainDataDetector = (TrainNumber: string) => {
type: "Rapid",
trainName: "マリンライナー",
trainIcon: "https://storage.haruk.in/s5001k.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
infoUrl: "https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
trainNumDistance: 3100,
info: "",
infogram: ""
};
//下りサンポート
case "1219M":
return {
type: "Normal",
trainName: "南風リレー",
trainIcon: "",
infoUrl: "",
trainNumDistance: null,
info: " 土曜・休日は多度津-琴平間運休",
infogram: ""
};
case "111M":
case "115M":
case "117M":
case "121M":
case "123M":
case "127M":
case "131M":
case "139M":
case "147M":
case "151M":
return {
type: "Rapid",
trainName: "サンポート南風リレー",
trainIcon: null,
infoUrl: null,
trainNumDistance: null,
info: null,
infogram: ""
};
case "5109M":
case "5135M":
case "5251M":
return {
type: "OneManRapid",
trainName: "サンポート南風リレー",
trainIcon: null,
infoUrl: null,
trainNumDistance: null,
info: null,
infogram: ""
};
case "137M":
return {
type: "Rapid",
trainName: "サンポート",
trainIcon: null,
infoUrl: null,
trainNumDistance: null,
info: "土曜・休日運休",
infogram: ""
};
//上りサンポート
case "116M":
return {
type: "Normal",
trainName: "南風リレー",
trainIcon: null,
infoUrl: null,
trainNumDistance: null,
info: null,
infogram: ""
};
case "130M":
case "132M":
case "136M":
case "140M":
case "144M":
case "146M":
case "150M":
case "156M":
return {
type: "Rapid",
trainName: "サンポート南風リレー",
trainIcon: "",
infoUrl: "",
trainNumDistance: null,
info: "",
infogram: ""
};
case "5118M":
case "5120M":
case "5124M":
case "5126M":
case "5252M":
return {
type: "OneManRapid",
trainName: "サンポート南風リレー",
trainIcon: null,
infoUrl: null,
trainNumDistance: null,
info: null,
infogram: ""
};
//サンライズ瀬戸
@ -451,6 +527,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"https://www.jr-odekake.net/train/sunriseseto_izumo/index.html",
trainNumDistance: null,
info: "",
infogram: "ブ"
};
case "8041M": //琴平延長高松迄
case "8031M": //琴平延長高松以降
@ -462,26 +539,28 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"https://www.jr-odekake.net/train/sunriseseto_izumo/index.html",
trainNumDistance: null,
info: "琴平延長運転日",
infogram: "ブ"
};
//宇和海
//2000 ノーマル
case "1052D":
case "1054D":
case "1056D":
case "1058D":
case "1060D":
case "1062D":
case "1064D":
case "1068D":
case "1070D":
case "1074D":
case "1072D":
case "1076D":
case "1078D":
case "1080D":
case "1082D":
case "1051D":
case "1053D":
case "1055D":
case "1057D":
case "1059D":
case "1061D":
case "1063D":
case "1065D":
case "1069D":
@ -490,23 +569,23 @@ export const customTrainDataDetector = (TrainNumber: string) => {
case "1075D":
case "1077D":
case "1079D":
case "1081D":
return {
type: "LTDEXP",
trainName: "宇和海",
trainIcon: "https://storage.haruk.in/s2000_uwa.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/uwakai.html",
infoUrl: "https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/uwakai.html",
trainNumDistance: 1050,
info: "2000系で運転",
infogram: ""
};
//2000 アンパン込み
case "1054D":
case "1060D":
case "1058D":
case "1066D":
case "1072D":
case "1055D":
case "1061D":
case "1074D":
case "1053D":
case "1059D":
case "1067D":
case "1081D":
return {
type: "LTDEXP",
trainName: "宇和海",
@ -514,33 +593,22 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
trainNumDistance: 1050,
info: "アンパン列車で運転",
infogram: ""
};
//しまんと
case "2002D":
case "2008D":
case "2004D":
case "2001D":
case "2005D":
case "2003D":
return {
type: "LTDEXP",
trainName: "しまんと",
trainIcon: "https://storage.haruk.in/s2700_smn.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shimanto.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/shimanto.html",
trainNumDistance: 2000,
info: "2700系で運転",
};
case "2004D":
case "2006D":
case "2003D":
case "2007D":
return {
type: "LTDEXP",
trainName: "しまんと",
trainIcon: "https://storage.haruk.in/s2700_smn.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/shimanto.html",
trainNumDistance: 2000,
info: "南風と併結 / 2700系で運転",
infogram: ""
};
//あしずり 2000
@ -557,17 +625,27 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "あしずり",
trainIcon: "https://storage.haruk.in/s2000_asi.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html",
trainNumDistance: 2070,
info: "2000系で運転",
infogram: ""
};
//あしずり 2700
case "2078D":
case "2084D":
case "2088D":
case "2075D":
case "2077D":
return {
type: "LTDEXP",
trainName: "あしずり",
trainIcon: "https://storage.haruk.in/s2700_asi.png",
infoUrl:
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html",
trainNumDistance: 2070,
info: "2700系で運転",
infogram: ""
};
case "2072D":
case "2083D":
return {
@ -575,43 +653,29 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "あしずり",
trainIcon: "https://storage.haruk.in/s2700_asi.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/ashizuri.html",
trainNumDistance: 2070,
info: "2700系で運転",
infogram: ""
};
//剣山
case "4002D":
case "4004D":
case "4006D":
case "4008D":
case "4010D":
case "4001D":
case "4003D":
case "4005D":
case "4007D":
case "4009D":
case "4011D":
return {
type: "LTDEXP",
trainName: "剣山",
trainIcon: "https://storage.haruk.in/s185tu.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/vehicle-info/tsurugisan.html",
"https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/tsurugisan.html",
trainNumDistance: 4000,
info: "キハ185系で運転",
};
//むろと
case "8051D":
case "8052D":
return {
type: "LTDEXP",
trainName: "むろと",
trainIcon: "https://storage.haruk.in/s185_mrt.png",
infoUrl: "http://jr-shikoku.co.jp/01_trainbus/vehicle-info/muroto.html",
trainNumDistance: 5050,
info: "キハ185系で運転",
infogram: ""
};
//よしのがわトロッコ
@ -622,9 +686,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
trainName: "よしのがわトロッコ",
trainIcon: "https://storage.haruk.in/s185to_ai.png",
infoUrl:
"http://jr-shikoku.co.jp/01_trainbus/event_train/yoshino_torokko.html",
"https://www.jr-shikoku.co.jp/01_trainbus/event_train/yoshino_torokko.html",
trainNumDistance: null,
info: "",
infogram: ""
};
//岡山高松アントロ
@ -641,6 +706,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"https://www.jr-eki.com/aptrain/naani/torokko_seto/jikoku.html",
trainNumDistance: null,
info: "",
infogram: ""
};
//伊予灘ものがたり
@ -653,6 +719,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://iyonadamonogatari.com/",
trainNumDistance: null,
info: "",
infogram: ""
};
case "8092D":
case "8094D":
@ -663,6 +730,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://iyonadamonogatari.com/",
trainNumDistance: null,
info: "",
infogram: ""
};
//千年ものがたり
@ -675,6 +743,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-shikoku.co.jp/sennenmonogatari/",
trainNumDistance: null,
info: "",
infogram: ""
};
//夜明けものがたり
@ -689,13 +758,44 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-shikoku.co.jp/yoakenomonogatari/index.html",
trainNumDistance: null,
info: "",
infogram: ""
};
case "9174M":
return {
type: "SPCL_Rapid",
trainName: "マリンライナー94号",
trainIcon: "https://storage.haruk.in/s5001.png",
infoUrl: "https://www.jr-shikoku.co.jp/01_trainbus/vehicle-info/marine.html",
trainNumDistance: null,
info: "WEST LIVE TOUR 2025臨 3/21,22のみ運転",
infogram: ""
};
case "9395D":
return {
type: "SPCL_Normal",
trainName: "",
trainIcon: null,
infoUrl: null,
trainNumDistance: null,
info: "WEST LIVE TOUR 2025臨 3/21,22のみ運転",
infogram: ""
};
default:
if (
if(getJRF(TrainNumber) !== null){
return {
type: "Freight",
trainName: getJRF(TrainNumber),
trainIcon: "https://storage.haruk.in/ef210a.png",
infoUrl: null,
trainNumDistance: null,
info: "",
infogram: "",
};
}
else if (
new RegExp(/^4[1-9]\d\d[DM]$/).test(TrainNumber) ||
new RegExp(/^5[1-7]\d\d[DM]$/).test(TrainNumber) ||
TrainNumber === "3621D"
new RegExp(/^3[2-9]\d\d[DM]$/).test(TrainNumber)
)
return {
type: "OneMan",
@ -704,48 +804,65 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: null,
trainNumDistance: null,
info: null,
infogram: ""
};
else
return {
type: "Normal",
trainName: "",
trainIcon: null,
infoUrl: null,
trainNumDistance: null,
info: null,
};
break;
else if (
new RegExp(/^[1-9]\d\d[DM]$/).test(TrainNumber) ||
new RegExp(/^1[26]\d\d[DM]$/).test(TrainNumber) ||
new RegExp(/^58\d\d[DM]$/).test(TrainNumber) ||
new RegExp(/^6\d\d\d[DM]$/).test(TrainNumber)
){
return {
type: "Normal",
trainName: "",
trainIcon: null,
infoUrl: null,
trainNumDistance: null,
info: null,
infogram: ""
};
} else {
return {
type: "Other",
trainName: "",
trainIcon: null,
infoUrl: null,
trainNumDistance: null,
info: null,
infogram: ""
};
}
}
};
export const getJRF = (num: string) => {
switch (num) {
case "71":
return "東京(タ)→高松(タ)\\n";
return "東京(タ)→高松(タ)";
case "73":
case "75":
return "大阪(タ)→高松(タ)\\n";
return "大阪(タ)→高松(タ)";
case "3079":
return "高松(タ)→伊予三島\\n";
return "高松(タ)→伊予三島";
case "3071":
case "3077":
return "高松(タ)→新居浜\\n";
return "高松(タ)→新居浜";
case "3073":
return "高松(タ)→松山貨物\\n";
return "高松(タ)→松山貨物";
case "70":
return "高松(タ)→東京(タ)\\n";
return "高松(タ)→東京(タ)";
case "74":
case "76":
return "高松(タ)→大阪(タ)\\n";
return "高松(タ)→大阪(タ)";
case "3078":
return "伊予三島→高松(タ)\\n";
return "伊予三島→高松(タ)";
case "3070":
return "新居浜→高松(タ)\\n";
return "新居浜→高松(タ)";
case "3076":
return "新居浜→高松(タ)\\n";
return "新居浜→高松(タ)";
case "3072":
return "松山貨物→高松(タ)\\n";
return "松山貨物→高松(タ)";
case "9070":
return "臨時貨物\\n";
return "臨時";
default:
return null;
}

View File

@ -23,12 +23,16 @@ type getTrainType = (d: nameString) => {
export const getTrainType: getTrainType = (nameString) => {
switch (nameString) {
case "Rapid":
case "OneManRapid":
return { color: "aqua", name: "快速", data: "rapid" };
case "LTDEXP":
return { color: "red", name: "特急", data: "express" };
case "NightLTDEXP":
return { color: "red", name: "寝台特急", data: "express" };
case "SPCL":
case "SPCL_Rapid":
case "SPCL_EXP":
case "SPCL_Normal":
return { color: "#297bff", name: "臨時", data: "normal" };
case "OneMan":
return { color: "white", name: "普通列車(ワンマン)", data: "normal" };

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,11 @@ export const AllTrainDiagramProvider = ({ children }) => {
() => allTrainDiagram && setKeyList(Object.keys(allTrainDiagram)),
[allTrainDiagram]
);
const customData = {};
const customData = {
"9395D":"WEST LIVE TOUR 2025臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250323_west-live-tour-2025.pdf#高松,発,22:10#昭和町,発,22:12#栗林公園北口,発,22:15#栗林,発,22:18#木太町,発,22:22#屋島,発,22:26#古高松南,発,22:38#八栗口,発,22:41#讃岐牟礼,発,22:44#志度,発,22:48#オレンジタウン,発,22:52#造田,発,22:56#神前,発,22:59#讃岐津田,発,23:05#鶴羽,発,23:09#丹生,発,23:14#三本松,着,23:18#",
"9174M":"WEST LIVE TOUR 2025臨,提,https://www.jr-shikoku.co.jp/03_news/pdf/20250228_20250323_west-live-tour-2025.pdf#高松,発,22:00#坂出,発,22:16#児島,発,22:39#茶屋町,発,22:55#早島,発,22:59#妹尾,発,23:03#岡山,着,23:12#",
};
useEffect(() => {
fetch(
"https://n8n.haruk.in/webhook/CrowdTh%E2%82%AC71m3Ra7!ngLead%E2%82%ACr$"

View File

@ -37,20 +37,12 @@ export const BusAndTrainDataProvider = ({ children }) => {
});
}, []);
useEffect(() => {
AS.getItem("trainPairData202503")
fetch(
"https://script.google.com/macros/s/AKfycbyoBH7_rBwzPmhU1ghRBNTAVuvGltIrZtWxE07gDdhGGlDL9Ip2qk3pFM5u2xtRBl8/exec"
)
.then((d) => d.json())
.then((d) => {
const returnData = JSON.parse(d);
setTrainPairData(returnData);
})
.catch(() => {
fetch(
"https://script.google.com/macros/s/AKfycbyoBH7_rBwzPmhU1ghRBNTAVuvGltIrZtWxE07gDdhGGlDL9Ip2qk3pFM5u2xtRBl8/exec"
)
.then((d) => d.json())
.then((d) => {
setTrainPairData(d);
AS.setItem("trainPairData202503", JSON.stringify(d));
});
setTrainPairData(d);
});
}, []);
const initializeTrainPairList = () => {
@ -80,206 +72,212 @@ export const BusAndTrainDataProvider = ({ children }) => {
if (trainPairList[trainNum]) {
returnArray.push(Object.keys(trainPairList[trainNum])[0]);
}
// switch (trainNum) {
// case "143M":
// returnArray.push("147M");
// break;
// case "147M":
// returnArray.push("143M");
// break;
// // 徳島界隈接続一覧
// //下り
// case "4430D":
// returnArray.push("525D");
// break;
// case "951D":
// returnArray.push("527D");
// break;
// case "434D":
// returnArray.push("529D");
// break;
// case "5444D":
// returnArray.push("4537D");
// break;
// case "4452D":
// returnArray.push("4545D");
// break;
// case "4458D":
// returnArray.push("4551D");
// break;
// case "4460D":
// returnArray.push("553D");
// break;
// case "4464D":
// returnArray.push("559D");
// break;
// case "4466D":
// returnArray.push("561D");
// break;
// case "468D":
// returnArray.push("563D");
// break;
// case "4472D":
// returnArray.push("567D");
// break;
// case "474D":
// returnArray.push("569D");
// break;
// case "351D":
// returnArray.push("573D");
// break;
// case "478D":
// returnArray.push("575D");
// break;
// case "480D":
// returnArray.push("577D");
// break;
// case "484D":
// returnArray.push("581D");
// break;
// // reverse.
// case "525D":
// returnArray.push("4430D");
// break;
// case "527D":
// returnArray.push("951D");
// break;
// case "529D":
// returnArray.push("434D");
// break;
// case "4537D":
// returnArray.push("5444D");
// break;
// case "4545D":
// returnArray.push("4452D");
// break;
// case "4551D":
// returnArray.push("4458D");
// break;
// case "553D":
// returnArray.push("4460D");
// break;
// case "559D":
// returnArray.push("4464D");
// break;
// case "561D":
// returnArray.push("4466D");
// break;
// case "563D":
// returnArray.push("468D");
// break;
// case "567D":
// returnArray.push("4472D");
// break;
// case "569D":
// returnArray.push("474D");
// break;
// case "573D":
// returnArray.push("351D");
// break;
// case "575D":
// returnArray.push("478D");
// break;
// case "577D":
// returnArray.push("480D");
// break;
// case "581D":
// returnArray.push("484D");
// break;
// //上りむろと
// case "530D":
// returnArray.push("8052D");
// break;
// case "8052D":
// returnArray.push("530D");
// break;
// //上り
// case "522D":
// returnArray.push("952D");
// break;
// case "526D":
// returnArray.push("4954D");
// break;
// case "536D":
// returnArray.push("4330D");
// break;
// case "538D":
// returnArray.push("4447D");
// break;
// case "540D":
// returnArray.push("4336D");
// break;
// case "542D":
// returnArray.push("451D");
// break;
// case "4546D":
// returnArray.push("4455D");
// break;
// case "4552D":
// returnArray.push("4346D");
// break;
// case "4556D":
// returnArray.push("4352D");
// break;
// case "4558D":
// returnArray.push("5467D");
// break;
// case "562D":
// returnArray.push("360D");
// break;
// case "564D":
// returnArray.push("362D");
// break;
// case "566D":
// returnArray.push("475D");
// break;
// case "570D":
// returnArray.push("5479D");
// break;
// // reverse.
// case "952D":
// returnArray.push("522D");
// break;
// case "4954D":
// returnArray.push("526D");
// break;
// case "4330D":
// returnArray.push("536D");
// break;
// case "4447D":
// returnArray.push("538D");
// break;
// case "4336D":
// returnArray.push("540D");
// break;
// case "451D":
// returnArray.push("542D");
// break;
// case "4455D":
// returnArray.push("4546D");
// break;
// case "4346D":
// returnArray.push("4552D");
// break;
// case "4352D":
// returnArray.push("4556D");
// break;
// case "5467D":
// returnArray.push("4558D");
// break;
// case "360D":
// returnArray.push("562D");
// break;
// case "362D":
// returnArray.push("564D");
// break;
// case "475D":
// returnArray.push("566D");
// break;
// case "5479D":
// returnArray.push("570D");
// break;
// }
switch (trainNum) {
case "143M":
returnArray.push("139M");
break;
case "139M":
returnArray.push("143M");
break;
// 土讃線琴平界隈
case "1263M":
returnArray.push("4263M");
break;
case "4263M":
returnArray.push("1263M");
break;
// 徳島界隈接続一覧
//下り
case "4430D":
returnArray.push("525D");
break;
case "951D":
returnArray.push("527D");
break;
case "434D":
returnArray.push("529D");
break;
case "4452D":
returnArray.push("4545D");
break;
case "4456D":
returnArray.push("4549D");
break;
case "4466D":
returnArray.push("561D");
break;
case "468D":
returnArray.push("563D");
break;
case "4470D":
returnArray.push("565D");
break;
case "4472D":
returnArray.push("567D");
break;
case "474D":
returnArray.push("569D");
break;
case "476D":
returnArray.push("573D");
break;
case "478D":
returnArray.push("575D");
break;
case "480D":
returnArray.push("579D");
break;
case "484D":
returnArray.push("583D");
break;
// reverse.
case "525D":
returnArray.push("4430D");
break;
case "527D":
returnArray.push("951D");
break;
case "529D":
returnArray.push("434D");
break;
case "4545D":
returnArray.push("4452D");
break;
case "4549D":
returnArray.push("4456D");
break;
case "561D":
returnArray.push("4466D");
break;
case "563D":
returnArray.push("468D");
break;
case "565D":
returnArray.push("4470D");
break;
case "567D":
returnArray.push("4472D");
break;
case "569D":
returnArray.push("474D");
break;
case "573D":
returnArray.push("476D");
break;
case "575D":
returnArray.push("478D");
break;
case "579D":
returnArray.push("480D");
break;
case "583D":
returnArray.push("484D");
break;
//上り
case "4520D":
returnArray.push("4314D");
break;
case "522D":
returnArray.push("952D");
break;
case "526D":
returnArray.push("4954D");
break;
case "534D":
returnArray.push("4326D");
break;
case "536D":
returnArray.push("4447D");
break;
case "538D":
returnArray.push("4334D");
break;
case "540D":
returnArray.push("451D");
break;
case "4544D":
returnArray.push("4455D");
break;
case "4550D":
returnArray.push("4342D");
break;
case "4554D":
returnArray.push("4350D");
break;
case "4556D":
returnArray.push("5467D");
break;
case "560D":
returnArray.push("5471D");
break;
case "562D":
returnArray.push("358D");
break;
case "564D":
returnArray.push("475D");
break;
case "568D":
returnArray.push("5479D");
break;
case "4572D":
returnArray.push("4978D");
break;
case "576D":
returnArray.push("4368D");
break;
// reverse.
case "4314D":
returnArray.push("4520D");
break;
case "952D":
returnArray.push("522D");
break;
case "4954D":
returnArray.push("526D");
break;
case "4326D":
returnArray.push("534D");
break;
case "4447D":
returnArray.push("536D");
break;
case "4334D":
returnArray.push("538D");
break;
case "451D":
returnArray.push("540D");
break;
case "4455D":
returnArray.push("4544D");
break;
case "4342D":
returnArray.push("4550D");
break;
case "4350D":
returnArray.push("4554D");
break;
case "5467D":
returnArray.push("4556D");
break;
case "5471D":
returnArray.push("560D");
break;
case "358D":
returnArray.push("562D");
break;
case "475D":
returnArray.push("564D");
break;
case "5479D":
returnArray.push("568D");
break;
case "4978D":
returnArray.push("4572D");
break;
case "4368D":
returnArray.push("576D");
break;
}
if(new RegExp(/^4[1-9]\d\d[DM]$/).test(trainNum)){
if (trainList["5" + trainNum.substring(1)])
returnArray.push("5" + trainNum.substring(1));
@ -304,7 +302,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
}
if (!returnArray.length) return [];
const TDArray = returnArray.map((d) => {
const TDArray = returnArray.filter(d => trainList.hasOwnProperty(d)).map((d) => {
const TD = trainList[d];
if (!TD) return;
return { id: d, TrainData: TD.split("#").filter((d) => d != "") };

View File

@ -65,7 +65,7 @@ export const TrainMenuProvider = ({ children }) => {
//地図表示テキスト
const injectJavascript = injectJavascriptData(
mapSwitch,
"false",//iconSetting,
iconSetting,
stationMenu,
trainMenu
);