リファクタリング
This commit is contained in:
		| @@ -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={{ | ||||||
| @@ -413,7 +420,6 @@ const DependTime = ({ 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 }}> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user