add table row separator support

This commit is contained in:
jeffvli
2025-10-04 02:28:29 -07:00
parent 06a3686739
commit 9d1b2a7c72
3 changed files with 12 additions and 0 deletions
@@ -33,6 +33,10 @@
padding: var(--theme-spacing-xs); padding: var(--theme-spacing-xs);
} }
.container.with-row-border {
border-bottom: 1px solid var(--theme-colors-border);
}
.header-container { .header-container {
background: none; background: none;
} }
@@ -121,6 +121,8 @@ export const TableColumnTextContainer = (
[styles.compact]: props.size === 'compact', [styles.compact]: props.size === 'compact',
[styles.left]: props.columns[props.columnIndex].align === 'start', [styles.left]: props.columns[props.columnIndex].align === 'start',
[styles.right]: props.columns[props.columnIndex].align === 'end', [styles.right]: props.columns[props.columnIndex].align === 'end',
[styles.withRowBorder]:
props.enableRowBorders && props.enableHeader && props.rowIndex > 0,
})} })}
onClick={(e) => props.handleExpand(e, props.data[props.rowIndex], props.itemType)} onClick={(e) => props.handleExpand(e, props.data[props.rowIndex], props.itemType)}
style={props.style} style={props.style}
@@ -151,6 +153,8 @@ export const TableColumnContainer = (
[styles.compact]: props.size === 'compact', [styles.compact]: props.size === 'compact',
[styles.left]: props.columns[props.columnIndex].align === 'start', [styles.left]: props.columns[props.columnIndex].align === 'start',
[styles.right]: props.columns[props.columnIndex].align === 'end', [styles.right]: props.columns[props.columnIndex].align === 'end',
[styles.withRowBorder]:
props.enableRowBorders && props.enableHeader && props.rowIndex > 0,
})} })}
onClick={(e) => props.handleExpand(e, props.data[props.rowIndex], props.itemType)} onClick={(e) => props.handleExpand(e, props.data[props.rowIndex], props.itemType)}
style={props.style} style={props.style}
@@ -29,6 +29,7 @@ export interface CellProps {
columns: ItemTableListColumnConfig[]; columns: ItemTableListColumnConfig[];
data: unknown[]; data: unknown[];
enableHeader?: boolean; enableHeader?: boolean;
enableRowBorders?: boolean;
handleExpand: (e: MouseEvent<HTMLDivElement>, item: unknown, itemType: LibraryItem) => void; handleExpand: (e: MouseEvent<HTMLDivElement>, item: unknown, itemType: LibraryItem) => void;
itemType: LibraryItem; itemType: LibraryItem;
size?: 'compact' | 'default'; size?: 'compact' | 'default';
@@ -47,6 +48,7 @@ interface ItemTableListProps {
data: unknown[]; data: unknown[];
enableExpansion?: boolean; enableExpansion?: boolean;
enableHeader?: boolean; enableHeader?: boolean;
enableRowBorders?: boolean;
enableSelection?: boolean; enableSelection?: boolean;
headerHeight?: number; headerHeight?: number;
initialTopMostItemIndex?: initialTopMostItemIndex?:
@@ -92,6 +94,7 @@ export const ItemTableList = ({
columns, columns,
data, data,
enableHeader = true, enableHeader = true,
enableRowBorders = false,
headerHeight = 40, headerHeight = 40,
initialTopMostItemIndex, initialTopMostItemIndex,
itemType, itemType,
@@ -544,6 +547,7 @@ export const ItemTableList = ({
columns: sortedColumns, columns: sortedColumns,
data, data,
enableHeader, enableHeader,
enableRowBorders,
handleExpand, handleExpand,
itemType, itemType,
size, size,