import { Flex, Grid, Group } from '@mantine/core'; import HeadSearch from '../shared/components/HeadSearch'; import ViewSelector, { SelectorViewState } from '../shared/components/ViewSelector'; import { useContext, useState, useEffect } from 'react'; import { getCookie, setCookie } from 'cookies-next'; import { Context } from '..'; import { observer } from 'mobx-react-lite' import CenterLoader from '../shared/components/CenterLoader'; import { useQuery } from '@tanstack/react-query'; import { frigateApi, frigateQueryKeys } from '../services/frigate.proxy/frigate.api'; import RetryErrorPage from './RetryErrorPage'; import CameraCard from '../shared/components/CameraCard'; import { useMediaQuery } from '@mantine/hooks'; import { dimensions } from '../shared/dimensions/dimensions'; const MainPage = () => { const { sideBarsStore } = useContext(Context) const isMobile = useMediaQuery(dimensions.mobileSize) useEffect(() => { sideBarsStore.rightVisible = false sideBarsStore.setLeftChildren(null) sideBarsStore.setRightChildren(null) }, []) const [viewState, setTableState] = useState(getCookie('aps-main-view') as SelectorViewState || SelectorViewState.GRID) const handleToggleState = (state: SelectorViewState) => { setCookie('aps-main-view', state, { maxAge: 60 * 60 * 24 * 30 }); setTableState(state) } const { data: cameras, isPending, isError, refetch } = useQuery({ queryKey: [frigateQueryKeys.getCamerasWHost], queryFn: frigateApi.getCamerasWHost }) if (isPending) return if (isError) return const cards = () => { return cameras.filter(cam => cam.frigateHost?.host.includes('5000')).slice(0, 25).map(camera => ( // return cameras.map(camera => ( ) ) } return ( {/* */} {cards()} ); } export default observer(MainPage);