diff --git a/src/AppBody.tsx b/src/AppBody.tsx index a22a46c..d64400f 100644 --- a/src/AppBody.tsx +++ b/src/AppBody.tsx @@ -7,7 +7,13 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { Context } from '.'; import SideBar from './shared/components/SideBar'; -const queryClient = new QueryClient() +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + refetchOnWindowFocus: false + } + } +}) const AppBody = () => { useEffect(() => { diff --git a/src/pages/AccessSettings.tsx b/src/pages/AccessSettings.tsx new file mode 100644 index 0000000..24c9f51 --- /dev/null +++ b/src/pages/AccessSettings.tsx @@ -0,0 +1,63 @@ +import { useQuery } from '@tanstack/react-query'; +import React, { useContext, useEffect, useState } from 'react'; +import { frigateApi, frigateQueryKeys } from '../services/frigate.proxy/frigate.api'; +import CenterLoader from '../shared/components/CenterLoader'; +import RetryErrorPage from './RetryErrorPage'; +import { Flex, Group, Select, Text } from '@mantine/core'; +import OneSelectFilter, { OneSelectItem } from '../shared/components/filters.aps/OneSelectFilter'; +import { useMediaQuery } from '@mantine/hooks'; +import { dimensions } from '../shared/dimensions/dimensions'; +import CamerasTransferList from '../shared/components/CamerasTransferList'; +import { Context } from '..'; + +const AccessSettings = () => { + const { data, isPending, isError, refetch } = useQuery({ + queryKey: [frigateQueryKeys.getRoles], + queryFn: frigateApi.getRoles + }) + const { sideBarsStore } = useContext(Context) + + + useEffect(() => { + sideBarsStore.rightVisible = false + sideBarsStore.setLeftChildren(null) + sideBarsStore.setRightChildren(null) + }, []) + + const isMobile = useMediaQuery(dimensions.mobileSize) + const [roleId, setRoleId] = useState() + + + if (isPending) return + if (isError || !data) return + const rolesSelect: OneSelectItem[] = data.map(role => ({ value: role.id, label: role.name })) + + const handleSelectRole = (value: string) => { + setRoleId(value) + } + + console.log('AccessSettings rendered') + return ( + + Please select role + + {!isMobile ? : <>} + ) diff --git a/src/widgets/header/header.links.ts b/src/widgets/header/header.links.ts index abcad0c..8294765 100644 --- a/src/widgets/header/header.links.ts +++ b/src/widgets/header/header.links.ts @@ -10,6 +10,6 @@ export const testHeaderLinks: HeaderActionProps = {link: routesPath.SETTINGS_PATH, label: headerMenu.settings, links: []}, {link: routesPath.RECORDINGS_PATH, label: headerMenu.recordings, links: []}, {link: routesPath.HOSTS_PATH, label: headerMenu.hostsConfig, links: []}, - {link: routesPath.ROLES_PATH, label: headerMenu.acessSettings, links: []}, + {link: routesPath.ACCESS_PATH, label: headerMenu.acessSettings, links: []}, ] } \ No newline at end of file