diff --git a/src/App.tsx b/src/App.tsx index 2890beba..79162f2d 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -58,7 +58,7 @@ const ProjectSettingsPage = lazy(() => import("@src/pages/Settings/ProjectSettin // prettier-ignore const MembersPage = lazy(() => import("@src/pages/Settings/MembersPage" /* webpackChunkName: "MembersPage" */)); // prettier-ignore -const DebugSettingsPage = lazy(() => import("@src/pages/Settings/DebugSettingsPage" /* webpackChunkName: "DebugSettingsPage" */)); +const DebugPage = lazy(() => import("@src/pages/Settings/DebugPage" /* webpackChunkName: "DebugPage" */)); export default function App() { const [currentUser] = useAtom(currentUserAtom, projectScope); @@ -153,14 +153,8 @@ export default function App() { } /> } /> - - - - } - /> + + } /> )} diff --git a/src/constants/routes.tsx b/src/constants/routes.tsx index 8e4ef19b..4b59b687 100644 --- a/src/constants/routes.tsx +++ b/src/constants/routes.tsx @@ -36,14 +36,10 @@ export enum ROUTES { userSettings = "/settings/user", projectSettings = "/settings/project", members = "/members", - debugSettings = "/settings/debug", + debug = "/debug", tutorial = "/tutorial", tableTutorial = "/tutorial/table", - - test = "/test", - themeTest = "/test/theme", - rowyRunTest = "/test/rowyRunTest", } export const ROUTE_TITLES = { @@ -66,7 +62,7 @@ export const ROUTE_TITLES = { [ROUTES.userSettings]: "Settings", [ROUTES.projectSettings]: "Project Settings", [ROUTES.members]: "Members", - [ROUTES.debugSettings]: "Debug", + [ROUTES.debug]: "Debug", [ROUTES.tutorial]: "Tutorial", [ROUTES.tableTutorial]: { @@ -79,10 +75,6 @@ export const ROUTE_TITLES = { titleTransitionProps: { style: { transformOrigin: "0 50%" } }, leftAligned: true, }, - - [ROUTES.test]: "Test", - [ROUTES.themeTest]: "Theme Test", - [ROUTES.rowyRunTest]: "Rowy Run Test", } as Record< ROUTES, | string diff --git a/src/pages/Settings/DebugPage.tsx b/src/pages/Settings/DebugPage.tsx new file mode 100644 index 00000000..d3ec7ad1 --- /dev/null +++ b/src/pages/Settings/DebugPage.tsx @@ -0,0 +1,190 @@ +import { useAtom } from "jotai"; +import { useSnackbar } from "notistack"; +import { + updateDoc, + doc, + terminate, + clearIndexedDbPersistence, +} from "firebase/firestore"; + +import { Container, Stack, Button } from "@mui/material"; +import InlineOpenInNewIcon from "@src/components/InlineOpenInNewIcon"; + +import SettingsSection from "@src/components/Settings/SettingsSection"; + +import { + projectScope, + projectIdAtom, + projectSettingsAtom, + userRolesAtom, + allUsersAtom, + updateUserAtom, +} from "@src/atoms/projectScope"; +import UserManagementSourceFirebase from "@src/sources/MembersSourceFirebase"; +import { firebaseDbAtom } from "@src/sources/ProjectSourceFirebase"; +import { CONFIG, TABLE_SCHEMAS, USERS } from "@src/config/dbPaths"; +import { getTableSchemaPath } from "@src/utils/table"; +import { useScrollToHash } from "@src/hooks/useScrollToHash"; + +export default function DebugPage() { + const [firebaseDb] = useAtom(firebaseDbAtom, projectScope); + const [projectId] = useAtom(projectIdAtom, projectScope); + const [projectSettings] = useAtom(projectSettingsAtom, projectScope); + const [userRoles] = useAtom(userRolesAtom, projectScope); + const [users] = useAtom(allUsersAtom, projectScope); + const [updateUser] = useAtom(updateUserAtom, projectScope); + const { enqueueSnackbar, closeSnackbar } = useSnackbar(); + useScrollToHash(); + + return ( + + {userRoles.includes("ADMIN") && } + + + + + + + + + + + {userRoles.includes("ADMIN") && ( + + + + + )} + + + + + + + ); +} diff --git a/src/pages/Settings/DebugSettingsPage.tsx b/src/pages/Settings/DebugSettingsPage.tsx deleted file mode 100644 index c5ad9025..00000000 --- a/src/pages/Settings/DebugSettingsPage.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import { useAtom } from "jotai"; -import { useSnackbar } from "notistack"; -import { - updateDoc, - doc, - terminate, - clearIndexedDbPersistence, -} from "firebase/firestore"; - -import { Container, Stack, Button } from "@mui/material"; - -import SettingsSection from "@src/components/Settings/SettingsSection"; - -import { - projectScope, - projectSettingsAtom, - allUsersAtom, - updateUserAtom, -} from "@src/atoms/projectScope"; -import UserManagementSourceFirebase from "@src/sources/MembersSourceFirebase"; -import { firebaseDbAtom } from "@src/sources/ProjectSourceFirebase"; -import { USERS } from "@src/config/dbPaths"; -import { getTableSchemaPath } from "@src/utils/table"; -import { useScrollToHash } from "@src/hooks/useScrollToHash"; - -export default function DebugSettingsPage() { - const [firebaseDb] = useAtom(firebaseDbAtom, projectScope); - const [projectSettings] = useAtom(projectSettingsAtom, projectScope); - const [users] = useAtom(allUsersAtom, projectScope); - const [updateUser] = useAtom(updateUserAtom, projectScope); - const { enqueueSnackbar, closeSnackbar } = useSnackbar(); - useScrollToHash(); - - return ( - - - - - - - - - - - - - - - ); -}