From 6eb08243b7325bae9c1a1ecb997ae86b615093bf Mon Sep 17 00:00:00 2001 From: jeffvli Date: Sat, 24 Dec 2022 13:35:27 -0800 Subject: [PATCH] Add generic to CardRow type squash cardrow type squash cardrow type --- src/renderer/components/card/album-card.tsx | 7 ++++--- src/renderer/components/grid-carousel/index.tsx | 2 +- .../components/virtual-grid/virtual-infinite-grid.tsx | 2 +- src/renderer/types.ts | 7 ++++--- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/renderer/components/card/album-card.tsx b/src/renderer/components/card/album-card.tsx index 9553914d..73d28d52 100644 --- a/src/renderer/components/card/album-card.tsx +++ b/src/renderer/components/card/album-card.tsx @@ -9,6 +9,7 @@ import { Text } from '/@/renderer/components/text'; import type { LibraryItem, CardRow, CardRoute, Play, PlayQueueAddOptions } from '/@/renderer/types'; import { Skeleton } from '/@/renderer/components/skeleton'; import { CardControls } from '/@/renderer/components/card/card-controls'; +import { Album } from '/@/renderer/api/types'; const CardWrapper = styled.div<{ link?: boolean; @@ -102,7 +103,7 @@ const Row = styled.div<{ $secondary?: boolean }>` interface BaseGridCardProps { controls: { - cardRows: CardRow[]; + cardRows: CardRow[]; itemType: LibraryItem; playButtonBehavior: Play; route: CardRoute; @@ -178,7 +179,7 @@ export const AlbumCard = ({ - {cardRows.map((row: CardRow, index: number) => { + {cardRows.map((row: CardRow, index: number) => { if (row.arrayProperty && row.route) { return ( - {cardRows.map((_row: CardRow, index: number) => ( + {cardRows.map((_row: CardRow, index: number) => ( []; children: React.ReactElement; containerWidth: number; data: any[] | undefined; diff --git a/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx b/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx index 882a020a..90f3b409 100644 --- a/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx +++ b/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx @@ -7,7 +7,7 @@ import type { CardRoute, CardRow, LibraryItem, PlayQueueAddOptions } from '/@/re import { CardDisplayType } from '/@/renderer/types'; interface VirtualGridProps extends Omit { - cardRows: CardRow[]; + cardRows: CardRow[]; display?: CardDisplayType; fetchFn: (options: { columnCount: number; skip: number; take: number }) => Promise; handlePlayQueueAdd?: (options: PlayQueueAddOptions) => void; diff --git a/src/renderer/types.ts b/src/renderer/types.ts index 7b21c998..d65a16eb 100644 --- a/src/renderer/types.ts +++ b/src/renderer/types.ts @@ -1,3 +1,4 @@ +import { Album, AlbumArtist, Artist } from '/@/renderer/api/types'; import { AppRoute } from '/@/renderer/router/routes'; export type RouteSlug = { @@ -12,9 +13,9 @@ export type CardRoute = { export type TableType = 'nowPlaying' | 'sideQueue' | 'sideDrawerQueue' | 'songs'; -export type CardRow = { +export type CardRow = { arrayProperty?: string; - property: string; + property: keyof T; route?: CardRoute; }; @@ -161,7 +162,7 @@ export type PlayQueueAddOptions = { export type GridCardData = { cardControls: any; - cardRows: CardRow[]; + cardRows: CardRow[]; columnCount: number; display: CardDisplayType; handlePlayQueueAdd: (options: PlayQueueAddOptions) => void;