import Sign from "@/components/駅名表/Sign"; import React, { useEffect, useRef, useState } from "react"; import { AS } from "@/storageControl"; import { useWindowDimensions, View, LayoutAnimation } from "react-native"; import Carousel, { ICarouselInstance } from "react-native-reanimated-carousel"; import { SheetManager } from "react-native-actions-sheet"; import { StationNumber } from "../StationPagination"; import { SimpleDot } from "../SimpleDot"; export const CarouselBox = ({ originalStationList, listUpStation, nearPositionStation, setListIndex, listIndex, navigate, }) => { const carouselRef = useRef(null); const { height, width } = useWindowDimensions(); const [dotButton, setDotButton] = useState(false); const oPSign = () => { const payload = { currentStation: listUpStation[listIndex], navigate, goTo: "menu", //@ts-ignore useShow: () => SheetManager.show("StationDetailView", { payload }), onExit: () => SheetManager.hide("StationDetailView"), }; //@ts-ignore SheetManager.show("StationDetailView", { payload }); }; const oLPSign = () => { LayoutAnimation.configureNext({ duration: 600, update: { type: "spring", springDamping: 0.5 }, }); AS.setItem( "CarouselSettings/activeDotSettings", !dotButton ? "true" : "false" ); setDotButton(!dotButton); }; useEffect(() => { AS.getItem("CarouselSettings/activeDotSettings").then((data) => { setDotButton(data === "true"); }); }, []); useEffect(() => { if (!carouselRef.current) return; carouselRef?.current.scrollTo({ count: listIndex - carouselRef.current.getCurrentIndex(), animated: true, }); }, [listIndex]); const RenderItem = ({ item, index }) => { return ( ); }; return ( {originalStationList && listUpStation.map((d, index) => { const active = index == listIndex; const numberKey = d[0].StationNumber + index; return dotButton ? ( setListIndex(index)} currentStation={d} active={active} key={numberKey} /> ) : ( setListIndex(index)} active={active} key={numberKey} /> ); })} ); };