import { Container, Flex, Group, Text } from '@mantine/core'; import ProductTable, { TableAdapter } from '../widgets/ProductTable'; import HeadSearch from '../shared/components/HeadSearch'; import ViewSelector, { SelectorViewState } from '../shared/components/ViewSelector'; import { useContext, useState, useEffect } from 'react'; import ProductGrid, { GridAdapter } from '../shared/components/grid.aps/ProductGrid'; import { getCookie, setCookie } from 'cookies-next'; import { Context } from '..'; import { observer } from 'mobx-react-lite' import CenterLoader from '../shared/components/CenterLoader'; const MainBody = observer(() => { const { productStore, cartStore, sideBarsStore } = useContext(Context) const { updateProductFromServer, products, isLoading: productsLoading } = productStore const { updateCartFromServer, products: cartProducts, isLoading: cardLoading } = cartStore 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) } useEffect(() => { updateProductFromServer() updateCartFromServer() sideBarsStore.setLeftSidebar(
) }, []) if (productsLoading || cardLoading) return if (productsLoading || cardLoading) return
Error
// add state manager let tableData: TableAdapter[] = [] let gridData: GridAdapter[] = [] if (products && cartProducts) { tableData = productStore.mapToTable(products, cartProducts) gridData = productStore.mapToGrid(products, cartProducts) } return ( ); }) export default MainBody;