From be57b3fde76f5a4d38c54d27524c40c24749bf97 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Fri, 21 Aug 2026 21:17:04 +0100 Subject: [PATCH] Refactor Dashboard Components to Utilize Object Tools Context - Updated multiple dashboard components to integrate the useDashboardObjectTools hook for managing object navigation buttons. - Replaced direct rendering of ObjectTableNavigationButtons with a memoized version to enhance performance and maintainability. - Ensured consistent handling of loading and editing states across various components, improving user experience. --- .../Finance/Invoices/InvoiceInfo.jsx | 22 ++++++++++----- .../Finance/Payments/PaymentInfo.jsx | 27 +++++++++++-------- .../Finance/TaxRecords/TaxRecordInfo.jsx | 22 ++++++++++----- .../FilamentStocks/FilamentStockInfo.jsx | 22 ++++++++++----- .../Inventory/OrderItems/OrderItemInfo.jsx | 22 ++++++++++----- .../Inventory/PartStocks/PartStockInfo.jsx | 22 ++++++++++----- .../ProductStocks/ProductStockInfo.jsx | 22 ++++++++++----- .../PurchaseOrders/PurchaseOrderInfo.jsx | 22 ++++++++++----- .../Inventory/Shipments/PurchaseOrderInfo.jsx | 22 ++++++++++----- .../Inventory/Shipments/ShipmentInfo.jsx | 22 ++++++++++----- .../Inventory/StockAudits/StockAuditInfo.jsx | 22 ++++++++++----- .../StockLocations/StockLocationInfo.jsx | 22 ++++++++++----- .../StockTransfers/StockTransferInfo.jsx | 22 ++++++++++----- .../AppPasswords/AppPasswordInfo.jsx | 22 ++++++++++----- .../CourierServices/CourierServiceInfo.jsx | 22 ++++++++++----- .../Management/Couriers/CourierInfo.jsx | 22 ++++++++++----- .../DocumentJobs/DocumentJobInfo.jsx | 22 ++++++++++----- .../DocumentPrinters/DocumentPrinterInfo.jsx | 22 ++++++++++----- .../DocumentSizes/DocumentSizeInfo.jsx | 22 ++++++++++----- .../DocumentTemplateDesign.jsx | 17 +++++++++++- .../DocumentTemplateInfo.jsx | 22 ++++++++++----- .../FilamentSkus/FilamentSkuInfo.jsx | 22 ++++++++++----- .../Management/Filaments/FilamentInfo.jsx | 22 ++++++++++----- .../Dashboard/Management/Files/FileInfo.jsx | 22 ++++++++++----- .../Dashboard/Management/Hosts/HostInfo.jsx | 22 ++++++++++----- .../Management/Materials/MaterialInfo.jsx | 22 ++++++++++----- .../Management/NoteTypes/NoteTypeInfo.jsx | 22 ++++++++++----- .../Dashboard/Management/Notes/NoteInfo.jsx | 22 ++++++++++----- .../Management/PartSkus/PartSkuInfo.jsx | 22 ++++++++++----- .../Dashboard/Management/Parts/PartInfo.jsx | 22 ++++++++++----- .../PermissionSettingInfo.jsx | 22 ++++++++++----- .../ProductCategories/ProductCategoryInfo.jsx | 22 ++++++++++----- .../Management/ProductSkus/ProductSkuInfo.jsx | 22 ++++++++++----- .../Management/Products/ProductInfo.jsx | 22 ++++++++++----- .../Management/TaxRates/TaxRateInfo.jsx | 22 ++++++++++----- .../Management/UserGroups/UserGroupInfo.jsx | 22 ++++++++++----- .../Dashboard/Management/Users/UserInfo.jsx | 22 ++++++++++----- .../Management/Vendors/VendorInfo.jsx | 22 ++++++++++----- .../FilamentProfiles/FilamentProfileInfo.jsx | 22 ++++++++++----- .../Production/GCodeFiles/GCodeFileInfo.jsx | 22 ++++++++++----- .../GCodeFiles/GCodeFilePreview.jsx | 17 +++++++++++- .../Dashboard/Production/Jobs/JobInfo.jsx | 22 ++++++++++----- .../PrinterProfiles/PrinterProfileInfo.jsx | 22 ++++++++++----- .../Production/Printers/ControlPrinter.jsx | 25 ++++++++++------- .../Production/Printers/PrinterInfo.jsx | 22 ++++++++++----- .../Production/SubJobs/SubJobInfo.jsx | 22 ++++++++++----- .../Dashboard/Sales/Clients/ClientInfo.jsx | 22 ++++++++++----- .../ListingVarients/ListingVarientInfo.jsx | 22 ++++++++++----- .../Dashboard/Sales/Listings/ListingInfo.jsx | 22 ++++++++++----- .../Sales/Marketplaces/MarketplaceInfo.jsx | 22 ++++++++++----- .../Sales/SalesOrders/SalesOrderInfo.jsx | 22 ++++++++++----- 51 files changed, 769 insertions(+), 351 deletions(-) diff --git a/src/components/Dashboard/Finance/Invoices/InvoiceInfo.jsx b/src/components/Dashboard/Finance/Invoices/InvoiceInfo.jsx index e7011b8f..5f1e0a4a 100644 --- a/src/components/Dashboard/Finance/Invoices/InvoiceInfo.jsx +++ b/src/components/Dashboard/Finance/Invoices/InvoiceInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -20,6 +20,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -65,6 +66,19 @@ const InvoiceInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, invoiceId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -153,12 +167,6 @@ const InvoiceInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Finance/Payments/PaymentInfo.jsx b/src/components/Dashboard/Finance/Payments/PaymentInfo.jsx index 6b3e5398..bbc4d0a4 100644 --- a/src/components/Dashboard/Finance/Payments/PaymentInfo.jsx +++ b/src/components/Dashboard/Finance/Payments/PaymentInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -58,6 +59,19 @@ const PaymentInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, paymentId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -143,12 +157,6 @@ const PaymentInfo = () => { } loading={objectFormState.editLoading} /> - @@ -217,10 +225,7 @@ const PaymentInfo = () => { diff --git a/src/components/Dashboard/Finance/TaxRecords/TaxRecordInfo.jsx b/src/components/Dashboard/Finance/TaxRecords/TaxRecordInfo.jsx index 924826c8..c086c2d4 100644 --- a/src/components/Dashboard/Finance/TaxRecords/TaxRecordInfo.jsx +++ b/src/components/Dashboard/Finance/TaxRecords/TaxRecordInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import loglevel from 'loglevel' @@ -17,6 +17,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -50,6 +51,19 @@ const TaxRecordInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, taxRecordId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -133,12 +147,6 @@ const TaxRecordInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Inventory/FilamentStocks/FilamentStockInfo.jsx b/src/components/Dashboard/Inventory/FilamentStocks/FilamentStockInfo.jsx index dc8301b5..ec2ff160 100644 --- a/src/components/Dashboard/Inventory/FilamentStocks/FilamentStockInfo.jsx +++ b/src/components/Dashboard/Inventory/FilamentStocks/FilamentStockInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import useCollapseState from '../../hooks/useCollapseState' @@ -6,6 +6,7 @@ import ObjectForm from '../../common/ObjectForm' import ObjectInfo from '../../common/ObjectInfo' import ObjectTable from '../../common/ObjectTable' import ObjectActions from '../../common/ObjectActions' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ViewButton from '../../common/ViewButton' import EditButtons from '../../common/EditButtons' import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx' @@ -52,6 +53,19 @@ const FilamentStockInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, filamentStockId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -133,12 +147,6 @@ const FilamentStockInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Inventory/OrderItems/OrderItemInfo.jsx b/src/components/Dashboard/Inventory/OrderItems/OrderItemInfo.jsx index 852d86ea..1ba17839 100644 --- a/src/components/Dashboard/Inventory/OrderItems/OrderItemInfo.jsx +++ b/src/components/Dashboard/Inventory/OrderItems/OrderItemInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import UserNotifierToggle from '../../common/UserNotifierToggle.jsx' @@ -51,6 +52,19 @@ const OrderItemInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, orderItemId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -132,12 +146,6 @@ const OrderItemInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Inventory/PartStocks/PartStockInfo.jsx b/src/components/Dashboard/Inventory/PartStocks/PartStockInfo.jsx index 2156e3b2..914aa0bb 100644 --- a/src/components/Dashboard/Inventory/PartStocks/PartStockInfo.jsx +++ b/src/components/Dashboard/Inventory/PartStocks/PartStockInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -19,6 +19,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -57,6 +58,19 @@ const PartStockInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, partStockId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -141,12 +155,6 @@ const PartStockInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Inventory/ProductStocks/ProductStockInfo.jsx b/src/components/Dashboard/Inventory/ProductStocks/ProductStockInfo.jsx index 131ccd98..d64e0ca1 100644 --- a/src/components/Dashboard/Inventory/ProductStocks/ProductStockInfo.jsx +++ b/src/components/Dashboard/Inventory/ProductStocks/ProductStockInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -23,6 +23,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -71,6 +72,19 @@ const ProductStockInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, productStockId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -159,12 +173,6 @@ const ProductStockInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Inventory/PurchaseOrders/PurchaseOrderInfo.jsx b/src/components/Dashboard/Inventory/PurchaseOrders/PurchaseOrderInfo.jsx index bfaf5b60..91201b80 100644 --- a/src/components/Dashboard/Inventory/PurchaseOrders/PurchaseOrderInfo.jsx +++ b/src/components/Dashboard/Inventory/PurchaseOrders/PurchaseOrderInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -73,6 +74,19 @@ const PurchaseOrderInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, purchaseOrderId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { orderItemsTableRef?.current?.startEditing?.() @@ -165,12 +179,6 @@ const PurchaseOrderInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Inventory/Shipments/PurchaseOrderInfo.jsx b/src/components/Dashboard/Inventory/Shipments/PurchaseOrderInfo.jsx index 801c469e..054b02be 100644 --- a/src/components/Dashboard/Inventory/Shipments/PurchaseOrderInfo.jsx +++ b/src/components/Dashboard/Inventory/Shipments/PurchaseOrderInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Modal, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -66,6 +67,19 @@ const PurchaseOrderInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, purchaseOrderId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { orderItemsTableRef?.current?.startEditing?.() @@ -168,12 +182,6 @@ const PurchaseOrderInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Inventory/Shipments/ShipmentInfo.jsx b/src/components/Dashboard/Inventory/Shipments/ShipmentInfo.jsx index 439cbf36..f4d8a644 100644 --- a/src/components/Dashboard/Inventory/Shipments/ShipmentInfo.jsx +++ b/src/components/Dashboard/Inventory/Shipments/ShipmentInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -61,6 +62,19 @@ const ShipmentInfo = () => { editDisabled: false, objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, shipmentId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -146,12 +160,6 @@ const ShipmentInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Inventory/StockAudits/StockAuditInfo.jsx b/src/components/Dashboard/Inventory/StockAudits/StockAuditInfo.jsx index ab7f0a78..0bed2d67 100644 --- a/src/components/Dashboard/Inventory/StockAudits/StockAuditInfo.jsx +++ b/src/components/Dashboard/Inventory/StockAudits/StockAuditInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -53,6 +54,19 @@ const StockAuditInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, stockAuditId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -135,12 +149,6 @@ const StockAuditInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Inventory/StockLocations/StockLocationInfo.jsx b/src/components/Dashboard/Inventory/StockLocations/StockLocationInfo.jsx index 08a319ed..c7f6aa6f 100644 --- a/src/components/Dashboard/Inventory/StockLocations/StockLocationInfo.jsx +++ b/src/components/Dashboard/Inventory/StockLocations/StockLocationInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -54,6 +55,19 @@ const StockLocationInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, stockLocationId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -136,12 +150,6 @@ const StockLocationInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Inventory/StockTransfers/StockTransferInfo.jsx b/src/components/Dashboard/Inventory/StockTransfers/StockTransferInfo.jsx index 3a0ae2d5..0d7ed3ed 100644 --- a/src/components/Dashboard/Inventory/StockTransfers/StockTransferInfo.jsx +++ b/src/components/Dashboard/Inventory/StockTransfers/StockTransferInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -19,6 +19,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -61,6 +62,19 @@ const StockTransferInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, stockTransferId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -147,12 +161,6 @@ const StockTransferInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/AppPasswords/AppPasswordInfo.jsx b/src/components/Dashboard/Management/AppPasswords/AppPasswordInfo.jsx index 57941bab..78b30fad 100644 --- a/src/components/Dashboard/Management/AppPasswords/AppPasswordInfo.jsx +++ b/src/components/Dashboard/Management/AppPasswords/AppPasswordInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -14,6 +14,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -54,6 +55,19 @@ const AppPasswordInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, appPasswordId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -131,12 +145,6 @@ const AppPasswordInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/CourierServices/CourierServiceInfo.jsx b/src/components/Dashboard/Management/CourierServices/CourierServiceInfo.jsx index e4499b8c..e830cd80 100644 --- a/src/components/Dashboard/Management/CourierServices/CourierServiceInfo.jsx +++ b/src/components/Dashboard/Management/CourierServices/CourierServiceInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import loglevel from 'loglevel' @@ -17,6 +17,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -52,6 +53,19 @@ const CourierServiceInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, courierServiceId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -135,12 +149,6 @@ const CourierServiceInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/Couriers/CourierInfo.jsx b/src/components/Dashboard/Management/Couriers/CourierInfo.jsx index 29d89a25..7a737d22 100644 --- a/src/components/Dashboard/Management/Couriers/CourierInfo.jsx +++ b/src/components/Dashboard/Management/Couriers/CourierInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import loglevel from 'loglevel' @@ -17,6 +17,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -48,6 +49,19 @@ const CourierInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, courierId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -131,12 +145,6 @@ const CourierInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/DocumentJobs/DocumentJobInfo.jsx b/src/components/Dashboard/Management/DocumentJobs/DocumentJobInfo.jsx index 52ac06bf..86a41d56 100644 --- a/src/components/Dashboard/Management/DocumentJobs/DocumentJobInfo.jsx +++ b/src/components/Dashboard/Management/DocumentJobs/DocumentJobInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -53,6 +54,19 @@ const DocumentJobInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, documentJobId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -132,12 +146,6 @@ const DocumentJobInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/DocumentPrinters/DocumentPrinterInfo.jsx b/src/components/Dashboard/Management/DocumentPrinters/DocumentPrinterInfo.jsx index abffb8c0..01e7f7df 100644 --- a/src/components/Dashboard/Management/DocumentPrinters/DocumentPrinterInfo.jsx +++ b/src/components/Dashboard/Management/DocumentPrinters/DocumentPrinterInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -55,6 +56,19 @@ const DocumentPrinterInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, documentPrinterId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -140,12 +154,6 @@ const DocumentPrinterInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/DocumentSizes/DocumentSizeInfo.jsx b/src/components/Dashboard/Management/DocumentSizes/DocumentSizeInfo.jsx index 36410685..1c0bfbbc 100644 --- a/src/components/Dashboard/Management/DocumentSizes/DocumentSizeInfo.jsx +++ b/src/components/Dashboard/Management/DocumentSizes/DocumentSizeInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -53,6 +54,19 @@ const DocumentSizeInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, documentSizeId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -132,12 +146,6 @@ const DocumentSizeInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/DocumentTemplates/DocumentTemplateDesign.jsx b/src/components/Dashboard/Management/DocumentTemplates/DocumentTemplateDesign.jsx index ccfb2093..f713806b 100644 --- a/src/components/Dashboard/Management/DocumentTemplates/DocumentTemplateDesign.jsx +++ b/src/components/Dashboard/Management/DocumentTemplates/DocumentTemplateDesign.jsx @@ -1,4 +1,4 @@ -import { useState, useRef } from 'react' +import { useState, useRef, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Space, Flex, Card } from 'antd' import loglevel from 'loglevel' @@ -10,9 +10,11 @@ import ViewButton from '../../common/ViewButton.jsx' import NoteIcon from '../../../Icons/NoteIcon.jsx' import ObjectForm from '../../common/ObjectForm.jsx' import EditButtons from '../../common/EditButtons.jsx' +import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx' import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ScrollBox from '../../common/ScrollBox.jsx' import TemplateEditor from '../../common/TemplateEditor.jsx' @@ -46,6 +48,19 @@ const DocumentTemplateDesign = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, documentTemplateId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() diff --git a/src/components/Dashboard/Management/DocumentTemplates/DocumentTemplateInfo.jsx b/src/components/Dashboard/Management/DocumentTemplates/DocumentTemplateInfo.jsx index e45caa6c..3c4212fb 100644 --- a/src/components/Dashboard/Management/DocumentTemplates/DocumentTemplateInfo.jsx +++ b/src/components/Dashboard/Management/DocumentTemplates/DocumentTemplateInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -55,6 +56,19 @@ const DocumentTemplateInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, documentTemplateId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -137,12 +151,6 @@ const DocumentTemplateInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/FilamentSkus/FilamentSkuInfo.jsx b/src/components/Dashboard/Management/FilamentSkus/FilamentSkuInfo.jsx index 305f96e4..c3b1fd5c 100644 --- a/src/components/Dashboard/Management/FilamentSkus/FilamentSkuInfo.jsx +++ b/src/components/Dashboard/Management/FilamentSkus/FilamentSkuInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import useCollapseState from '../../hooks/useCollapseState' @@ -15,6 +15,7 @@ import NoteIcon from '../../../Icons/NoteIcon.jsx' import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -47,6 +48,19 @@ const FilamentSkuInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, filamentSkuId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -130,12 +144,6 @@ const FilamentSkuInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/Filaments/FilamentInfo.jsx b/src/components/Dashboard/Management/Filaments/FilamentInfo.jsx index 7ee2e650..5c1b17aa 100644 --- a/src/components/Dashboard/Management/Filaments/FilamentInfo.jsx +++ b/src/components/Dashboard/Management/Filaments/FilamentInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -66,6 +67,19 @@ const FilamentInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, filamentId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -153,12 +167,6 @@ const FilamentInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/Files/FileInfo.jsx b/src/components/Dashboard/Management/Files/FileInfo.jsx index c1703b95..412a372c 100644 --- a/src/components/Dashboard/Management/Files/FileInfo.jsx +++ b/src/components/Dashboard/Management/Files/FileInfo.jsx @@ -1,4 +1,4 @@ -import { useContext, useRef, useState } from 'react' +import { useContext, useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import loglevel from 'loglevel' @@ -17,6 +17,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -56,6 +57,19 @@ const FileInfo = () => { }) const { fetchFileContent } = useContext(ApiServerContext) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, fileId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -145,12 +159,6 @@ const FileInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/Hosts/HostInfo.jsx b/src/components/Dashboard/Management/Hosts/HostInfo.jsx index c217fc15..a0ab9dad 100644 --- a/src/components/Dashboard/Management/Hosts/HostInfo.jsx +++ b/src/components/Dashboard/Management/Hosts/HostInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -61,6 +62,19 @@ const HostInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, hostId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -148,12 +162,6 @@ const HostInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/Materials/MaterialInfo.jsx b/src/components/Dashboard/Management/Materials/MaterialInfo.jsx index f4e48288..3c23a2f4 100644 --- a/src/components/Dashboard/Management/Materials/MaterialInfo.jsx +++ b/src/components/Dashboard/Management/Materials/MaterialInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import loglevel from 'loglevel' @@ -17,6 +17,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -50,6 +51,19 @@ const MaterialInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, materialId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -133,12 +147,6 @@ const MaterialInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/NoteTypes/NoteTypeInfo.jsx b/src/components/Dashboard/Management/NoteTypes/NoteTypeInfo.jsx index 011eee0b..d00e0af6 100644 --- a/src/components/Dashboard/Management/NoteTypes/NoteTypeInfo.jsx +++ b/src/components/Dashboard/Management/NoteTypes/NoteTypeInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -14,6 +14,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -43,6 +44,19 @@ const NoteTypeInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, noteTypeId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -121,12 +135,6 @@ const NoteTypeInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/Notes/NoteInfo.jsx b/src/components/Dashboard/Management/Notes/NoteInfo.jsx index 9548b1ee..f23e145b 100644 --- a/src/components/Dashboard/Management/Notes/NoteInfo.jsx +++ b/src/components/Dashboard/Management/Notes/NoteInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -20,6 +20,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -51,6 +52,19 @@ const NoteInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, noteId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -135,12 +149,6 @@ const NoteInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/PartSkus/PartSkuInfo.jsx b/src/components/Dashboard/Management/PartSkus/PartSkuInfo.jsx index f949a991..3a58a40a 100644 --- a/src/components/Dashboard/Management/PartSkus/PartSkuInfo.jsx +++ b/src/components/Dashboard/Management/PartSkus/PartSkuInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import useCollapseState from '../../hooks/useCollapseState' @@ -15,6 +15,7 @@ import NoteIcon from '../../../Icons/NoteIcon.jsx' import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -42,6 +43,19 @@ const PartSkuInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, partSkuId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -125,12 +139,6 @@ const PartSkuInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/Parts/PartInfo.jsx b/src/components/Dashboard/Management/Parts/PartInfo.jsx index 04723b02..d485d854 100644 --- a/src/components/Dashboard/Management/Parts/PartInfo.jsx +++ b/src/components/Dashboard/Management/Parts/PartInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import useCollapseState from '../../hooks/useCollapseState' @@ -15,6 +15,7 @@ import NoteIcon from '../../../Icons/NoteIcon.jsx' import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -54,6 +55,19 @@ const PartInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, partId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -133,12 +147,6 @@ const PartInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/PermissionSettings/PermissionSettingInfo.jsx b/src/components/Dashboard/Management/PermissionSettings/PermissionSettingInfo.jsx index 2dd8be0f..21af764f 100644 --- a/src/components/Dashboard/Management/PermissionSettings/PermissionSettingInfo.jsx +++ b/src/components/Dashboard/Management/PermissionSettings/PermissionSettingInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space, Spin } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -16,6 +16,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -54,6 +55,19 @@ const PermissionSettingInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, permissionSettingId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -137,12 +151,6 @@ const PermissionSettingInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/ProductCategories/ProductCategoryInfo.jsx b/src/components/Dashboard/Management/ProductCategories/ProductCategoryInfo.jsx index 60f6e0b1..ede02d46 100644 --- a/src/components/Dashboard/Management/ProductCategories/ProductCategoryInfo.jsx +++ b/src/components/Dashboard/Management/ProductCategories/ProductCategoryInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import useCollapseState from '../../hooks/useCollapseState' @@ -15,6 +15,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -47,6 +48,19 @@ const ProductCategoryInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, productCategoryId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -130,12 +144,6 @@ const ProductCategoryInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/ProductSkus/ProductSkuInfo.jsx b/src/components/Dashboard/Management/ProductSkus/ProductSkuInfo.jsx index 00b5799b..592a7c17 100644 --- a/src/components/Dashboard/Management/ProductSkus/ProductSkuInfo.jsx +++ b/src/components/Dashboard/Management/ProductSkus/ProductSkuInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import useCollapseState from '../../hooks/useCollapseState' @@ -15,6 +15,7 @@ import NoteIcon from '../../../Icons/NoteIcon.jsx' import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -48,6 +49,19 @@ const ProductSkuInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, productSkuId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -132,12 +146,6 @@ const ProductSkuInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/Products/ProductInfo.jsx b/src/components/Dashboard/Management/Products/ProductInfo.jsx index 3ffc1773..d64736c6 100644 --- a/src/components/Dashboard/Management/Products/ProductInfo.jsx +++ b/src/components/Dashboard/Management/Products/ProductInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import useCollapseState from '../../hooks/useCollapseState' @@ -16,6 +16,7 @@ import AuditLogIcon from '../../../Icons/AuditLogIcon.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -54,6 +55,19 @@ const ProductInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, productId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -133,12 +147,6 @@ const ProductInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/TaxRates/TaxRateInfo.jsx b/src/components/Dashboard/Management/TaxRates/TaxRateInfo.jsx index 7952968e..e7de6139 100644 --- a/src/components/Dashboard/Management/TaxRates/TaxRateInfo.jsx +++ b/src/components/Dashboard/Management/TaxRates/TaxRateInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import loglevel from 'loglevel' @@ -17,6 +17,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -47,6 +48,19 @@ const TaxRateInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, taxRateId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -130,12 +144,6 @@ const TaxRateInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/UserGroups/UserGroupInfo.jsx b/src/components/Dashboard/Management/UserGroups/UserGroupInfo.jsx index 21f9d4ce..d521e906 100644 --- a/src/components/Dashboard/Management/UserGroups/UserGroupInfo.jsx +++ b/src/components/Dashboard/Management/UserGroups/UserGroupInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space, Spin } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -16,6 +16,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -54,6 +55,19 @@ const UserGroupInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, userGroupId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -137,12 +151,6 @@ const UserGroupInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/Users/UserInfo.jsx b/src/components/Dashboard/Management/Users/UserInfo.jsx index 31421fed..60eeb870 100644 --- a/src/components/Dashboard/Management/Users/UserInfo.jsx +++ b/src/components/Dashboard/Management/Users/UserInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space, Spin } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -17,6 +17,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -53,6 +54,19 @@ const UserInfo = () => { }) const isMobile = useMediaQuery({ maxWidth: 768 }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, userId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -132,12 +146,6 @@ const UserInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Management/Vendors/VendorInfo.jsx b/src/components/Dashboard/Management/Vendors/VendorInfo.jsx index 63ca861f..6f70de56 100644 --- a/src/components/Dashboard/Management/Vendors/VendorInfo.jsx +++ b/src/components/Dashboard/Management/Vendors/VendorInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import loglevel from 'loglevel' @@ -17,6 +17,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -47,6 +48,19 @@ const VendorInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, vendorId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -130,12 +144,6 @@ const VendorInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Production/FilamentProfiles/FilamentProfileInfo.jsx b/src/components/Dashboard/Production/FilamentProfiles/FilamentProfileInfo.jsx index 47f04da6..a36d3e72 100644 --- a/src/components/Dashboard/Production/FilamentProfiles/FilamentProfileInfo.jsx +++ b/src/components/Dashboard/Production/FilamentProfiles/FilamentProfileInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import MultiMotionIcon from '../../../Icons/MultiMotionIcon' import NoteIcon from '../../../Icons/NoteIcon' import NotesPanel from '../../common/NotesPanel' import ObjectActions from '../../common/ObjectActions' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectForm from '../../common/ObjectForm' import ObjectInfo from '../../common/ObjectInfo' import ObjectTable from '../../common/ObjectTable' @@ -85,6 +86,19 @@ const FilamentProfileInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, filamentProfileId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef.current?.startEditing?.() @@ -178,12 +192,6 @@ const FilamentProfileInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Production/GCodeFiles/GCodeFileInfo.jsx b/src/components/Dashboard/Production/GCodeFiles/GCodeFileInfo.jsx index 83df2575..2d1e3382 100644 --- a/src/components/Dashboard/Production/GCodeFiles/GCodeFileInfo.jsx +++ b/src/components/Dashboard/Production/GCodeFiles/GCodeFileInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -19,6 +19,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -55,6 +56,19 @@ const GCodeFileInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, gcodeFileId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -138,12 +152,6 @@ const GCodeFileInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Production/GCodeFiles/GCodeFilePreview.jsx b/src/components/Dashboard/Production/GCodeFiles/GCodeFilePreview.jsx index 7e5979be..99afd4bf 100644 --- a/src/components/Dashboard/Production/GCodeFiles/GCodeFilePreview.jsx +++ b/src/components/Dashboard/Production/GCodeFiles/GCodeFilePreview.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Space, Flex, Card } from 'antd' import loglevel from 'loglevel' @@ -12,6 +12,8 @@ import EyeIcon from '../../../Icons/EyeIcon.jsx' import ObjectForm from '../../common/ObjectForm.jsx' import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ScrollBox from '../../common/ScrollBox.jsx' import FilePreview from '../../common/FilePreview.jsx' import MissingPlaceholder from '../../common/MissingPlaceholder.jsx' @@ -40,6 +42,19 @@ const GCodeFilePreview = () => { lock: null }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, gcodeFileId] + ) + useDashboardObjectTools(currentObjectTools) + return ( { } }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, jobId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -144,12 +158,6 @@ const JobInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Production/PrinterProfiles/PrinterProfileInfo.jsx b/src/components/Dashboard/Production/PrinterProfiles/PrinterProfileInfo.jsx index 741651d6..2e64b24e 100644 --- a/src/components/Dashboard/Production/PrinterProfiles/PrinterProfileInfo.jsx +++ b/src/components/Dashboard/Production/PrinterProfiles/PrinterProfileInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ActivityIndicator from '../../common/ActivityIndicator' import NoteIcon from '../../../Icons/NoteIcon' import NotesPanel from '../../common/NotesPanel' import ObjectActions from '../../common/ObjectActions' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectForm from '../../common/ObjectForm' import ObjectInfo from '../../common/ObjectInfo' import ObjectTable from '../../common/ObjectTable' @@ -63,6 +64,19 @@ const PrinterProfileInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, printerProfileId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef.current?.startEditing?.() @@ -150,12 +164,6 @@ const PrinterProfileInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Production/Printers/ControlPrinter.jsx b/src/components/Dashboard/Production/Printers/ControlPrinter.jsx index 224d6ff8..c8bdc663 100644 --- a/src/components/Dashboard/Production/Printers/ControlPrinter.jsx +++ b/src/components/Dashboard/Production/Printers/ControlPrinter.jsx @@ -1,4 +1,4 @@ -import { useState, useRef, useEffect, useContext } from 'react' +import { useState, useRef, useEffect, useContext, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Space, Flex, Card, Splitter, Divider } from 'antd' import loglevel from 'loglevel' @@ -12,6 +12,7 @@ import ObjectForm from '../../common/ObjectForm.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import PropTypes from 'prop-types' import ObjectInfo from '../../common/ObjectInfo.jsx' @@ -105,6 +106,20 @@ const ControlPrinter = ({ slicerIntegration = false }) => { return () => setOnModalOk(null) }, [setOnModalOk]) + const currentObjectTools = useMemo( + () => + !slicerIntegration ? ( + + ) : null, + [objectFormState.loading, printerId, slicerIntegration] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -320,14 +335,6 @@ const ControlPrinter = ({ slicerIntegration = false }) => { } loading={objectFormState.loading} /> - {!slicerIntegration && ( - - )} diff --git a/src/components/Dashboard/Production/Printers/PrinterInfo.jsx b/src/components/Dashboard/Production/Printers/PrinterInfo.jsx index 515f5a55..9af2e305 100644 --- a/src/components/Dashboard/Production/Printers/PrinterInfo.jsx +++ b/src/components/Dashboard/Production/Printers/PrinterInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -17,6 +17,7 @@ import EditButtons from '../../common/EditButtons.jsx' import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -63,6 +64,19 @@ const PrinterInfo = () => { return () => setOnModalOk(null) }, [setOnModalOk]) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, printerId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -145,12 +159,6 @@ const PrinterInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Production/SubJobs/SubJobInfo.jsx b/src/components/Dashboard/Production/SubJobs/SubJobInfo.jsx index a8532c6e..b3526ff5 100644 --- a/src/components/Dashboard/Production/SubJobs/SubJobInfo.jsx +++ b/src/components/Dashboard/Production/SubJobs/SubJobInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -16,6 +16,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -43,6 +44,19 @@ const SubJobInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, subJobId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current.startEditing() @@ -118,12 +132,6 @@ const SubJobInfo = () => { disabled={true} loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Sales/Clients/ClientInfo.jsx b/src/components/Dashboard/Sales/Clients/ClientInfo.jsx index 98688ad4..b9d04dab 100644 --- a/src/components/Dashboard/Sales/Clients/ClientInfo.jsx +++ b/src/components/Dashboard/Sales/Clients/ClientInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react' +import { useRef, useState, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import loglevel from 'loglevel' @@ -17,6 +17,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' import DocumentPrintButton from '../../common/DocumentPrintButton.jsx' @@ -47,6 +48,19 @@ const ClientInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, clientId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -130,12 +144,6 @@ const ClientInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Sales/ListingVarients/ListingVarientInfo.jsx b/src/components/Dashboard/Sales/ListingVarients/ListingVarientInfo.jsx index 1d004ced..84fad8c2 100644 --- a/src/components/Dashboard/Sales/ListingVarients/ListingVarientInfo.jsx +++ b/src/components/Dashboard/Sales/ListingVarients/ListingVarientInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import loglevel from 'loglevel' @@ -17,6 +17,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -61,6 +62,19 @@ const ListingVarientInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, listingVarientId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -143,12 +157,6 @@ const ListingVarientInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Sales/Listings/ListingInfo.jsx b/src/components/Dashboard/Sales/Listings/ListingInfo.jsx index 018faf34..414470e9 100644 --- a/src/components/Dashboard/Sales/Listings/ListingInfo.jsx +++ b/src/components/Dashboard/Sales/Listings/ListingInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, Space } from 'antd' import loglevel from 'loglevel' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -59,6 +60,19 @@ const ListingInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, listingId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -142,12 +156,6 @@ const ListingInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Sales/Marketplaces/MarketplaceInfo.jsx b/src/components/Dashboard/Sales/Marketplaces/MarketplaceInfo.jsx index abdeb792..a71c7c32 100644 --- a/src/components/Dashboard/Sales/Marketplaces/MarketplaceInfo.jsx +++ b/src/components/Dashboard/Sales/Marketplaces/MarketplaceInfo.jsx @@ -1,4 +1,4 @@ -import { useContext, useRef, useState, useEffect } from 'react' +import { useContext, useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Card, Flex, message, Space } from 'antd' import loglevel from 'loglevel' @@ -17,6 +17,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -116,6 +117,19 @@ const MarketplaceInfo = () => { objectFormRef?.current?.handleFetchObject?.() } + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, marketplaceId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { objectFormRef?.current?.startEditing?.() @@ -210,12 +224,6 @@ const MarketplaceInfo = () => { } loading={objectFormState.editLoading} /> - diff --git a/src/components/Dashboard/Sales/SalesOrders/SalesOrderInfo.jsx b/src/components/Dashboard/Sales/SalesOrders/SalesOrderInfo.jsx index f4579d5c..6ebec2de 100644 --- a/src/components/Dashboard/Sales/SalesOrders/SalesOrderInfo.jsx +++ b/src/components/Dashboard/Sales/SalesOrders/SalesOrderInfo.jsx @@ -1,4 +1,4 @@ -import { useRef, useState, useEffect } from 'react' +import { useRef, useState, useEffect, useMemo } from 'react' import { useLocation } from 'react-router-dom' import { Space, Flex, Card } from 'antd' import { LoadingOutlined } from '@ant-design/icons' @@ -18,6 +18,7 @@ import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButt import ActivityIndicator from '../../common/ActivityIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import { useActions } from '../../context/ActionsContext' +import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext' import ObjectActions from '../../common/ObjectActions.jsx' import ObjectTable from '../../common/ObjectTable.jsx' import InfoCollapsePlaceholder from '../../common/InfoCollapsePlaceholder.jsx' @@ -71,6 +72,19 @@ const SalesOrderInfo = () => { objectData: {} }) + const currentObjectTools = useMemo( + () => ( + + ), + [objectFormState.loading, objectFormState.isEditing, salesOrderId] + ) + useDashboardObjectTools(currentObjectTools) + const actions = { edit: () => { orderItemsTableRef?.current?.startEditing?.() @@ -163,12 +177,6 @@ const SalesOrderInfo = () => { } loading={objectFormState.editLoading} /> -