All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good
- Integrated InfoActionButtons into multiple components across the Finance and Inventory sections, enhancing user interaction and providing contextual actions for invoices, payment policies, payments, tax records, and various inventory items. - Updated the respective components to include the new buttons with appropriate object types and list mode settings, improving the overall functionality and user experience in the dashboard.
103 lines
3.5 KiB
JavaScript
103 lines
3.5 KiB
JavaScript
// src/Printers.js
|
|
|
|
import { useRef } from 'react'
|
|
import { Space, Flex } from 'antd'
|
|
import ObjectTable from '../common/ObjectTable'
|
|
import ObjectActions from '../common/ObjectActions'
|
|
import BulkObjectActions from '../common/BulkObjectActions'
|
|
import ColumnViewButton from '../common/ColumnViewButton'
|
|
import ExportListButton from '../common/ExportListButton'
|
|
import InfoActionButtons from '../common/InfoActionButtons'
|
|
import ListViewTabs from '../common/ListViewTabs'
|
|
import ListViewEditButtons from '../common/ListViewEditButtons'
|
|
import { ObjectListViewProvider } from '../context/ObjectListViewContext'
|
|
|
|
import ObjectTableViewButton from '../common/ObjectTableViewButton'
|
|
import FilterSidebarButton from '../common/FilterSidebarButton'
|
|
import SortSidebarButton from '../common/SortSidebarButton'
|
|
import useColumnVisibility from '../hooks/useColumnVisibility'
|
|
import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility'
|
|
import useSortSidebarVisibility from '../hooks/useSortSidebarVisibility'
|
|
|
|
const Printers = () => {
|
|
const tableRef = useRef()
|
|
|
|
// View mode state (cards/list), persisted in sessionStorage via custom hook
|
|
|
|
// Column visibility state, persisted in sessionStorage via custom hook
|
|
const [columnVisibility, setColumnVisibility] = useColumnVisibility('printer')
|
|
|
|
// Filter sidebar visibility, persisted in sessionStorage via custom hook
|
|
const [showFilterSidebar, setShowFilterSidebar] =
|
|
useFilterSidebarVisibility('Printers')
|
|
|
|
const [showSortSidebar, setShowSortSidebar] =
|
|
useSortSidebarVisibility('Printers')
|
|
|
|
|
|
return (
|
|
<ObjectListViewProvider
|
|
objectType='printer'
|
|
tableRef={tableRef}
|
|
>
|
|
<Flex vertical={'true'} gap='large' className='h-100'>
|
|
<Flex justify='space-between' style={{ minHeight: 0 }} gap='small'>
|
|
<Space>
|
|
<BulkObjectActions
|
|
type='printer'
|
|
onReload={() => tableRef.current?.reload()}
|
|
/>
|
|
<ObjectActions
|
|
type='printer'
|
|
pageName='list'
|
|
onReload={() => tableRef.current?.reload()}
|
|
/>
|
|
<ColumnViewButton
|
|
type='printer'
|
|
disabled={false}
|
|
visibleState={columnVisibility}
|
|
updateVisibleState={setColumnVisibility}
|
|
/>
|
|
<ExportListButton objectType='printer' />
|
|
<InfoActionButtons type='printer' listMode={true} />
|
|
</Space>
|
|
<ListViewTabs />
|
|
<Space>
|
|
<SortSidebarButton
|
|
active={showSortSidebar}
|
|
onClick={() => setShowSortSidebar(!showSortSidebar)}
|
|
/>
|
|
<FilterSidebarButton
|
|
active={showFilterSidebar}
|
|
onClick={() => setShowFilterSidebar(!showFilterSidebar)}
|
|
/>
|
|
<ObjectTableViewButton
|
|
objectType='printer'
|
|
/>
|
|
<ListViewEditButtons showStartingDivider={true} />
|
|
</Space>
|
|
</Flex>
|
|
<ObjectTable
|
|
ref={tableRef}
|
|
type='printer'
|
|
showFilterSidebar={showFilterSidebar}
|
|
showSortSidebar={showSortSidebar}
|
|
visibleColumns={columnVisibility}
|
|
expandHeight={true}
|
|
saveFilterInSession={true}
|
|
saveFilterInUrl={true}
|
|
useFilterInSession={true}
|
|
useFilterInUrl={true}
|
|
saveSortInSession={true}
|
|
saveSortInUrl={true}
|
|
useSortInSession={true}
|
|
useSortInUrl={true}
|
|
|
|
/>
|
|
</Flex>
|
|
</ObjectListViewProvider>
|
|
)
|
|
}
|
|
|
|
export default Printers
|