From edc874c302a8693b5d7a3abdb98cd95f44134e49 Mon Sep 17 00:00:00 2001 From: Blake Matthes Date: Tue, 24 Jun 2025 15:36:14 -0500 Subject: [PATCH] fix(settings page): error with the store not starting as fast as the page --- .../admin/settings/SettingsPage.tsx | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/admin/settings/SettingsPage.tsx b/frontend/src/components/admin/settings/SettingsPage.tsx index 35e4ee5..8c7c913 100644 --- a/frontend/src/components/admin/settings/SettingsPage.tsx +++ b/frontend/src/components/admin/settings/SettingsPage.tsx @@ -14,6 +14,7 @@ import { useRouter } from "@tanstack/react-router"; import { ChangeSetting } from "./SettingForm"; import { getSettings } from "@/utils/querys/settings"; import { Skeleton } from "@/components/ui/skeleton"; +import { useEffect } from "react"; export type Settings = { settings_id?: string; @@ -27,14 +28,25 @@ export default function SettingsPage() { const { modules } = useModuleStore(); const router = useRouter(); - const adminModule = modules.filter((n) => n.name === "admin"); - const userLevel = - user?.roles.filter((r) => r.module_id === adminModule[0].module_id) || - []; + useEffect(() => { + if (!user || modules.length === 0) return; - if (!adminModule[0].roles.includes(userLevel[0]?.role)) { - router.navigate({ to: "/" }); - } + const adminModule = modules.find((n) => n.name === "admin"); + if (!adminModule) { + console.log("no module loaded"); + //router.navigate({ to: "/" }); + return; + } + + const userLevel = + user?.roles?.filter((r) => r.module_id === adminModule.module_id) || + []; + + if (!adminModule.roles?.includes(userLevel[0]?.role)) { + console.log("Something failed"); + //router.navigate({ to: "/" }); + } + }, [modules, user, router]); const { data, isError, error, isLoading } = useQuery( getSettings(token ?? "")