リファクタリング
This commit is contained in:
parent
420a805f3c
commit
480bcbfcd3
@ -42,8 +42,7 @@ let diagramData = undefined;
|
|||||||
* 9062D 四国まんなか千年ものがたり(臨時?)
|
* 9062D 四国まんなか千年ものがたり(臨時?)
|
||||||
*/
|
*/
|
||||||
export default function LED_vision(props) {
|
export default function LED_vision(props) {
|
||||||
const { station, navigate, setTrainInfo, EachTrainInfoAsSR, trainDiagram } =
|
const { station, setTrainInfo, EachTrainInfoAsSR, trainDiagram } = props;
|
||||||
props;
|
|
||||||
const [stationDiagram, setStationDiagram] = useState({}); //当該駅の全時刻表
|
const [stationDiagram, setStationDiagram] = useState({}); //当該駅の全時刻表
|
||||||
const [currentTrain, setCurrentTrain] = useState([]); //現在在線中の全列車 { num: 列車番号, delay: 遅延時分(状態), Pos: 位置情報 }
|
const [currentTrain, setCurrentTrain] = useState([]); //現在在線中の全列車 { num: 列車番号, delay: 遅延時分(状態), Pos: 位置情報 }
|
||||||
const [currentTrainLoading, setCurrentTrainLoading] = useState("loading"); // success, error, loading
|
const [currentTrainLoading, setCurrentTrainLoading] = useState("loading"); // success, error, loading
|
||||||
@ -109,22 +108,26 @@ export default function LED_vision(props) {
|
|||||||
useInterval(getCurrentTrain, 15000); //15秒毎に全在線列車取得
|
useInterval(getCurrentTrain, 15000); //15秒毎に全在線列車取得
|
||||||
|
|
||||||
const getTime = (stationDiagram, station) => {
|
const getTime = (stationDiagram, station) => {
|
||||||
const returnData = Object.keys(stationDiagram).map((d) => {
|
const returnData = Object.keys(stationDiagram).map((trainNum) => {
|
||||||
let a = {};
|
let trainData = {};
|
||||||
stationDiagram[d].split("#").forEach((data) => {
|
stationDiagram[trainNum].split("#").forEach((data) => {
|
||||||
if (data.match("着")) {
|
if (data.match("着")) {
|
||||||
a.lastStation = data.split(",着,")[0];
|
trainData.lastStation = data.split(",着,")[0];
|
||||||
}
|
}
|
||||||
if (data.split(",")[0] === station.Station_JP) {
|
if (data.split(",")[0] === station.Station_JP) {
|
||||||
if (data.match(",発,")) {
|
if (data.match(",発,")) {
|
||||||
a.time = data.split(",発,")[1];
|
trainData.time = data.split(",発,")[1];
|
||||||
} else {
|
} else {
|
||||||
a.time = data.split(",着,")[1];
|
trainData.time = data.split(",着,")[1];
|
||||||
a.lastStation = "当駅止";
|
trainData.lastStation = "当駅止";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return { train: d, time: a.time, lastStation: a.lastStation };
|
return {
|
||||||
|
train: trainNum,
|
||||||
|
time: trainData.time,
|
||||||
|
lastStation: trainData.lastStation,
|
||||||
|
};
|
||||||
});
|
});
|
||||||
return returnData.sort((a, b) => {
|
return returnData.sort((a, b) => {
|
||||||
switch (true) {
|
switch (true) {
|
||||||
@ -342,10 +345,11 @@ const EachData = ({
|
|||||||
onPress={() => openTrainInfo(d)}
|
onPress={() => openTrainInfo(d)}
|
||||||
>
|
>
|
||||||
<TrainName
|
<TrainName
|
||||||
train={train}
|
trainName={train.trainName}
|
||||||
|
trainNumDistance={train.trainNumDistance}
|
||||||
trainIDSwitch={trainIDSwitch}
|
trainIDSwitch={trainIDSwitch}
|
||||||
d={d}
|
trainID={d.train}
|
||||||
getTrainType={getTrainType(train.type)}
|
type={train.type}
|
||||||
/>
|
/>
|
||||||
<LastStation lastStation={d.lastStation} />
|
<LastStation lastStation={d.lastStation} />
|
||||||
<DependTime time={d.time} />
|
<DependTime time={d.time} />
|
||||||
@ -358,14 +362,18 @@ const EachData = ({
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const TrainName = ({ train: s, trainIDSwitch, d, getTrainType }) => {
|
const TrainName = ({
|
||||||
const { trainName, trainNumDistance } = s;
|
trainName,
|
||||||
const { name, color } = getTrainType;
|
trainNumDistance,
|
||||||
const { train } = d;
|
trainIDSwitch,
|
||||||
|
trainID,
|
||||||
|
type,
|
||||||
|
}) => {
|
||||||
|
const { name, color } = getTrainType(type);
|
||||||
let TrainNumber =
|
let TrainNumber =
|
||||||
trainNumDistance != undefined
|
trainNumDistance != undefined
|
||||||
? `${
|
? `${
|
||||||
parseInt(train.replace("M", "").replace("D", "")) - trainNumDistance
|
parseInt(trainID.replace("M", "").replace("D", "")) - trainNumDistance
|
||||||
}号`
|
}号`
|
||||||
: "";
|
: "";
|
||||||
return (
|
return (
|
||||||
@ -377,7 +385,7 @@ const TrainName = ({ train: s, trainIDSwitch, d, getTrainType }) => {
|
|||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{trainIDSwitch ? train : `${name} ${trainName}${TrainNumber}`}
|
{trainIDSwitch ? trainID : `${name} ${trainName}${TrainNumber}`}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
@ -399,8 +407,7 @@ const LastStation = ({ lastStation }) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const DependTime = ({ time }) => {
|
const DependTime = ({ time }) => (
|
||||||
return (
|
|
||||||
<View style={{ flex: 3 }}>
|
<View style={{ flex: 3 }}>
|
||||||
<Text
|
<Text
|
||||||
style={{
|
style={{
|
||||||
@ -412,8 +419,7 @@ const DependTime = ({ time }) => {
|
|||||||
{time}
|
{time}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
const checkDuplicateTrainData = (currentTrainArray) => {
|
const checkDuplicateTrainData = (currentTrainArray) => {
|
||||||
const notNyujoData = currentTrainArray.filter((d) => d.delay !== "入線");
|
const notNyujoData = currentTrainArray.filter((d) => d.delay !== "入線");
|
||||||
|
18
menu.js
18
menu.js
@ -245,7 +245,6 @@ export default function Menu(props) {
|
|||||||
station={
|
station={
|
||||||
originalStationList && allStationData[selectedCurrentStation][0]
|
originalStationList && allStationData[selectedCurrentStation][0]
|
||||||
}
|
}
|
||||||
navigate={navigate}
|
|
||||||
setTrainInfo={setTrainInfo}
|
setTrainInfo={setTrainInfo}
|
||||||
EachTrainInfoAsSR={EachTrainInfoAsSR}
|
EachTrainInfoAsSR={EachTrainInfoAsSR}
|
||||||
trainDiagram={trainDiagram}
|
trainDiagram={trainDiagram}
|
||||||
@ -652,14 +651,7 @@ const FixedContentBottom = (props) => {
|
|||||||
borderBottomRightRadius: 10,
|
borderBottomRightRadius: 10,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{((data) =>
|
{[
|
||||||
data.map((d) => (
|
|
||||||
<ListItem onPress={() => Linking.openURL(d.url)}>
|
|
||||||
<Text>{d.name}</Text>
|
|
||||||
<View style={{ flex: 1 }} />
|
|
||||||
<Icon name="chevron-right" size={20} />
|
|
||||||
</ListItem>
|
|
||||||
)))([
|
|
||||||
{
|
{
|
||||||
url: "https://twitter.com/JRshikoku_eigyo",
|
url: "https://twitter.com/JRshikoku_eigyo",
|
||||||
name: "JR四国営業部【公式】",
|
name: "JR四国営業部【公式】",
|
||||||
@ -708,7 +700,13 @@ const FixedContentBottom = (props) => {
|
|||||||
url: "https://twitter.com/Yoakemonogatari",
|
url: "https://twitter.com/Yoakemonogatari",
|
||||||
name: "志国土佐 時代の夜明けのものがたり【公式】",
|
name: "志国土佐 時代の夜明けのものがたり【公式】",
|
||||||
},
|
},
|
||||||
])}
|
].map((d) => (
|
||||||
|
<ListItem onPress={() => Linking.openURL(d.url)}>
|
||||||
|
<Text>{d.name}</Text>
|
||||||
|
<View style={{ flex: 1 }} />
|
||||||
|
<Icon name="chevron-right" size={20} />
|
||||||
|
</ListItem>
|
||||||
|
))}
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
<Text style={{ fontWeight: "bold", fontSize: 20 }}>
|
<Text style={{ fontWeight: "bold", fontSize: 20 }}>
|
||||||
|
Loading…
Reference in New Issue
Block a user