// src/Printers.js import { useState, useRef } from 'react' import { Button, Dropdown, Space, Flex, Modal } from 'antd' import NewPrinter from './Printers/NewPrinter' import PlusIcon from '../../Icons/PlusIcon' import ReloadIcon from '../../Icons/ReloadIcon' import ObjectTable from '../common/ObjectTable' import ColumnViewButton from '../common/ColumnViewButton' import ExportListButton from '../common/ExportListButton' import ObjectTableViewButton from '../common/ObjectTableViewButton' import FilterSidebarButton from '../common/FilterSidebarButton' import useViewMode from '../hooks/useViewMode' import useColumnVisibility from '../hooks/useColumnVisibility' import useFilterSidebarVisibility from '../hooks/useFilterSidebarVisibility' const Printers = () => { const [newPrinterOpen, setNewPrinterOpen] = useState(false) const tableRef = useRef() // View mode state (cards/list), persisted in sessionStorage via custom hook const [viewMode, setViewMode] = useViewMode('Printers') // 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 actionItems = { items: [ { label: 'New Printer', key: 'newPrinter', icon: }, { type: 'divider' }, { label: 'Reload List', key: 'reloadList', icon: } ], onClick: ({ key }) => { if (key === 'reloadList') { tableRef.current?.reload() } else if (key === 'newPrinter') { setNewPrinterOpen(true) } } } return ( <> setShowFilterSidebar(!showFilterSidebar)} /> { setNewPrinterOpen(false) }} destroyOnHidden > { setNewPrinterOpen(false) tableRef.current?.reload() }} reset={newPrinterOpen} /> ) } export default Printers