From 3673a7a1ec9615cd38c9c4342be3c9881d18cb12 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sun, 7 Dec 2025 02:39:45 +0000 Subject: [PATCH] Add Order Items and Shipments components with associated icons and forms - Introduced OrderItems and Shipments components for managing order items and shipments. - Added NewOrderItem and NewShipment forms for creating new entries. - Implemented ObjectTable for displaying lists in different view modes. - Created SVG icons for OrderItem and Shipment. - Removed deprecated OrderItemsIcon component. --- .../{orderitemsicon.svg => orderitemicon.svg} | 0 assets/icons/shipmenticon.svg | 8 + .../Dashboard/Inventory/OrderItems.jsx | 101 ++++++++ .../Inventory/OrderItems/NewOrderItem.jsx | 99 ++++++++ .../Inventory/OrderItems/OrderItemInfo.jsx | 202 +++++++++++++++ .../Dashboard/Inventory/Shipments.jsx | 101 ++++++++ .../Inventory/Shipments/NewShipment.jsx | 94 +++++++ .../Inventory/Shipments/ShipmentInfo.jsx | 229 ++++++++++++++++++ src/components/Icons/OrderItemIcon.jsx | 6 + src/components/Icons/OrderItemsIcon.jsx | 6 - src/components/Icons/ShipmentIcon.jsx | 6 + 11 files changed, 846 insertions(+), 6 deletions(-) rename assets/icons/{orderitemsicon.svg => orderitemicon.svg} (100%) create mode 100644 assets/icons/shipmenticon.svg create mode 100644 src/components/Dashboard/Inventory/OrderItems.jsx create mode 100644 src/components/Dashboard/Inventory/OrderItems/NewOrderItem.jsx create mode 100644 src/components/Dashboard/Inventory/OrderItems/OrderItemInfo.jsx create mode 100644 src/components/Dashboard/Inventory/Shipments.jsx create mode 100644 src/components/Dashboard/Inventory/Shipments/NewShipment.jsx create mode 100644 src/components/Dashboard/Inventory/Shipments/ShipmentInfo.jsx create mode 100644 src/components/Icons/OrderItemIcon.jsx delete mode 100644 src/components/Icons/OrderItemsIcon.jsx create mode 100644 src/components/Icons/ShipmentIcon.jsx diff --git a/assets/icons/orderitemsicon.svg b/assets/icons/orderitemicon.svg similarity index 100% rename from assets/icons/orderitemsicon.svg rename to assets/icons/orderitemicon.svg diff --git a/assets/icons/shipmenticon.svg b/assets/icons/shipmenticon.svg new file mode 100644 index 0000000..251bd77 --- /dev/null +++ b/assets/icons/shipmenticon.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/components/Dashboard/Inventory/OrderItems.jsx b/src/components/Dashboard/Inventory/OrderItems.jsx new file mode 100644 index 0000000..9046c18 --- /dev/null +++ b/src/components/Dashboard/Inventory/OrderItems.jsx @@ -0,0 +1,101 @@ +import { useState, useRef } from 'react' +import { Button, Flex, Space, Modal, Dropdown, message } from 'antd' +import NewOrderItem from './OrderItems/NewOrderItem' +import ObjectTable from '../common/ObjectTable' +import PlusIcon from '../../Icons/PlusIcon' +import ReloadIcon from '../../Icons/ReloadIcon' +import useColumnVisibility from '../hooks/useColumnVisibility' +import GridIcon from '../../Icons/GridIcon' +import ListIcon from '../../Icons/ListIcon' +import useViewMode from '../hooks/useViewMode' +import ColumnViewButton from '../common/ColumnViewButton' + +const OrderItems = () => { + const [messageApi, contextHolder] = message.useMessage() + const [newOrderItemOpen, setNewOrderItemOpen] = useState(false) + const tableRef = useRef() + + const [viewMode, setViewMode] = useViewMode('orderItems') + + const [columnVisibility, setColumnVisibility] = + useColumnVisibility('orderItems') + + const actionItems = { + items: [ + { + label: 'New Order Item', + key: 'newOrderItem', + icon: + }, + { type: 'divider' }, + { + label: 'Reload List', + key: 'reloadList', + icon: + } + ], + onClick: ({ key }) => { + if (key === 'reloadList') { + tableRef.current?.reload() + } else if (key === 'newOrderItem') { + setNewOrderItemOpen(true) + } + } + } + + return ( + <> + + {contextHolder} + + + + + + + + + + + + + +