Add showEndingDivider prop to ObjectTableViewButton for enhanced layout control
All checks were successful
farmcontrol/farmcontrol-ui/pipeline/head This commit looks good

- Updated ObjectTableViewButton component to accept a showEndingDivider prop, allowing for conditional rendering of a divider in the layout.
- Modified multiple dashboard components (Invoices, Payments, TaxRecords, etc.) to utilize the new prop, improving visual separation in the UI.
- Ensured consistent application of the new prop across various components for a cohesive user experience.
This commit is contained in:
Tom Butcher 2026-08-09 23:08:01 +01:00
parent 0b17a33225
commit 1192d56027
44 changed files with 73 additions and 12 deletions

View File

@ -80,6 +80,7 @@ const Invoices = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const Payments = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const TaxRecords = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -85,6 +85,7 @@ const FilamentStocks = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const OrderItems = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -85,6 +85,7 @@ const PartStocks = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -86,6 +86,7 @@ const ProductStocks = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const PurchaseOrders = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const Shipments = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -85,6 +85,7 @@ const StockAudits = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -68,6 +68,7 @@ const StockEvents = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -83,6 +83,7 @@ const StockLocations = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -83,6 +83,7 @@ const StockTransfers = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -79,6 +79,7 @@ const AppPasswords = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const CourierServices = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -79,6 +79,7 @@ const Couriers = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const DocumentJobs = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -79,6 +79,7 @@ const DocumentPrinters = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -78,6 +78,7 @@ const DocumentSizes = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const DocumentTemplates = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -83,6 +83,7 @@ const FilamentSkus = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -85,6 +85,7 @@ const Filaments = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -68,6 +68,7 @@ const Files = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -84,6 +84,7 @@ const Hosts = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -82,6 +82,7 @@ const Materials = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const NoteTypes = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -82,6 +82,7 @@ const PartSkus = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -84,6 +84,7 @@ const Parts = (filter) => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -82,6 +82,7 @@ const ProductCategories = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -83,6 +83,7 @@ const ProductSkus = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -356,6 +356,7 @@ const Products = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -79,6 +79,7 @@ const TaxRates = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -79,6 +79,7 @@ const Vendors = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -76,6 +76,7 @@ const FilamentProfiles = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -82,6 +82,7 @@ const GCodeFiles = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -26,8 +26,7 @@ const Jobs = () => {
const [showFilterSidebar, setShowFilterSidebar] =
useFilterSidebarVisibility('Jobs')
const [showSortSidebar, setShowSortSidebar] =
useSortSidebarVisibility('Jobs')
const [showSortSidebar, setShowSortSidebar] = useSortSidebarVisibility('Jobs')
const actionItems = {
items: [
@ -85,6 +84,7 @@ const Jobs = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -75,6 +75,7 @@ const PrinterProfiles = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -85,6 +85,7 @@ const Printers = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -70,6 +70,7 @@ const SubJobs = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -79,6 +79,7 @@ const Clients = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const Listings = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const Marketplaces = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -80,6 +80,7 @@ const SalesOrders = () => {
<ObjectTableViewButton
viewMode={viewMode}
setViewMode={setViewMode}
showEndingDivider={true}
/>
</Space>
</Flex>

View File

@ -1,20 +1,39 @@
import PropTypes from 'prop-types'
import { Button } from 'antd'
import { Button, Divider, Flex } from 'antd'
import GridIcon from '../../Icons/GridIcon'
import ListIcon from '../../Icons/ListIcon'
const ObjectTableViewButton = ({ viewMode, setViewMode, ...buttonProps }) => (
<Button
icon={viewMode === 'cards' ? <ListIcon /> : <GridIcon />}
onClick={() => setViewMode(viewMode === 'cards' ? 'list' : 'cards')}
title={viewMode === 'cards' ? 'Switch to list view' : 'Switch to card view'}
{...buttonProps}
/>
)
const ObjectTableViewButton = ({
viewMode,
setViewMode,
showEndingDivider = false,
...buttonProps
}) => {
const content = (
<Button
icon={viewMode === 'cards' ? <ListIcon /> : <GridIcon />}
onClick={() => setViewMode(viewMode === 'cards' ? 'list' : 'cards')}
title={
viewMode === 'cards' ? 'Switch to list view' : 'Switch to card view'
}
{...buttonProps}
/>
)
if (showEndingDivider) {
return (
<Flex gap='small' align='center'>
<Divider type='vertical' style={{ margin: '0 4px', height: '18px' }} />
{content}
</Flex>
)
}
return content
}
ObjectTableViewButton.propTypes = {
viewMode: PropTypes.oneOf(['list', 'cards']).isRequired,
setViewMode: PropTypes.func.isRequired
setViewMode: PropTypes.func.isRequired,
showEndingDivider: PropTypes.bool
}
export default ObjectTableViewButton