diff --git a/src/components/MainDrawer.tsx b/src/components/MainDrawer.tsx index 309cddf2..be87f069 100644 --- a/src/components/MainDrawer.tsx +++ b/src/components/MainDrawer.tsx @@ -189,6 +189,8 @@ const MainDrawer = ({ ); const traverseMenuTitle = (menu: typeof activeMenu) => { + if (!menu) return; + const hasSubmenu = menu?.submenu && menu?.submenu.length > 0; if (!title) { @@ -197,7 +199,7 @@ const MainDrawer = ({ title += ' - ' + menu?.title; } - if (!hasSubmenu) return; + if (!hasSubmenu || !menu.submenu) return; const activeSubmenu = menu.submenu?.find((item) => isPathActive(pathname, item.link) diff --git a/src/components/pages/master-data/area/AreasTable.tsx b/src/components/pages/master-data/area/AreasTable.tsx index 4d0bec73..c1ec1ef5 100644 --- a/src/components/pages/master-data/area/AreasTable.tsx +++ b/src/components/pages/master-data/area/AreasTable.tsx @@ -192,7 +192,7 @@ const AreasTable = () => { } else { updateFilter('nameSort', isNameSorted.desc ? 'desc' : 'asc'); } - }, [sorting]); + }, [sorting, updateFilter]); return ( <> diff --git a/src/components/pages/master-data/kandang/KandangsTable.tsx b/src/components/pages/master-data/kandang/KandangsTable.tsx index c3571452..c51eeb21 100644 --- a/src/components/pages/master-data/kandang/KandangsTable.tsx +++ b/src/components/pages/master-data/kandang/KandangsTable.tsx @@ -231,7 +231,7 @@ const KandangsTable = () => { updateSortingFilter('nameSort', nameSortFilter); updateSortingFilter('locationSort', locationSortFilter); updateSortingFilter('picSort', picSortFilter); - }, [sorting]); + }, [sorting, updateSortingFilter]); return ( <> diff --git a/src/components/pages/master-data/location/LocationsTable.tsx b/src/components/pages/master-data/location/LocationsTable.tsx index ebbb798f..2548fb28 100644 --- a/src/components/pages/master-data/location/LocationsTable.tsx +++ b/src/components/pages/master-data/location/LocationsTable.tsx @@ -230,7 +230,7 @@ const LocationsTable = () => { updateSortingFilter('nameSort', nameSortFilter); updateSortingFilter('addressSort', addressSortFilter); updateSortingFilter('areaSort', areaSortFilter); - }, [sorting]); + }, [sorting, updateSortingFilter]); return ( <> diff --git a/src/components/pages/master-data/product-category/ProductCategoryTable.tsx b/src/components/pages/master-data/product-category/ProductCategoryTable.tsx index f8413ab6..63b1c919 100644 --- a/src/components/pages/master-data/product-category/ProductCategoryTable.tsx +++ b/src/components/pages/master-data/product-category/ProductCategoryTable.tsx @@ -66,7 +66,12 @@ const RowOptionsMenu = ({ color='error' className='text-error hover:text-inherit' > - + Delete @@ -96,7 +101,9 @@ const ProductCategoryTable = () => { const deleteModal = useModal(); - const [selectedProductCategory, setSelectedProductCategory] = useState(undefined); + const [selectedProductCategory, setSelectedProductCategory] = useState< + ProductCategory | undefined + >(undefined); const [isDeleteLoading, setIsDeleteLoading] = useState(false); const [sorting, setSorting] = useState([]); @@ -186,7 +193,7 @@ const ProductCategoryTable = () => { } else { updateFilter('nameSort', isNameSorted.desc ? 'desc' : 'asc'); } - }, [sorting]); + }, [sorting, updateFilter]); return ( <> @@ -221,18 +228,30 @@ const ProductCategoryTable = () => { - data={isResponseSuccess(productCategories) ? productCategories?.data : []} + data={ + isResponseSuccess(productCategories) ? productCategories?.data : [] + } columns={productCategoryColumns} pageSize={tableFilterState.pageSize} - page={isResponseSuccess(productCategories) ? productCategories?.meta?.page : 0} - totalItems={isResponseSuccess(productCategories) ? productCategories?.meta?.total_results : 0} + page={ + isResponseSuccess(productCategories) + ? productCategories?.meta?.page + : 0 + } + totalItems={ + isResponseSuccess(productCategories) + ? productCategories?.meta?.total_results + : 0 + } onPageChange={setPage} isLoading={isLoading} sorting={sorting} setSorting={setSorting} className={{ containerClassName: cn({ - 'mb-20': isResponseSuccess(productCategories) && productCategories?.data?.length === 0, + 'mb-20': + isResponseSuccess(productCategories) && + productCategories?.data?.length === 0, }), tableWrapperClassName: 'overflow-x-auto min-h-full!', tableClassName: 'font-inter w-full table-auto min-h-full!', @@ -263,4 +282,4 @@ const ProductCategoryTable = () => { ); }; -export default ProductCategoryTable; \ No newline at end of file +export default ProductCategoryTable; diff --git a/src/components/pages/master-data/product/ProductTable.tsx b/src/components/pages/master-data/product/ProductTable.tsx index ab256548..b38a749a 100644 --- a/src/components/pages/master-data/product/ProductTable.tsx +++ b/src/components/pages/master-data/product/ProductTable.tsx @@ -116,7 +116,9 @@ const ProductsTable = () => { ); const deleteModal = useModal(); - const [selectedProduct, setSelectedProduct] = useState(undefined); + const [selectedProduct, setSelectedProduct] = useState( + undefined + ); const [isDeleteLoading, setIsDeleteLoading] = useState(false); const [sorting, setSorting] = useState([]); @@ -153,12 +155,14 @@ const ProductsTable = () => { { accessorKey: 'product_price', header: 'Harga Produk', - cell: (props) => props.row.original.product_price?.toLocaleString() ?? '-', + cell: (props) => + props.row.original.product_price?.toLocaleString() ?? '-', }, { accessorKey: 'selling_price', header: 'Harga Jual', - cell: (props) => props.row.original.selling_price?.toLocaleString() ?? '-', + cell: (props) => + props.row.original.selling_price?.toLocaleString() ?? '-', }, { accessorKey: 'tax', @@ -261,13 +265,15 @@ const ProductsTable = () => { const nameSortFilter = sorting.find((sortItem) => sortItem.id === 'name'); const skuSortFilter = sorting.find((sortItem) => sortItem.id === 'sku'); const brandSortFilter = sorting.find((sortItem) => sortItem.id === 'brand'); - const categorySortFilter = sorting.find((sortItem) => sortItem.id === 'product_category'); + const categorySortFilter = sorting.find( + (sortItem) => sortItem.id === 'product_category' + ); updateSortingFilter('nameSort', nameSortFilter); updateSortingFilter('skuSort', skuSortFilter); updateSortingFilter('brandSort', brandSortFilter); updateSortingFilter('categorySort', categorySortFilter); - }, [sorting]); + }, [sorting, updateSortingFilter]); return ( <> @@ -347,4 +353,4 @@ const ProductsTable = () => { ); }; -export default ProductsTable; \ No newline at end of file +export default ProductsTable; diff --git a/src/components/pages/master-data/uom/UomsTable.tsx b/src/components/pages/master-data/uom/UomsTable.tsx index 080dfaf8..dcec5fe5 100644 --- a/src/components/pages/master-data/uom/UomsTable.tsx +++ b/src/components/pages/master-data/uom/UomsTable.tsx @@ -192,7 +192,7 @@ const UomsTable = () => { } else { updateFilter('nameSort', isNameSorted.desc ? 'desc' : 'asc'); } - }, [sorting]); + }, [sorting, updateFilter]); return ( <> diff --git a/src/components/pages/master-data/warehouse/WarehousesTable.tsx b/src/components/pages/master-data/warehouse/WarehousesTable.tsx index b3eed86b..f6d2d071 100644 --- a/src/components/pages/master-data/warehouse/WarehousesTable.tsx +++ b/src/components/pages/master-data/warehouse/WarehousesTable.tsx @@ -270,7 +270,7 @@ const WarehousesTable = () => { updateSortingFilter('areaSort', areaSortFilter); updateSortingFilter('locationSort', locationSortFilter); updateSortingFilter('kandangSort', kandangSortFilter); - }, [sorting]); + }, [sorting, updateSortingFilter]); return ( <>