部分整理とts化

This commit is contained in:
harukin-expo-dev-env 2024-08-20 07:34:59 +00:00
parent 9ac41bc907
commit 1a10bee3c8
13 changed files with 71 additions and 43 deletions

22
App.js
View File

@ -1,21 +1,21 @@
import React, { useEffect } from "react";
import { Platform, UIManager } from "react-native";
import { GestureHandlerRootView } from "react-native-gesture-handler";
import { AppContainer } from "./Apps.js";
import { UpdateAsync } from "./UpdateAsync.js";
import { AppContainer } from "./Apps";
import { UpdateAsync } from "./UpdateAsync";
import { LogBox } from "react-native";
import { FavoriteStationProvider } from "./stateBox/useFavoriteStation";
import { CurrentTrainProvider } from "./stateBox/useCurrentTrain.js";
import { AreaInfoProvider } from "./stateBox/useAreaInfo.js";
import { BusAndTrainDataProvider } from "./stateBox/useBusAndTrainData.js";
import { AllTrainDiagramProvider } from "./stateBox/useAllTrainDiagram.js";
import { CurrentTrainProvider } from "./stateBox/useCurrentTrain";
import { AreaInfoProvider } from "./stateBox/useAreaInfo";
import { BusAndTrainDataProvider } from "./stateBox/useBusAndTrainData";
import { AllTrainDiagramProvider } from "./stateBox/useAllTrainDiagram";
import { SheetProvider } from "react-native-actions-sheet";
import "./components/ActionSheetComponents/sheets.js";
import { TrainDelayDataProvider } from "./stateBox/useTrainDelayData.js";
import "./components/ActionSheetComponents/sheets";
import { TrainDelayDataProvider } from "./stateBox/useTrainDelayData";
import { SafeAreaProvider } from "react-native-safe-area-context";
import { DeviceOrientationChangeProvider } from "./stateBox/useDeviceOrientationChange.js";
import { TrainMenuProvider } from "./stateBox/useTrainMenu.js";
import { buildProvidersTree } from "./lib/providerTreeProvider.js";
import { DeviceOrientationChangeProvider } from "./stateBox/useDeviceOrientationChange";
import { TrainMenuProvider } from "./stateBox/useTrainMenu";
import { buildProvidersTree } from "./lib/providerTreeProvider";
LogBox.ignoreLogs([
"ViewPropTypes will be removed",

View File

@ -4,10 +4,10 @@ import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { Platform } from "react-native";
import TNDView from "./ndView";
import { initIcon } from "./lib/initIcon";
import { Top } from "./Top.js";
import { MenuPage } from "./MenuPage.js";
import { useAreaInfo } from "./stateBox/useAreaInfo.js";
import "./components/ActionSheetComponents/sheets.js";
import { Top } from "./Top";
import { MenuPage } from "./MenuPage";
import { useAreaInfo } from "./stateBox/useAreaInfo";
import "./components/ActionSheetComponents/sheets";
export function AppContainer() {
const Tab = createBottomTabNavigator();

View File

@ -9,10 +9,10 @@ import HowTo from "./howto";
import Menu from "./menu";
import Setting from "./components/Settings/settings";
import { useFavoriteStation } from "./stateBox/useFavoriteStation";
import { optionData } from "./lib/stackOption.js";
import CurrentTrainListView from "./components/CurrentTrainListView.js";
import AllTrainDiagramView from "./components/AllTrainDiagramView.js";
import { useCurrentTrain } from "./stateBox/useCurrentTrain.js";
import { optionData } from "./lib/stackOption";
import CurrentTrainListView from "./components/CurrentTrainListView";
import AllTrainDiagramView from "./components/AllTrainDiagramView";
import { useCurrentTrain } from "./stateBox/useCurrentTrain";
import { useNavigation } from "@react-navigation/native";
const Stack = createStackNavigator();

12
Top.js
View File

@ -7,13 +7,13 @@ import { getStationList2 } from "./lib/getStationList2";
import Apps from "./components/Apps";
import TrainBase from "./components/trainbaseview";
import HowTo from "./howto";
import News from "./components/news.js";
import TrainMenu from "./components/trainMenu.js";
import FavoriteList from "./components/FavoriteList.js";
import { optionData } from "./lib/stackOption.js";
import News from "./components/news";
import TrainMenu from "./components/trainMenu";
import FavoriteList from "./components/FavoriteList";
import { optionData } from "./lib/stackOption";
import { useNavigation } from "@react-navigation/native";
import { useCurrentTrain } from "./stateBox/useCurrentTrain.js";
import { ASCore } from "./storageControl.js";
import { useCurrentTrain } from "./stateBox/useCurrentTrain";
import { ASCore } from "./storageControl";
import { useTrainMenu } from "./stateBox/useTrainMenu";
const Stack = createStackNavigator();
export const Top = ({ navigationRef }) => {

View File

@ -1,5 +1,12 @@
export const getTrainDelayStatus = (current, Station_JP) => {
if (!current) return () => {};
type getTrainDelayStatus = (
current: { delay: string; Pos: string },
Station_JP: string
) => string;
export const getTrainDelayStatus: getTrainDelayStatus = (
current,
Station_JP
) => {
if (!current) return "";
const delay = current.delay;
switch (true) {
case delay === "入線":
@ -8,9 +15,9 @@ export const getTrainDelayStatus = (current, Station_JP) => {
} else {
return "発車前";
}
case isNaN(delay):
case Number.isNaN(delay):
return delay;
case delay === 0:
case delay === "0":
return "定刻通り";
default:
return delay + "分遅れ";

View File

@ -1,4 +1,25 @@
export const getTrainType = (nameString) => {
type nameString =
| "Rapid"
| "LTDEXP"
| "NightLTDEXP"
| "SPCL"
| "Normal"
| string;
type colorString = "aqua" | "red" | "blue" | "white";
type trainTypeString =
| "快速"
| "特急"
| "寝台特急"
| "臨時"
| "普通列車"
| "その他";
type trainTypeDataString = "rapid" | "express" | "normal";
type getTrainType = (d: nameString) => {
color: colorString;
name: trainTypeString;
data: trainTypeDataString;
};
export const getTrainType: getTrainType = (nameString) => {
switch (nameString) {
case "Rapid":
return { color: "aqua", name: "快速", data: "rapid" };

View File

@ -1,3 +0,0 @@
export const objectIsEmpty = (obj) => {
return !Object.keys(obj).length;
};

3
lib/objectIsEmpty.ts Normal file
View File

@ -0,0 +1,3 @@
export const objectIsEmpty = (obj:object) => {
return !Object.keys(obj).length;
};

View File

@ -1,4 +1,4 @@
export const parseAllTrainDiagram = (text) => {
export const parseAllTrainDiagram = (text:string) => {
const val = text.replace("[\r\n", "").split(",\r\n");
let trainDiagram = {};
val.forEach((element) => {

View File

@ -1,16 +1,16 @@
import { useEffect, useRef, useState } from "react";
// type Control = {
// start: () => void;
// stop: () => void;
// };
type Control = {
start: () => void;
stop: () => void;
};
// type State = 'RUNNING' | 'STOPPED';
type State = "RUNNING" | "STOPPED";
// type Fn = () => void;
type Fn = () => void;
export const useInterval = (fn, interval, autostart = true) => {
const onUpdateRef = useRef();
export const useInterval = (fn: Fn, interval: number, autostart = true) => {
const onUpdateRef = useRef<Fn>();
const [state, setState] = useState("RUNNING");
const start = () => {
setState("RUNNING");

View File

@ -1,4 +1,4 @@
import storage from "./storageConfig.js";
import storage from "./storageConfig";
import * as Updates from "expo-updates";
export const AS = {