diff --git a/components/Settings/FavoliteSettings/FavoiliteSettingsItem.js b/components/Settings/FavoliteSettings/FavoiliteSettingsItem.js index a5f926c..51ba766 100644 --- a/components/Settings/FavoliteSettings/FavoiliteSettingsItem.js +++ b/components/Settings/FavoliteSettings/FavoiliteSettingsItem.js @@ -2,14 +2,10 @@ 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 Ionicons from "react-native-vector-icons/Ionicons"; import { AS } from "../../../storageControl"; -export const FavoriteSettingsItem = ({ - currentStation, - setFavoriteStation, - index, - array, -}) => { +export const FavoriteSettingsItem = ({ currentStation }) => { const lineIDs = []; const EachIDs = []; console.log(currentStation); @@ -19,27 +15,6 @@ export const FavoriteSettingsItem = ({ 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(() => { - switch (true) { - case array.length == 1: - setHead(true); - setTail(true); - break; - case index == 0: - setHead(true); - setTail(false); - break; - case index == array.length - 1: - setHead(false); - setTail(true); - break; - default: - setHead(false); - setTail(false); - } - }, [array]); return ( @@ -47,7 +22,7 @@ export const FavoriteSettingsItem = ({ style={{ width: 35, position: "relative", - marginHorizontal: 15, + marginHorizontal: 10, flexDirection: "row", height: "101%", }} @@ -91,43 +66,15 @@ export const FavoriteSettingsItem = ({ > {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 f0049ac..5c60747 100644 --- a/components/Settings/FavoriteSettings.js +++ b/components/Settings/FavoriteSettings.js @@ -1,30 +1,57 @@ -import React from "react"; -import { View, Text, TouchableOpacity, ScrollView } from "react-native"; +import React, { useCallback } from "react"; +import { View, Text, StyleSheet } from "react-native"; +import Animated, { useAnimatedRef } from "react-native-reanimated"; import { useNavigation } from "@react-navigation/native"; +import Sortable from "react-native-sortables"; import { useFavoriteStation } from "../../stateBox/useFavoriteStation"; import { FavoriteSettingsItem } from "./FavoliteSettings/FavoiliteSettingsItem"; import { SheetHeaderItem } from "@/components/atom/SheetHeaderItem"; export const FavoriteSettings = () => { const { favoriteStation, setFavoriteStation } = useFavoriteStation(); + const scrollableRef = useAnimatedRef(); const { goBack } = useNavigation(); + const renderItem = useCallback((props) => { + const { item, index } = props; + return ( + + ); + }, []); return ( - - {favoriteStation.map((currentStation, index, array) => ( - - ))} - + + { + const newFavoriteStation = newOrder.indexToKey.map((item,index,array)=>{ + let returnData = []; + favoriteStation.forEach((station) => { + if (station[0].StationNumber === item) returnData = station; + }); + return returnData; + }); + setFavoriteStation(newFavoriteStation); + }} + keyExtractor={(item) => item[0].StationNumber} + /> + { ); }; + +const styles = StyleSheet.create({ + card: { + alignItems: "center", + backgroundColor: "#36877F", + borderRadius: 10, + height: 100, + justifyContent: "center", + }, + contentContainer: { + padding: 10, + }, + text: { + color: "white", + fontWeight: "bold", + }, +});