From 9e448f726608ce628816165dd91cb461bc2cd25f Mon Sep 17 00:00:00 2001 From: jeffvli Date: Mon, 9 Feb 2026 02:11:08 -0800 Subject: [PATCH] add configuration for column/row borders --- .../item-detail-list/item-detail.module.css | 16 ++++++++++++ .../item-detail-list/item-detail.tsx | 25 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/renderer/components/item-list/item-detail-list/item-detail.module.css b/src/renderer/components/item-list/item-detail-list/item-detail.module.css index 043ec6e41..bd6d25e60 100644 --- a/src/renderer/components/item-list/item-detail-list/item-detail.module.css +++ b/src/renderer/components/item-list/item-detail-list/item-detail.module.css @@ -140,6 +140,14 @@ color: var(--theme-colors-foreground-muted); } +.row .track-cell-with-vertical-border { + border-right: 1px solid transparent; +} + +.row .track-cell-vertical-border-visible { + border-right-color: var(--theme-colors-border); +} + .row .track-cell-image { display: flex; align-self: stretch; @@ -164,6 +172,14 @@ opacity: 0.5; } +.track-row.track-row-with-horizontal-border { + border-top: 1px solid transparent; +} + +.track-row.track-row-horizontal-border-visible { + border-top-color: var(--theme-colors-border); +} + .track-row.track-row-hover-highlight-enabled { position: relative; } diff --git a/src/renderer/components/item-list/item-detail-list/item-detail.tsx b/src/renderer/components/item-list/item-detail-list/item-detail.tsx index e499d6a7b..26889ed05 100644 --- a/src/renderer/components/item-list/item-detail-list/item-detail.tsx +++ b/src/renderer/components/item-list/item-detail-list/item-detail.tsx @@ -55,7 +55,9 @@ interface RowData { columnWidthPercents: number[]; controls?: ItemControls; data: unknown[]; + enableHorizontalBorders: boolean; enableRowHoverHighlight: boolean; + enableVerticalBorders: boolean; getItem?: (index: number) => unknown; internalState: ItemListStateActions; isMutatingFavorite: boolean; @@ -68,7 +70,9 @@ interface TrackRowProps { columns: ItemTableListColumnConfig[]; columnWidthPercents: number[]; controls?: ItemControls; + enableHorizontalBorders: boolean; enableRowHoverHighlight: boolean; + enableVerticalBorders: boolean; internalState: ItemListStateActions; isMutatingFavorite: boolean; onFavoriteClick: (song: Song) => void; @@ -85,7 +89,9 @@ const TrackRow = memo( columns, columnWidthPercents, controls, + enableHorizontalBorders, enableRowHoverHighlight, + enableVerticalBorders, internalState, isMutatingFavorite, onFavoriteClick, @@ -189,11 +195,14 @@ const TrackRow = memo(
0, [styles.trackRowHoverHighlightEnabled]: enableRowHoverHighlight, [styles.trackRowSelected]: isSelected, [styles.trackRowSizeCompact]: size === 'compact', [styles.trackRowSizeDefault]: size === 'default', [styles.trackRowSizeLarge]: size === 'large', + [styles.trackRowWithHorizontalBorder]: rowIndex > 0, })} onClick={handleRowClick} onMouseEnter={() => setIsRowHovered(true)} @@ -237,11 +246,15 @@ const TrackRow = memo( '\u00A0' ); + const isLastColumn = colIndex === columns.length - 1; return (
{ const total = trackColumns.reduce((sum, c) => sum + c.width, 0); @@ -546,7 +567,9 @@ export const ItemDetailList = ({ columnWidthPercents, controls, data: dataSource, + enableHorizontalBorders, enableRowHoverHighlight, + enableVerticalBorders, getItem, internalState, isMutatingFavorite, @@ -559,7 +582,9 @@ export const ItemDetailList = ({ columnWidthPercents, controls, dataSource, + enableHorizontalBorders, enableRowHoverHighlight, + enableVerticalBorders, getItem, internalState, isMutatingFavorite,