diff --git a/frontend/src/ts/collections/presets.ts b/frontend/src/ts/collections/presets.ts index 379d24368fcc..334085f427ef 100644 --- a/frontend/src/ts/collections/presets.ts +++ b/frontend/src/ts/collections/presets.ts @@ -36,6 +36,7 @@ const presetsCollection = createCollection( getKey: (it) => it._id, queryFn: async () => { if (!isAuthenticated()) return []; + const response = await Ape.presets.get(); if (response.status !== 200) { diff --git a/frontend/src/ts/components/common/Page.tsx b/frontend/src/ts/components/common/Page.tsx new file mode 100644 index 000000000000..4148f1c7b82b --- /dev/null +++ b/frontend/src/ts/components/common/Page.tsx @@ -0,0 +1,16 @@ +import { ParentProps, Show } from "solid-js"; + +import { PageName } from "../../pages/page"; +import { getActivePage, isAuthenticated } from "../../states/core"; + +export function Page( + props: { + id: PageName; + needsAuthentication?: boolean; + } & ParentProps, +) { + const isOpen = () => getActivePage() === props.id; + const isAllowed = () => !props.needsAuthentication || isAuthenticated(); + + return {props.children}; +} diff --git a/frontend/src/ts/components/mount.tsx b/frontend/src/ts/components/mount.tsx index b0ce72d8e261..93c429d3a05e 100644 --- a/frontend/src/ts/components/mount.tsx +++ b/frontend/src/ts/components/mount.tsx @@ -18,14 +18,14 @@ import { LeaderboardPage } from "./pages/leaderboard/LeaderboardPage"; import { LoginPage } from "./pages/login/LoginPage"; import { ProfilePage } from "./pages/profile/ProfilePage"; import { ProfileSearchPage } from "./pages/profile/ProfileSearchPage"; -import { Settings } from "./pages/settings/Settings"; +import { SettingsPage } from "./pages/settings/SettingsPage"; import { TestConfig } from "./pages/test/TestConfig"; import { Popups } from "./popups/Popups"; const components: Record JSXElement> = { footer: () =>