Compare commits

...

41 Commits

Author SHA1 Message Date
harukin-expo-dev-env
e6fab84393 Merge commit 'de2b94292dc97df6e290e91976d01cea24c98ced' 2025-03-22 12:33:34 +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
390acdeab7 Merge commit '8c75e06ac18e33588b5bf200d7fccf05d3c34c22' 2025-03-22 11:34:25 +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
ff7a5624e6 Merge commit '45500e7a4ae614debd93404339958465db88f71d' 2025-03-19 15:49:36 +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
9b79f224d3 Merge commit '2c5023568a0442679b476bd84651eca3fcc90ee1' 2025-03-16 05:56:14 +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
047848ed1a Merge commit '23fb2d715a461cb0ebfca1e1944757febd315fec' into develop 2025-03-14 18:22:02 +00:00
15 changed files with 989 additions and 543 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,19 +177,31 @@ 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ーマル
@ -206,9 +227,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
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アンパン
@ -231,6 +253,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-eki.com/aptrain/naani/dosan/train.html",
trainNumDistance: 30,
info: "アンパンマン列車で運転",
infogram: ""
};
//うずしお
@ -245,36 +268,40 @@ export const customTrainDataDetector = (TrainNumber: string) => {
case "3003D":
case "3007D":
case "3013D":
case "3019D":
case "3025D":
case "3029D":
case "3031D":
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: ""
};
//2700 二両編成
case "3008D":
case "3020D":
case "3026D":
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
@ -293,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":
@ -384,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":
@ -397,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: ""
};
//サンライズ瀬戸
@ -413,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": //琴平延長高松以降
@ -424,6 +539,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"https://www.jr-odekake.net/train/sunriseseto_izumo/index.html",
trainNumDistance: null,
info: "琴平延長運転日",
infogram: "ブ"
};
//宇和海
@ -458,9 +574,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
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 "1058D":
@ -476,6 +593,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-eki.com/aptrain/naani/yosan/train.html",
trainNumDistance: 1050,
info: "アンパン列車で運転",
infogram: ""
};
//しまんと
case "2002D":
@ -487,9 +605,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
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系で運転",
infogram: ""
};
//あしずり 2000
@ -506,26 +625,38 @@ 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 "2072D":
case "2078D":
case "2084D":
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 {
type: "LTDEXP",
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: ""
};
//剣山
@ -541,9 +672,10 @@ export const customTrainDataDetector = (TrainNumber: string) => {
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系で運転",
infogram: ""
};
//よしのがわトロッコ
@ -554,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: ""
};
//岡山高松アントロ
@ -573,6 +706,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
"https://www.jr-eki.com/aptrain/naani/torokko_seto/jikoku.html",
trainNumDistance: null,
info: "",
infogram: ""
};
//伊予灘ものがたり
@ -585,6 +719,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://iyonadamonogatari.com/",
trainNumDistance: null,
info: "",
infogram: ""
};
case "8092D":
case "8094D":
@ -595,6 +730,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://iyonadamonogatari.com/",
trainNumDistance: null,
info: "",
infogram: ""
};
//千年ものがたり
@ -607,6 +743,7 @@ export const customTrainDataDetector = (TrainNumber: string) => {
infoUrl: "https://www.jr-shikoku.co.jp/sennenmonogatari/",
trainNumDistance: null,
info: "",
infogram: ""
};
//夜明けものがたり
@ -621,10 +758,41 @@ 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) ||
new RegExp(/^3[2-9]\d\d[DM]$/).test(TrainNumber)
@ -636,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" };

View File

@ -208,21 +208,23 @@ export const injectJavascriptData: InjectJavascriptData = (
case "3003D":
case "3007D":
case "3013D":
case "3019D":
case "3025D":
case "3029D":
case "3031D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_uzu.png');
break;
//2700 二両編成
case "3008D":
case "3020D":
case "3026D":
case "3001D":
case "3005D":
case "3011D":
case "3017D":
case "3019D":
case "3023D":
case "3029D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_uzu.png');
break;
@ -240,12 +242,6 @@ export const injectJavascriptData: InjectJavascriptData = (
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2600.png');
break;
//キハ185
case "3001D":
case "3008D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185tu_uzu.png');
break;
//マリンライナー
case "3104M":
case "3106M":
@ -398,6 +394,7 @@ export const injectJavascriptData: InjectJavascriptData = (
case "2084D":
case "2075D":
case "2077D":
case "2083D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s2700_asi.png');
break;
//剣山
@ -469,53 +466,53 @@ export const injectJavascriptData: InjectJavascriptData = (
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/ef210a.png');
break;
// 普通列車系統、6000系運用
//61運用
case "1213M":
case "1214M":
case "143M":
case "147M":
//62運用
case "114M":
//961運用
case "143M":
case "147M":
//962運用
case "114M":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s6000p.png');
break;
// // 普通列車系統、6000系運用
// //61運用
// case "1213M":
// case "1214M":
// case "143M":
// case "147M":
// //62運用
// case "114M":
// //961運用
// case "143M":
// case "147M":
// //962運用
// case "114M":
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s6000p.png');
// break;
// 土讃線普通列車系統(include ごな線)
// ごな線
case "5851D": //219D併結 [ToDo: 219Dとの分割対策]
case "5854D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/tosa9640jgr.png');
break;
// // 土讃線普通列車系統(include ごな線)
// // ごな線
// case "5851D": //219D併結 [ToDo: 219Dとの分割対策]
// case "5854D":
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/tosa9640jgr.png');
// break;
//JR車両乗り入れ運用
case "5858D":
case "5869D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png');
break;
//併結運用の併結される側 [ToDo: 分割対策]
case "5845D":
case "5851D":
case "5818D":
case "5820D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/tosa9640.png');
break;
// 土讃線単体列車のキハ32運用
case "715D":
case "718D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32ns.png');
break;
// //JR車両乗り入れ運用
// case "5858D":
// case "5869D":
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png');
// break;
// //併結運用の併結される側 [ToDo: 分割対策]
// case "5845D":
// case "5851D":
// case "5818D":
// case "5820D":
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/tosa9640.png');
// break;
// // 土讃線単体列車のキハ32運用
// case "715D":
// case "718D":
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s32ns.png');
// break;
// サンライズに伴う気動車代走
case "6219D":
case "6222D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png');
break;
// // サンライズに伴う気動車代走
// case "6219D":
// case "6222D":
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png');
// break;
// // それ以外の土讃線ごな線直通列車
// case "5811D":
// case "5813D":
@ -906,97 +903,89 @@ export const injectJavascriptData: InjectJavascriptData = (
// case "8094D":
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s185iyoy.png');
// break;
// // 高徳線、徳島線、牟岐線、鳴門線普通列車系統
// // キハ40・47
// case "4303D":
// case "363D":
// case "369D":
// case "314D":
// case "316D":
// case "368D":
// case "4382D":
// case "951D":
// case "953D":
// case "955D":
// case "973D":
// case "975D":
// case "977D":
// case "979D":
// case "981D":
// case "950D":
// case "968D":
// case "970D":
// case "972D":
// case "974D":
// case "976D":
// case "980D":
// case "982D":
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s40.png');
// break;
// // 1000形
// case "4309D":
// case "4311D":
// case "371D":
// case "4318D":
// case "358D":
// case "4380D":
// case "433D":
// case "473D":
// case "450D":
// case "480D":
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png');
// break;
// // 1200形
// case "4301D":
// case "4327D":
// case "4329D":
// case "4343D":
// case "351D":
// case "353D":
// case "355D":
// case "4355D":
// case "4361D":
// case "367D":
// case "4330D":
// case "4336D":
// case "4346D":
// case "360D":
// case "362D":
// case "4370D":
// case "374D":
// case "4378D":
// case "451D":
// case "4453D":
// case "4455D":
// case "4459D":
// case "471D":
// case "475D":
// case "485D":
// case "4430D":
// case "434D":
// case "438D":
// case "4460D":
// case "4466D":
// case "4470D":
// case "474D":
// case "484D":
// case "957D":
// case "4959D":
// case "4963D":
// case "4967D":
// case "4971D":
// case "4983D":
// case "952D":
// case "4954D":
// case "4958D":
// case "4962D":
// case "4966D":
// case "4978D":
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1200n.png');
// break;
// 高徳線、徳島線、牟岐線、鳴門線普通列車系統
// キハ40・47
case "4303D":
case "371D":
case "316D":
case "362D":
case "4376D":
case "951D":
case "953D":
case "955D":
case "973D":
case "975D":
case "977D":
case "979D":
case "981D":
case "950D":
case "968D":
case "970D":
case "972D":
case "974D":
case "976D":
case "980D":
case "982D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s40.png');
break;
// 1000形
case "4311D":
case "363D":
case "356D":
case "4374D":
case "433D":
case "4447D":
case "451D":
case "450D":
case "4458D":
case "474D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1000.png');
break;
// 1200形
case "4301D":
case "4327D":
case "4329D":
case "4343D":
case "353D":
case "355D":
case "367D":
case "310D":
case "4326D":
case "4334D":
case "4342D":
case "358D":
case "364D":
case "4453D":
case "4455D":
case "4457D":
case "463D":
case "475D":
case "477D":
case "485D":
case "4430D":
case "434D":
case "438D":
case "4460D":
case "4464D":
case "4466D":
case "478D":
case "484D":
case "957D":
case "4959D":
case "4963D":
case "4967D":
case "4971D":
case "952D":
case "4954D":
case "4958D":
case "4962D":
case "4966D":
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1200n.png');
break;
// default: //指定車両でなく、Regexでの指定に移動
default: //指定車両でなく、Regexでの指定に移動
// // 琴平直通系普通電車
// if(new RegExp(/^(1|4|5)2\\d\\dM$/).test(列番データ)){
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7200.png');
@ -1010,30 +999,31 @@ export const injectJavascriptData: InjectJavascriptData = (
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7000.png');
// break;
// }// 高徳線 普通列車系統
// else if(new RegExp(/^(4|5)3\\d\\dD$/).test(列番データ)){
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
// break;
// }
// else if(new RegExp(/^3\\d\\dD$/).test(列番データ)){
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
// break;
// }// 徳島線 普通列車系統
// else if(new RegExp(/^(4|5)4\\d\\dD$/).test(列番データ)){
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
// break;
// }
// else if(new RegExp(/^4\\d\\dD$/).test(列番データ)){
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
// break;
// }// 鳴門線普通列車系統
// else if(new RegExp(/^(4|5)9(5|6|7|8)\\dD$/).test(列番データ)){
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
// break;
// }
// else if(new RegExp(/^9(5|6|7|8)\\dD$/).test(列番データ)){
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
// break;
// }
// else
if(new RegExp(/^(4|5)3\\d\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
break;
}
else if(new RegExp(/^3\\d\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
break;
}// 徳島線 普通列車系統
else if(new RegExp(/^(4|5)4\\d\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
break;
}
else if(new RegExp(/^4\\d\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
break;
}// 鳴門線普通列車系統
else if(new RegExp(/^(4|5)9(5|6|7|8)\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
break;
}
else if(new RegExp(/^9(5|6|7|8)\\dD$/).test()){
setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s1500.png');
break;
}
// 牟岐線普通列車系統 一旦閉鎖
// else if(new RegExp(/^(4|5)5\\d\\dD$/).test(列番データ)){
// setStationIcon(e.querySelector("img"),'https://storage.haruk.in/s7200.png');
@ -1136,72 +1126,132 @@ export const injectJavascriptData: InjectJavascriptData = (
switch(num){
//牟岐線直通列車情報
case "351D":
//徳島線発牟岐線行き
case "468D":
case "478D":
case "484D":
viaData = "牟岐線直通";
ToData = "牟岐";
case "951D":
viaData = "牟岐線直通";
ToData = "桑野";
break;
case "4430D":
case "4472D":
viaData = "牟岐線直通";
isWanman = true;
ToData = "牟岐";
break;
case "434D":
case "474D":
case "478D":
case "476D":
case "480D":
viaData = "牟岐線直通";
ToData = "阿南";
case "5444D":
break;
case "4452D":
case "4458D":
case "4460D":
case "4466D":
case "4470D":
viaData = "牟岐線直通";
isWanman = true;
ToData = "阿南";
case "4464D":
break;
case "4456D":
viaData = "牟岐線直通";
isWanman = true;
ToData = "阿波海南"
break;
//鳴門線発牟岐線行き
case "951D":
viaData = "牟岐線直通";
ToData = "桑野";
break;
//牟岐線発高徳線行き
case "358D":
viaData = "牟岐線直通";
break;
case "4314D":
case "4326D":
case "4334D":
case "4342D":
case "4350D":
case "4368D":
viaData = "牟岐線直通";
isWanman = true;
break;
//牟岐線発徳島線行き
case "451D":
case "475D":
viaData = "牟岐線直通";
break;
case "4447D":
case "4455D":
case "5467D":
case "5471D":
case "5479D":
viaData = "牟岐線直通";
isWanman = true;
break;
//牟岐線発鳴門線行き
case "952D":
viaData = "牟岐線直通";
break;
case "4954D":
case "4978D":
viaData = "牟岐線直通";
isWanman = true;
break;
//安芸行と併結列車を個別に表示、それ以外をdefaultで下りなら既定の行き先を、上りなら奈半利行を設定
case "5814D":
case "5816D":
viaData = "ごめん・なはり線[快速]";
ToData = "奈半利";
break;
case "5812D":
viaData = "ごめん・なはり線[快速]";
ToData = "安芸";
break;
case "5874D":
case "5882D":
case "5878D":
viaData = "ごめん・なはり線[各停]";
ToData = "安芸";
case "246D":
case "750D":
break;
case "248D":
case "250D":
viaData = "ごめん・なはり線[快速]";
ToData = "(後免にて解結)土佐山田/奈半利";
break;
case "9395D":
viaData = "[臨時]普通";
ToData = "三本松";
break;
case "9174M":
viaData = "[臨時]マリンライナー94号";
ToData = "岡山";
break;
default:
if(new RegExp(/^58[1-3][1,3,5,7,9][DM]$/).test()){
viaData = "ごめん・なはり線[快速]";
break;
}
else if(new RegExp(/^58[4-9][1,3,5,7,9][DM]$/).test()){
viaData = "ごめん・なはり線[各停]";
break;
}
else if(new RegExp(/^58[3-4][0,2,4,6,8][DM]$/).test()){
viaData = "ごめん・なはり線[快速]";
ToData = "奈半利";
break;
}
else if(new RegExp(/^58[5-9][0,2,4,6,8][DM]$/).test()){
viaData = "ごめん・なはり線[各停]";
ToData = "奈半利";
break;
}
}
}
getThrew();
//列番付与
const returnText1 = (isWanman ? "ワンマン " : "") + trainName + viaData;
const returnText2 = (ToData ? ToData+"行 " : ToData)+ TrainNumber;

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

@ -72,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));