From 95bf504a001863de0144bec602ddb7f50a775735 Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Thu, 28 Mar 2024 11:37:24 +0000 Subject: [PATCH 1/3] =?UTF-8?q?=E3=81=8A=E6=B0=97=E3=81=AB=E5=85=A5?= =?UTF-8?q?=E3=82=8A=E7=94=BB=E9=9D=A2=E3=82=92=E4=BB=AE=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/Settings/FavoriteSettings.js | 160 ++++++++++++++++++++++++ components/Settings/SettingTopPage.js | 5 +- components/Settings/settings.js | 34 +++++ 3 files changed, 198 insertions(+), 1 deletion(-) create mode 100644 components/Settings/FavoriteSettings.js diff --git a/components/Settings/FavoriteSettings.js b/components/Settings/FavoriteSettings.js new file mode 100644 index 0000000..d24a238 --- /dev/null +++ b/components/Settings/FavoriteSettings.js @@ -0,0 +1,160 @@ +import React from "react"; +import { View, Text, TouchableOpacity, ScrollView } from "react-native"; +import { SwitchArea } from "../atom/SwitchArea"; +import { CheckBox } from "react-native-elements"; +import { TripleSwitchArea } from "../atom/TripleSwitchArea"; + +export const FavoriteSettings = ({ + navigate, + iconSetting, + setIconSetting, + mapSwitch, + setMapSwitch, + stationMenu, + setStationMenu, + usePDFView, + setUsePDFView, + trainMenu, + setTrainMenu, + trainPosition, + setTrainPosition, + headerSize, + setHeaderSize, +}) => { + return ( + + + + navigate("settingTopPage")} + style={{ + flexDirection: "column", + flex: 1, + }} + > + + + < 設定 + + + + + + + お気に入り設定 + + + + + {/* + + + + + + + + + + */} + 作成中 + + + ); +}; + +const SimpleSwitch = ({ bool, setBool, str }) => ( + + setBool(bool == "true" ? "false" : "true")} + containerStyle={{ + flex: 1, + backgroundColor: "#00000000", + borderColor: "white", + alignContent: "center", + }} + textStyle={{ fontSize: 20, fontWeight: "normal" }} + title={str} + /> + +); diff --git a/components/Settings/SettingTopPage.js b/components/Settings/SettingTopPage.js index 490caf0..44bdaef 100644 --- a/components/Settings/SettingTopPage.js +++ b/components/Settings/SettingTopPage.js @@ -114,7 +114,10 @@ export const SettingTopPage = ({ - {}}> + navigate("FavoriteSettings")} + > )} + + {(props) => ( + + )} + ); } From 63c2faba060c5104da94711b9e00c520e206fd3e Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Thu, 28 Mar 2024 14:00:46 +0000 Subject: [PATCH 2/3] =?UTF-8?q?=E3=83=AA=E3=82=B9=E3=83=88=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E6=A9=9F=E8=83=BD=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/Settings/FavoriteSettings.js | 124 +++++++----------------- 1 file changed, 33 insertions(+), 91 deletions(-) diff --git a/components/Settings/FavoriteSettings.js b/components/Settings/FavoriteSettings.js index d24a238..4b6bff6 100644 --- a/components/Settings/FavoriteSettings.js +++ b/components/Settings/FavoriteSettings.js @@ -1,26 +1,13 @@ -import React from "react"; +import React, { useEffect, useState } from "react"; import { View, Text, TouchableOpacity, ScrollView } from "react-native"; import { SwitchArea } from "../atom/SwitchArea"; +import { useFavoriteStation } from "../../stateBox/useFavoriteStation"; import { CheckBox } from "react-native-elements"; -import { TripleSwitchArea } from "../atom/TripleSwitchArea"; +import { ListItem } from "native-base"; +import Icon from "react-native-vector-icons/Entypo"; -export const FavoriteSettings = ({ - navigate, - iconSetting, - setIconSetting, - mapSwitch, - setMapSwitch, - stationMenu, - setStationMenu, - usePDFView, - setUsePDFView, - trainMenu, - setTrainMenu, - trainPosition, - setTrainPosition, - headerSize, - setHeaderSize, -}) => { +export const FavoriteSettings = ({ navigate }) => { + const { favoriteStation } = useFavoriteStation(); return ( @@ -63,79 +50,34 @@ export const FavoriteSettings = ({ - {/* - - - - - - - - - - */} 作成中 + {favoriteStation.map((currentStation) => { + return ( + + + {currentStation + .map((d) => d.StationNumber) + .filter((d) => d !== null) + .join("/")} + + + {currentStation[0].Station_JP} + + + + 移動する + + + + ); + })} ); From 244e83eed5ad83dbf1f21178cf70aaaac68937fd Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Mon, 1 Apr 2024 12:30:07 +0000 Subject: [PATCH 3/3] =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E6=A9=9F=E8=83=BD?= =?UTF-8?q?=E3=82=92=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FavoliteSettings/FavoiliteSettingsItem.js | 125 ++++++++++++++++++ components/Settings/FavoriteSettings.js | 44 ++---- 2 files changed, 137 insertions(+), 32 deletions(-) create mode 100644 components/Settings/FavoliteSettings/FavoiliteSettingsItem.js diff --git a/components/Settings/FavoliteSettings/FavoiliteSettingsItem.js b/components/Settings/FavoliteSettings/FavoiliteSettingsItem.js new file mode 100644 index 0000000..99f5754 --- /dev/null +++ b/components/Settings/FavoliteSettings/FavoiliteSettingsItem.js @@ -0,0 +1,125 @@ +import React, { useEffect, useState } from "react"; +import Icon from "react-native-vector-icons/Entypo"; +import { View, Text, TouchableOpacity, LayoutAnimation } from "react-native"; +import lineColorList from "../../../assets/originData/lineColorList"; +import { AS } from "../../../storageControl"; + +export const FavoriteSettingsItem = ({ + currentStation, + setFavoriteStation, + index, + array, +}) => { + const lineIDs = []; + const EachIDs = []; + console.log(currentStation); + currentStation.forEach((d) => { + if (!d.StationNumber) return; + const textArray = d.StationNumber.split(""); + lineIDs.push(textArray.filter((s) => "A" < s && s < "Z").join("")); + EachIDs.push(textArray.filter((s) => "0" <= s && s <= "9").join("")); + }); + const [head, setHead] = useState(false); + const [tail, setTail] = useState(false); + useEffect(() => { + if (index == 0) { + setHead(true); + } else if (index == array.length - 1) { + setTail(true); + } else { + setHead(false); + setTail(false); + } + }, [array]); + + return ( + + + {lineIDs.map((lineID, index) => ( + + + + {lineIDs[index]} + {"\n"} + {EachIDs[index]} + + + + ))} + + + + {currentStation[0].Station_JP} + + { + console.log("up"); + LayoutAnimation.configureNext( + LayoutAnimation.Presets.easeInEaseOut + ); + const removedStation = [...array].filter((d, i) => { + if (i == index) return false; + return true; + }); + removedStation.splice(index - 1, 0, currentStation); + setFavoriteStation(removedStation); + + AS.setItem("favoriteStation", JSON.stringify(removedStation)); + }} + > + {head ? null : } + + { + console.log("down"); + LayoutAnimation.configureNext( + LayoutAnimation.Presets.easeInEaseOut + ); + const removedStation = [...array].filter((d, i) => { + if (i == index) return false; + return true; + }); + removedStation.splice(index + 1, 0, currentStation); + setFavoriteStation(removedStation); + AS.setItem("favoriteStation", JSON.stringify(removedStation)); + }} + > + {tail ? null : } + + + + ); +}; diff --git a/components/Settings/FavoriteSettings.js b/components/Settings/FavoriteSettings.js index 4b6bff6..a9334c3 100644 --- a/components/Settings/FavoriteSettings.js +++ b/components/Settings/FavoriteSettings.js @@ -1,13 +1,11 @@ -import React, { useEffect, useState } from "react"; +import React from "react"; import { View, Text, TouchableOpacity, ScrollView } from "react-native"; -import { SwitchArea } from "../atom/SwitchArea"; import { useFavoriteStation } from "../../stateBox/useFavoriteStation"; import { CheckBox } from "react-native-elements"; -import { ListItem } from "native-base"; -import Icon from "react-native-vector-icons/Entypo"; +import { FavoriteSettingsItem } from "./FavoliteSettings/FavoiliteSettingsItem"; export const FavoriteSettings = ({ navigate }) => { - const { favoriteStation } = useFavoriteStation(); + const { favoriteStation, setFavoriteStation } = useFavoriteStation(); return ( @@ -51,33 +49,15 @@ export const FavoriteSettings = ({ navigate }) => { 作成中 - {favoriteStation.map((currentStation) => { - return ( - - - {currentStation - .map((d) => d.StationNumber) - .filter((d) => d !== null) - .join("/")} - - - {currentStation[0].Station_JP} - - - - 移動する - - - - ); - })} + {favoriteStation.map((currentStation, index, array) => ( + + ))} );