diff --git a/src/App.tsx b/src/App.tsx index 08ed4b0..7fcc1c7 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,30 +1,25 @@ -import { useEffect, useState } from "react"; +import { useRef, useState } from "react"; import Sidebar from "./components/layout/Sidebar"; import TopBar from "./components/layout/TopBar"; import PlaySection from "./components/PlaySection"; import ModsSection from "./components/ModsSection"; import SettingsSection from "./components/SettingsSection"; -import { getVersions } from "./lib/saturn"; +import { versions } from "./lib/saturn"; import { GameVersion } from "./lib/types"; type Section = "play" | "mods" | "settings"; export default function App() { const [active, setActive] = useState
("play"); - const [versions, setVersions] = useState([]); const [selectedVersion, setSelectedVersion] = useState( null, ); - const [versionOpen, setVersionOpen] = useState(false); - const [accountOpen, setAccountOpen] = useState(false); + const [isVersionDropdownOpen, setIsVersionDropdownOpen] = useState(false); + const [isAccountDropdownOpen, setIsAccountDropdownOpen] = useState(false); - useEffect(() => { - getVersions().then((v) => { - setVersions(v); - if (v.length) setSelectedVersion(v[0]); - }); - }, []); + const versionRef = useRef(null); + const accountRef = useRef(null); return (
@@ -35,10 +30,12 @@ export default function App() { versions={versions} selectedVersion={selectedVersion} setSelectedVersion={setSelectedVersion} - versionOpen={versionOpen} - setVersionOpen={setVersionOpen} - accountOpen={accountOpen} - setAccountOpen={setAccountOpen} + isVersionDropdownOpen={isVersionDropdownOpen} + setIsVersionDropdownOpen={setIsVersionDropdownOpen} + isAccountDropdownOpen={isAccountDropdownOpen} + setIsAccountDropdownOpen={setIsAccountDropdownOpen} + versionRef={versionRef} + accountRef={accountRef} />
diff --git a/src/components/layout/AccountDropdown.tsx b/src/components/layout/AccountDropdown.tsx index e02d679..0333006 100644 --- a/src/components/layout/AccountDropdown.tsx +++ b/src/components/layout/AccountDropdown.tsx @@ -1,36 +1,58 @@ import { User, LogOut } from "lucide-react"; +import { cn } from "@/lib/utils"; +import { Props } from "./props"; -import { twMerge } from "tailwind-merge"; - -interface Props { - open: boolean; - setOpen: (v: boolean) => void; -} - -export default function AccountDropdown({ open, setOpen }: Props) { +export default function AccountDropdown({ + isAccountDropdownOpen, + setIsAccountDropdownOpen, + accountRef, +}: Props) { return ( -
+
+
+
- -
diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx index 6496327..202125f 100644 --- a/src/components/layout/Sidebar.tsx +++ b/src/components/layout/Sidebar.tsx @@ -1,27 +1,25 @@ import { Play, Puzzle, Settings } from "lucide-react"; -import { twMerge } from "tailwind-merge"; +import Logo from "@/assets/logo.png"; +import { cn } from "@/lib/utils"; -type Section = "play" | "mods" | "settings"; - -interface Props { - active: Section; - setActive: (s: Section) => void; -} - -export default function Sidebar({ active, setActive }: Props) { +export default function Sidebar({ active, setActive }: any) { return (