import { useEffect, useState } from "react"; import { Icons } from "@/components/Icon"; import { OverlayAnchor } from "@/components/overlays/OverlayAnchor"; import { Overlay } from "@/components/overlays/OverlayDisplay"; import { OverlayPage } from "@/components/overlays/OverlayPage"; import { OverlayRouter } from "@/components/overlays/OverlayRouter"; import { DownloadView } from "@/components/player/atoms/settings/DownloadView"; import { SettingsMenu } from "@/components/player/atoms/settings/SettingsMenu"; import { EmbedSelectionView, SourceSelectionView, } from "@/components/player/atoms/settings/SourceSelectingView"; import { VideoPlayerButton } from "@/components/player/internals/Button"; import { Menu } from "@/components/player/internals/ContextMenu"; import { useOverlayRouter } from "@/hooks/useOverlayRouter"; import { usePlayerStore } from "@/stores/player/store"; import { CaptionSettingsView } from "./settings/CaptionSettingsView"; import { CaptionsView } from "./settings/CaptionsView"; import { PlaybackSettingsView } from "./settings/PlaybackSettingsView"; import { QualityView } from "./settings/QualityView"; function SettingsOverlay({ id }: { id: string }) { const [chosenSourceId, setChosenSourceId] = useState(null); const router = useOverlayRouter(id); // reset source id when going to home or closing overlay useEffect(() => { if (!router.isRouterActive) { setChosenSourceId(null); } if (router.route === "/") { setChosenSourceId(null); } }, [router.isRouterActive, router.route]); return ( ); } export function SettingsRouter() { return ; } export function Settings() { const router = useOverlayRouter("settings"); const setHasOpenOverlay = usePlayerStore((s) => s.setHasOpenOverlay); useEffect(() => { setHasOpenOverlay(router.isRouterActive); }, [setHasOpenOverlay, router.isRouterActive]); return ( router.open()} icon={Icons.GEAR} /> ); }