diff --git a/assets/icons/partskuicon.svg b/assets/icons/partskuicon.svg new file mode 100644 index 0000000..0f83ffd --- /dev/null +++ b/assets/icons/partskuicon.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/icons/productskuicon.svg b/assets/icons/productskuicon.svg index 6a0ff42..42a3d8a 100644 --- a/assets/icons/productskuicon.svg +++ b/assets/icons/productskuicon.svg @@ -2,11 +2,11 @@ - - - - - + + + + + diff --git a/src/components/Dashboard/Management/ManagementSidebar.jsx b/src/components/Dashboard/Management/ManagementSidebar.jsx index e315e40..e0e0b1e 100644 --- a/src/components/Dashboard/Management/ManagementSidebar.jsx +++ b/src/components/Dashboard/Management/ManagementSidebar.jsx @@ -2,6 +2,7 @@ import { useLocation } from 'react-router-dom' import DashboardSidebar from '../common/DashboardSidebar' import FilamentIcon from '../../Icons/FilamentIcon' import PartIcon from '../../Icons/PartIcon' +import PartSkuIcon from '../../Icons/PartSkuIcon' import ProductIcon from '../../Icons/ProductIcon' import ProductSkuIcon from '../../Icons/ProductSkuIcon' import VendorIcon from '../../Icons/VendorIcon' @@ -37,6 +38,12 @@ const items = [ label: 'Parts', path: '/dashboard/management/parts' }, + { + key: 'partSkus', + icon: , + label: 'Part SKUs', + path: '/dashboard/management/partskus' + }, { key: 'products', icon: , @@ -180,6 +187,7 @@ if (import.meta.env.MODE === 'development') { const routeKeyMap = { '/dashboard/management/filaments': 'filaments', '/dashboard/management/parts': 'parts', + '/dashboard/management/partskus': 'partSkus', '/dashboard/management/users': 'users', '/dashboard/management/apppasswords': 'appPasswords', '/dashboard/management/products': 'products', diff --git a/src/components/Dashboard/Management/PartSkus.jsx b/src/components/Dashboard/Management/PartSkus.jsx new file mode 100644 index 0000000..4656ddf --- /dev/null +++ b/src/components/Dashboard/Management/PartSkus.jsx @@ -0,0 +1,104 @@ +import { useState, useRef } from 'react' + +import { Button, Flex, Space, Modal, Dropdown } from 'antd' + +import NewPartSku from './PartSkus/NewPartSku' +import PlusIcon from '../../Icons/PlusIcon' +import ReloadIcon from '../../Icons/ReloadIcon' +import useColumnVisibility from '../hooks/useColumnVisibility' +import ObjectTable from '../common/ObjectTable' +import ListIcon from '../../Icons/ListIcon' +import GridIcon from '../../Icons/GridIcon' +import useViewMode from '../hooks/useViewMode' +import ColumnViewButton from '../common/ColumnViewButton' +import ExportListButton from '../common/ExportListButton' + +const PartSkus = () => { + const tableRef = useRef() + + const [newPartSkuOpen, setNewPartSkuOpen] = useState(false) + + const [viewMode, setViewMode] = useViewMode('partSkus') + + const [columnVisibility, setColumnVisibility] = + useColumnVisibility('partSku') + + const actionItems = { + items: [ + { + label: 'New Part SKU', + key: 'newPartSku', + icon: + }, + { type: 'divider' }, + { + label: 'Reload List', + key: 'reloadList', + icon: + } + ], + onClick: ({ key }) => { + if (key === 'reloadList') { + tableRef.current?.reload() + } else if (key === 'newPartSku') { + setNewPartSkuOpen(true) + } + } + } + + return ( + <> + + + + + + + + + + +