tsxのFC宣言をProviderに追加
This commit is contained in:
@@ -9,30 +9,13 @@ export const initIcon = (
|
||||
tabBarBadge: string,
|
||||
isInfo: boolean
|
||||
) => {
|
||||
switch (type) {
|
||||
case "Ionicons":
|
||||
const IconComponent = type == "Ionicons" ? Ionicons : AntDesign;
|
||||
return ({ focused, color, size }) => (
|
||||
<>
|
||||
{!!tabBarBadge && <Badge tabBarBadge={tabBarBadge} isInfo={isInfo} />}
|
||||
<Ionicons
|
||||
name={name}
|
||||
size={30}
|
||||
color={focused ? "#0099CC" : "black"}
|
||||
/>
|
||||
<IconComponent name={name} size={30} color={focused ? "#0099CC" : "black"} />
|
||||
</>
|
||||
);
|
||||
case "AntDesign":
|
||||
return ({ focused, color, size }) => (
|
||||
<>
|
||||
{!!tabBarBadge && <Badge tabBarBadge={tabBarBadge} isInfo={isInfo} />}
|
||||
<AntDesign
|
||||
name={name}
|
||||
size={30}
|
||||
color={focused ? "#0099CC" : "black"}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
};
|
||||
type BadgeProps = { tabBarBadge: string; isInfo: boolean };
|
||||
|
||||
@@ -60,7 +43,7 @@ export const Badge: FC<BadgeProps> = ({ tabBarBadge, isInfo }) => {
|
||||
shadowOffset: { width: 0, height: 0 },
|
||||
shadowOpacity: 0.5,
|
||||
shadowRadius: 4,
|
||||
elevation: 2
|
||||
elevation: 2,
|
||||
}}
|
||||
>
|
||||
<Text style={{ color: "white", paddingHorizontal: 4 }}>
|
||||
|
17
ndView.tsx
17
ndView.tsx
@@ -1,5 +1,12 @@
|
||||
import React, { Ref, useRef, useState,useEffect } from "react";
|
||||
import { View, Platform, TouchableOpacity, StyleProp, ViewStyle,Linking } from "react-native";
|
||||
import React, { Ref, useRef, useState, useEffect } from "react";
|
||||
import {
|
||||
View,
|
||||
Platform,
|
||||
TouchableOpacity,
|
||||
StyleProp,
|
||||
ViewStyle,
|
||||
Linking,
|
||||
} from "react-native";
|
||||
import { WebView } from "react-native-webview";
|
||||
import Constants from "expo-constants";
|
||||
import { Ionicons } from "@expo/vector-icons";
|
||||
@@ -100,7 +107,7 @@ setInterval(() => {
|
||||
});
|
||||
}, 1000);
|
||||
`;
|
||||
const goToTrainMenu = () =>{
|
||||
const goToTrainMenu = () => {
|
||||
if (Platform.OS === "web") {
|
||||
Linking.openURL("https://www.jr-shikoku.co.jp/info/");
|
||||
setTimeout(() => {
|
||||
@@ -110,7 +117,7 @@ setInterval(() => {
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
};
|
||||
useEffect(() => {
|
||||
// @ts-ignore
|
||||
const unsubscribe = addListener("tabPress", goToTrainMenu);
|
||||
@@ -147,7 +154,7 @@ setInterval(() => {
|
||||
}
|
||||
|
||||
const ReloadButton = ({ onPress, top, LoadError = false }) => {
|
||||
const styles:StyleProp<ViewStyle> = {
|
||||
const styles: StyleProp<ViewStyle> = {
|
||||
position: "absolute",
|
||||
top,
|
||||
right: 10,
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import trainList from "@/assets/originData/trainList";
|
||||
import useInterval from "@/lib/useInterval";
|
||||
import { AS } from "@/storageControl";
|
||||
import React, { createContext, useContext, useEffect, useState } from "react";
|
||||
import React, { createContext, FC, useContext, useEffect, useState } from "react";
|
||||
const initialState = {
|
||||
allTrainDiagram: {},
|
||||
setAllTrainDiagram: (e) => {},
|
||||
@@ -18,8 +18,10 @@ type initialStateType = {
|
||||
const AllTrainDiagramContext = createContext<initialStateType>(initialState);
|
||||
|
||||
export const useAllTrainDiagram = () => useContext(AllTrainDiagramContext);
|
||||
|
||||
export const AllTrainDiagramProvider = ({ children }) => {
|
||||
type Props = {
|
||||
children: React.ReactNode;
|
||||
};
|
||||
export const AllTrainDiagramProvider:FC<Props> = ({ children }) => {
|
||||
const [allTrainDiagram, setAllTrainDiagram] = useState(trainList);
|
||||
const [allCustomTrainData, setAllCustomTrainData] = useState([]); // カスタム列車データ
|
||||
const [keyList, setKeyList] = useState<string[]>([]); // 第二要素
|
||||
|
@@ -1,4 +1,10 @@
|
||||
import React, { createContext, useContext, useState, useEffect } from "react";
|
||||
import React, {
|
||||
createContext,
|
||||
useContext,
|
||||
useState,
|
||||
useEffect,
|
||||
FC,
|
||||
} from "react";
|
||||
import useInterval from "../lib/useInterval";
|
||||
|
||||
const setoStationID = [
|
||||
@@ -327,8 +333,6 @@ const areaStationPair = {
|
||||
yodo: { id: "G", stationID: yodoStationID },
|
||||
};
|
||||
|
||||
|
||||
|
||||
const initialState = {
|
||||
areaInfo: "",
|
||||
setAreaInfo: () => {},
|
||||
@@ -351,8 +355,8 @@ const AreaInfoContext = createContext<initialStateType>(initialState);
|
||||
export const useAreaInfo = () => {
|
||||
return useContext(AreaInfoContext);
|
||||
};
|
||||
|
||||
export const AreaInfoProvider = ({ children }) => {
|
||||
type props = { children: React.ReactNode };
|
||||
export const AreaInfoProvider: FC<props> = ({ children }) => {
|
||||
const [areaInfo, setAreaInfo] = useState("");
|
||||
const [areaIconBadgeText, setAreaIconBadgeText] = useState("");
|
||||
const [areaStationID, setAreaStationID] = useState([]);
|
||||
|
@@ -1,4 +1,10 @@
|
||||
import React, { createContext, useContext, useState, useEffect } from "react";
|
||||
import React, {
|
||||
createContext,
|
||||
useContext,
|
||||
useState,
|
||||
useEffect,
|
||||
FC,
|
||||
} from "react";
|
||||
import { AS } from "../storageControl";
|
||||
import { useAllTrainDiagram } from "./useAllTrainDiagram";
|
||||
const initialState = {
|
||||
@@ -15,14 +21,16 @@ const BusAndTrainDataContext = createContext(initialState);
|
||||
export const useBusAndTrainData = () => {
|
||||
return useContext(BusAndTrainDataContext);
|
||||
};
|
||||
|
||||
export const BusAndTrainDataProvider = ({ children }) => {
|
||||
type props = { children: React.ReactNode };
|
||||
export const BusAndTrainDataProvider: FC<props> = ({ children }) => {
|
||||
const { allTrainDiagram } = useAllTrainDiagram();
|
||||
const [busAndTrainData, setBusAndTrainData] = useState<{
|
||||
const [busAndTrainData, setBusAndTrainData] = useState<
|
||||
{
|
||||
address: string;
|
||||
name: string;
|
||||
type: "station-data" | "bus-stop" | "train-info";
|
||||
}[]>([]);
|
||||
}[]
|
||||
>([]);
|
||||
const [trainPairData, setTrainPairData] = useState<any[]>([]);
|
||||
useEffect(() => {
|
||||
AS.getItem("busAndTrain202403")
|
||||
@@ -57,7 +65,7 @@ export const BusAndTrainDataProvider = ({ children }) => {
|
||||
});
|
||||
return trainPairList;
|
||||
};
|
||||
const getInfluencedTrainData = (trainNum:string) => {
|
||||
const getInfluencedTrainData = (trainNum: string) => {
|
||||
const trainPairList = initializeTrainPairList();
|
||||
|
||||
// 9253M ラマル
|
||||
|
@@ -4,6 +4,7 @@ import React, {
|
||||
useState,
|
||||
useEffect,
|
||||
useRef,
|
||||
FC,
|
||||
} from "react";
|
||||
import { HeaderConfig } from "../lib/HeaderConfig";
|
||||
|
||||
@@ -48,8 +49,10 @@ const CurrentTrainContext = createContext<initialStateType>(initialState);
|
||||
export const useCurrentTrain = () => {
|
||||
return useContext(CurrentTrainContext);
|
||||
};
|
||||
|
||||
export const CurrentTrainProvider = ({ children }) => {
|
||||
type props = {
|
||||
children: React.ReactNode;
|
||||
}
|
||||
export const CurrentTrainProvider:FC<props> = ({ children }) => {
|
||||
const [currentTrain, setCurrentTrain] = useState<trainDataType[]>([]); //現在在線中の全列車 { num: 列車番号, delay: 遅延時分(状態), Pos: 位置情報 }
|
||||
const [currentTrainLoading, setCurrentTrainLoading] =
|
||||
useState<loading>("loading");
|
||||
|
@@ -1,11 +1,11 @@
|
||||
import React, { createContext, useContext, useEffect, useState } from "react";
|
||||
import React, { createContext, FC, useContext, useEffect, useState } from "react";
|
||||
const initialState = {
|
||||
getTime: new Date(),
|
||||
setGetTime: () => {},
|
||||
setGetTime: (e) => {},
|
||||
loadingDelayData: true,
|
||||
setLoadingDelayData: (loading) => {},
|
||||
delayData: undefined,
|
||||
setDelayData: () => {},
|
||||
setDelayData: (e) => {},
|
||||
};
|
||||
|
||||
const TrainDelayDataContext = createContext(initialState);
|
||||
@@ -13,8 +13,10 @@ const TrainDelayDataContext = createContext(initialState);
|
||||
export const useTrainDelayData = () => {
|
||||
return useContext(TrainDelayDataContext);
|
||||
};
|
||||
|
||||
export const TrainDelayDataProvider = ({ children }) => {
|
||||
type props = {
|
||||
children: React.ReactNode;
|
||||
};
|
||||
export const TrainDelayDataProvider:FC<props> = ({ children }) => {
|
||||
const [delayData, setDelayData] = useState(undefined);
|
||||
const [getTime, setGetTime] = useState(new Date());
|
||||
const [loadingDelayData, setLoadingDelayData] = useState(true);
|
||||
|
@@ -1,4 +1,10 @@
|
||||
import React, { createContext, useContext, useState, useEffect } from "react";
|
||||
import React, {
|
||||
createContext,
|
||||
useContext,
|
||||
useState,
|
||||
useEffect,
|
||||
FC,
|
||||
} from "react";
|
||||
|
||||
import { ASCore } from "../storageControl";
|
||||
|
||||
@@ -30,8 +36,8 @@ const initialState = {
|
||||
setTrainInfo: (e) => {},
|
||||
trainMenu: "true",
|
||||
setTrainMenu: (e) => {},
|
||||
updatePermission : false,
|
||||
setUpdatePermission : (e) => {},
|
||||
updatePermission: false,
|
||||
setUpdatePermission: (e) => {},
|
||||
injectJavascript: "",
|
||||
};
|
||||
|
||||
@@ -40,33 +46,36 @@ const TrainMenuContext = createContext(initialState);
|
||||
export const useTrainMenu = () => {
|
||||
return useContext(TrainMenuContext);
|
||||
};
|
||||
|
||||
export const TrainMenuProvider = ({ children }) => {
|
||||
type props = { children: React.ReactNode };
|
||||
export const TrainMenuProvider: FC<props> = ({ children }) => {
|
||||
const { expoPushToken } = useNotification();
|
||||
const [selectedLine, setSelectedLine] = useState(undefined);
|
||||
const [mapsStationData, setMapsStationData] = useState(undefined);
|
||||
useEffect(() => {
|
||||
getStationList2().then(setMapsStationData);
|
||||
}, []);
|
||||
|
||||
type boolType = "true" | "false" | undefined;
|
||||
//画面表示関連
|
||||
const [iconSetting, setIconSetting] = useState<"true" | "false" | undefined>(undefined);
|
||||
const [mapSwitch, setMapSwitch] = useState<"true" | "false" | undefined>(undefined);
|
||||
const [stationMenu, setStationMenu] = useState<"true" | "false" | undefined>(undefined);
|
||||
const [iconSetting, setIconSetting] = useState<boolType>(undefined);
|
||||
const [mapSwitch, setMapSwitch] = useState<boolType>(undefined);
|
||||
const [stationMenu, setStationMenu] = useState<boolType>(undefined);
|
||||
const [LoadError, setLoadError] = useState(false);
|
||||
|
||||
//更新権限所有確認
|
||||
const [updatePermission, setUpdatePermission] = useState(false);
|
||||
useEffect(()=>{
|
||||
fetch("https://n8n.haruk.in/webhook/data-edit-permission?token=" + expoPushToken).then((res)=>res.json())
|
||||
.then((res)=>{
|
||||
if(res.data == true){
|
||||
useEffect(() => {
|
||||
fetch(
|
||||
"https://n8n.haruk.in/webhook/data-edit-permission?token=" + expoPushToken
|
||||
)
|
||||
.then((res) => res.json())
|
||||
.then((res) => {
|
||||
if (res.data == true) {
|
||||
setUpdatePermission(true);
|
||||
}else{
|
||||
} else {
|
||||
setUpdatePermission(false);
|
||||
}
|
||||
})
|
||||
}, [expoPushToken])
|
||||
});
|
||||
}, [expoPushToken]);
|
||||
|
||||
//列車情報表示関連
|
||||
const [trainInfo, setTrainInfo] = useState({
|
||||
|
Reference in New Issue
Block a user