import { handleAtom } from "@/src/atoms/handle"; import Chips from "@/src/components/Chips"; import ScrollToTopButton from "@/src/components/ScrollToTopButton"; import StickyPlayer from "@/src/components/StickyPlayer"; import useScrollToTop from "@/src/hooks/useScrollToTop"; import { RootStackParamList } from "@/src/Navigation"; import { useNowPlayingContext } from "@/src/providers/NowPlayingProvider"; import { RouteProp } from "@react-navigation/native"; import { useSetAtom } from "jotai"; import { FC, useEffect, useState } from "react"; import { Text, View } from "react-native"; import Albums from "./Albums"; import Artists from "./Artists"; import Scrobbles from "./Scrobbles"; import Tracks from "./Tracks"; type LibraryRouteProp = RouteProp< RootStackParamList, "Library" | "UserLibrary" >; export type LibraryProps = Partial<{ route: LibraryRouteProp; bottom?: number; }>; const Library: FC = (props) => { const { bottom, route } = props; const setHandle = useSetAtom(handleAtom); const { scrollToTop, isVisible, fadeAnim, handleScroll, listRef } = useScrollToTop(); const nowPlaying = useNowPlayingContext(); const chips = [ { label: "Scrobbles", key: 0 }, { label: "Artists", key: 1 }, { label: "Albums", key: 2 }, { label: "Tracks", key: 3 }, ]; const [activeChip, setActiveChip] = useState(0); useEffect(() => { setHandle(route?.params?.handle); }, [route?.params?.handle]); useEffect(() => { if (route?.params?.tab) { setActiveChip(route.params.tab); } }, [route?.params?.tab]); const bottomButtonPosition = nowPlaying ? 80 : 20; return ( Library setActiveChip(key as number)} active={activeChip} /> {activeChip === 0 && ( )} {activeChip === 1 && ( )} {activeChip === 2 && ( )} {activeChip === 3 && ( )} {isVisible && ( )} ); }; export default Library;