From f8af307159b53fb9e15ced5e0f058156569a39bd Mon Sep 17 00:00:00 2001 From: jeffvli Date: Thu, 2 Oct 2025 01:23:11 -0700 Subject: [PATCH] progress --- .../item-table-list/item-table-list.tsx | 43 +++++++++++++------ 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/src/renderer/components/item-list/item-table-list/item-table-list.tsx b/src/renderer/components/item-list/item-table-list/item-table-list.tsx index dedc3c0dc..83201452d 100644 --- a/src/renderer/components/item-list/item-table-list/item-table-list.tsx +++ b/src/renderer/components/item-list/item-table-list/item-table-list.tsx @@ -21,10 +21,21 @@ import { ExpandedListItem } from '/@/renderer/components/item-list/expanded-list import { useItemListState } from '/@/renderer/components/item-list/helpers/item-list-state'; import { LibraryItem } from '/@/shared/types/domain-types'; -interface ItemTableListProps { +export interface ItemTableListColumn { + id: string; + label: string; + width: number; +} + +interface CellProps { + columns: ItemTableListColumn[]; + data: unknown[]; +} + +interface ItemTableListProps { CellComponent: JSXElementConstructor>; - cellProps: GridProps['cellProps']; columnCount: number; + columns: ItemTableListColumn[]; columnWidth: ((index: number, cellProps: CellProps) => number) | number; data: unknown[]; enableExpansion?: boolean; @@ -40,11 +51,11 @@ interface ItemTableListProps { itemType: LibraryItem; onCellsRendered: GridProps['onCellsRendered']; onEndReached?: (index: number) => void; - onItemClick?: (item: unknown, index: number) => void; - onItemContextMenu?: (item: unknown, index: number) => void; - onItemDoubleClick?: (item: unknown, index: number) => void; + onItemClick?: (item: unknown, index: number, event: MouseEvent) => void; + onItemContextMenu?: (item: unknown, index: number, event: MouseEvent) => void; + onItemDoubleClick?: (item: unknown, index: number, event: MouseEvent) => void; onRangeChanged?: (range: { endIndex: number; startIndex: number }) => void; - onScroll?: (e: UIEvent) => void; + onScroll?: (event: UIEvent) => void; onScrollEnd?: () => void; onStartReached?: (index: number) => void; ref?: Ref; @@ -68,11 +79,12 @@ const expandedAnimationVariants: Variants = { }, }; -export const ItemTableList = ({ +export const ItemTableList = ({ CellComponent, - cellProps, columnCount, + columns, columnWidth, + data, initialTopMostItemIndex, itemType, onCellsRendered, @@ -89,7 +101,7 @@ export const ItemTableList = ({ stickyColumnCount, stickyRowCount, totalItemCount, -}: ItemTableListProps) => { +}: ItemTableListProps) => { const totalRowCount = totalItemCount - (stickyRowCount ?? 0); const totalColumnCount = columnCount - (stickyColumnCount ?? 0); const stickyRowRef = useRef(null); @@ -272,6 +284,11 @@ export const ItemTableList = ({ return undefined; }, []); + const cellProps = { + columns, + data, + }; + const internalState = useItemListState(); const hasExpanded = internalState.hasExpanded(); @@ -337,14 +354,14 @@ export const ItemTableList = ({ ); const RowCell = useCallback( - (cellProps: CellComponentProps & CellProps) => { + (cellProps: CellComponentProps) => { return ( { - console.log('click', cellProps.rowIndex); - }} + // onClick={(e) => { + // onItemClick?.(cellProps.data[cellProps.rowIndex], cellProps.rowIndex, e); + // }} rowIndex={cellProps.rowIndex + (stickyRowCount ?? 0)} /> );