From 6bde14be4994720eef9d71e8a72fc8839c31c952 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Wed, 12 Nov 2025 20:02:18 -0800 Subject: [PATCH] improve pickTableColumns util to handle more properties --- .../item-table-list/default-columns.ts | 44 +++++++++++++++---- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/src/renderer/components/item-list/item-table-list/default-columns.ts b/src/renderer/components/item-list/item-table-list/default-columns.ts index 91c1b4341..e73b77b99 100644 --- a/src/renderer/components/item-list/item-table-list/default-columns.ts +++ b/src/renderer/components/item-list/item-table-list/default-columns.ts @@ -649,13 +649,39 @@ export const GENRE_TABLE_COLUMNS: DefaultTableColumn[] = [ }, ]; -export const pickTableColumns = (columns: DefaultTableColumn[], enabledColumns: TableColumn[]) => { - return columns.map((column) => ({ - align: column.align, - autoSize: column.autoSize, - id: column.value, - isEnabled: enabledColumns.includes(column.value), - pinned: column.pinned, - width: column.width, - })); +export const pickTableColumns = (options: { + autoSizeColumns?: TableColumn[]; + columns: DefaultTableColumn[]; + enabledColumns: TableColumn[]; + pinnedLeftColumns?: TableColumn[]; + pinnedRightColumns?: TableColumn[]; +}) => { + const { + autoSizeColumns = [], + columns, + enabledColumns, + pinnedLeftColumns = [], + pinnedRightColumns = [], + } = options; + + return columns.map((column) => { + const pinned: 'left' | 'right' | null = pinnedLeftColumns.includes(column.value) + ? 'left' + : pinnedRightColumns.includes(column.value) + ? 'right' + : null; + + const isEnabled = enabledColumns.includes(column.value); + + const autoSize = autoSizeColumns.includes(column.value); + + return { + align: column.align, + autoSize, + id: column.value, + isEnabled, + pinned, + width: column.width, + }; + }); };