- Removed unnecessary useState hooks for view state management in multiple dashboard components (Invoices, PaymentPolicies, Payments, TaxRecords, FilamentStocks, OrderItems, PartStocks, ProductStocks, PurchaseOrders, Shipments, StockAudits, StockEvents, StockLocations, StockTransfers, AppPasswords, AuditLogs, Couriers, CourierServices, DocumentJobs, DocumentPrinters, DocumentSizes, DocumentTemplates, Filaments, FilamentSkus). - Updated ObjectListViewProvider integration to streamline component functionality and improve maintainability. - Adjusted CSS variables in App.css for enhanced styling consistency across components.
101 lines
3.2 KiB
JavaScript
101 lines
3.2 KiB
JavaScript
// src/gcodefiles.js
|
|
|
|
import { useRef } from 'react'
|
|
|
|
import { Flex, Space } from 'antd'
|
|
import ObjectTable from '../common/ObjectTable'
|
|
import ObjectActions from '../common/ObjectActions'
|
|
|
|
|
|
import useColumnVisibility from '../hooks/useColumnVisibility'
|
|
|
|
import useViewMode from '../hooks/useViewMode'
|
|
import ObjectTableViewButton from '../common/ObjectTableViewButton'
|
|
import FilterSidebarButton from '../common/FilterSidebarButton'
|
|
import SortSidebarButton from '../common/SortSidebarButton'
|
|
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
|
|
|
import ColumnViewButton from '../common/ColumnViewButton'
|
|
import ExportListButton from '../common/ExportListButton'
|
|
import ListViewTabs from '../common/ListViewTabs'
|
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
|
|
|
const Parts = (filter) => {
|
|
const tableRef = useRef()
|
|
|
|
const [viewMode, setViewMode] = useViewMode('part')
|
|
const [columnVisibility, setColumnVisibility] = useColumnVisibility('part')
|
|
|
|
const [showFilterSidebar, setShowFilterSidebar] =
|
|
useFilterSidebarVisibility('Parts')
|
|
|
|
const [showSortSidebar, setShowSortSidebar] =
|
|
useSortSidebarVisibility('Parts')
|
|
|
|
|
|
return (
|
|
<ObjectListViewProvider
|
|
objectType='part'
|
|
tableRef={tableRef}
|
|
>
|
|
<Flex vertical={'true'} gap='large' className='h-100'>
|
|
<Flex justify='space-between' style={{ minHeight: 0 }} gap='small'>
|
|
<Space size='small'>
|
|
<ObjectActions
|
|
type='part'
|
|
pageName='list'
|
|
onReload={() => tableRef.current?.reload()}
|
|
/>
|
|
<ColumnViewButton
|
|
type='part'
|
|
loading={false}
|
|
visibleState={columnVisibility}
|
|
updateVisibleState={setColumnVisibility}
|
|
/>
|
|
<ExportListButton objectType='part' />
|
|
</Space>
|
|
<ListViewTabs />
|
|
<Space>
|
|
<SortSidebarButton
|
|
active={showSortSidebar}
|
|
onClick={() => setShowSortSidebar(!showSortSidebar)}
|
|
/>
|
|
<FilterSidebarButton
|
|
active={showFilterSidebar}
|
|
onClick={() => setShowFilterSidebar(!showFilterSidebar)}
|
|
/>
|
|
<ObjectTableViewButton
|
|
viewMode={viewMode}
|
|
setViewMode={setViewMode}
|
|
/>
|
|
<ListViewEditButtons showStartingDivider={true} />
|
|
</Space>
|
|
</Flex>
|
|
|
|
<ObjectTable
|
|
ref={tableRef}
|
|
visibleColumns={columnVisibility}
|
|
type='part'
|
|
cards={viewMode === 'cards'}
|
|
filter={filter}
|
|
showFilterSidebar={showFilterSidebar}
|
|
showSortSidebar={showSortSidebar}
|
|
expandHeight={true}
|
|
saveFilterInSession={true}
|
|
saveFilterInUrl={true}
|
|
useFilterInSession={true}
|
|
useFilterInUrl={true}
|
|
saveSortInSession={true}
|
|
saveSortInUrl={true}
|
|
useSortInSession={true}
|
|
useSortInUrl={true}
|
|
/>
|
|
</Flex>
|
|
</ObjectListViewProvider>
|
|
)
|
|
}
|
|
|
|
export default Parts
|