From 5ed06f79b3aedf5bbf12a160404623095fa6df54 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Mon, 26 Dec 2022 04:47:40 -0800 Subject: [PATCH] Change type name, add paginated table --- .../components/virtual-grid/grid-card/index.tsx | 4 ++-- .../virtual-grid/virtual-grid-wrapper.tsx | 4 ++-- .../virtual-grid/virtual-infinite-grid.tsx | 8 ++++---- .../albums/components/album-list-content.tsx | 4 ++-- .../albums/components/album-list-header.tsx | 14 +++++++------- src/renderer/store/album.store.ts | 6 +++--- src/renderer/store/song.store.ts | 6 +++--- src/renderer/types.ts | 9 ++------- 8 files changed, 25 insertions(+), 30 deletions(-) diff --git a/src/renderer/components/virtual-grid/grid-card/index.tsx b/src/renderer/components/virtual-grid/grid-card/index.tsx index 2c3f839b..db0f06b4 100644 --- a/src/renderer/components/virtual-grid/grid-card/index.tsx +++ b/src/renderer/components/virtual-grid/grid-card/index.tsx @@ -4,7 +4,7 @@ import { areEqual } from 'react-window'; import { DefaultCard } from '/@/renderer/components/virtual-grid/grid-card/default-card'; import { PosterCard } from '/@/renderer/components/virtual-grid/grid-card/poster-card'; import type { GridCardData } from '/@/renderer/types'; -import { CardDisplayType } from '/@/renderer/types'; +import { ListDisplayType } from '/@/renderer/types'; export const GridCard = memo(({ data, index, style }: ListChildComponentProps) => { const { @@ -26,7 +26,7 @@ export const GridCard = memo(({ data, index, style }: ListChildComponentProps) = const startIndex = index * columnCount; const stopIndex = Math.min(itemCount - 1, startIndex + columnCount - 1); - const View = display === CardDisplayType.CARD ? DefaultCard : PosterCard; + const View = display === ListDisplayType.CARD ? DefaultCard : PosterCard; for (let i = startIndex; i <= stopIndex; i += 1) { cards.push( diff --git a/src/renderer/components/virtual-grid/virtual-grid-wrapper.tsx b/src/renderer/components/virtual-grid/virtual-grid-wrapper.tsx index 23f8660f..0a633c39 100644 --- a/src/renderer/components/virtual-grid/virtual-grid-wrapper.tsx +++ b/src/renderer/components/virtual-grid/virtual-grid-wrapper.tsx @@ -8,7 +8,7 @@ import { GridCard } from '/@/renderer/components/virtual-grid/grid-card'; import type { CardRow, LibraryItem, - CardDisplayType, + ListDisplayType, CardRoute, PlayQueueAddOptions, } from '/@/renderer/types'; @@ -64,7 +64,7 @@ export const VirtualGridWrapper = ({ }: Omit & { cardRows: CardRow[]; columnCount: number; - display: CardDisplayType; + display: ListDisplayType; handlePlayQueueAdd?: (options: PlayQueueAddOptions) => void; itemData: any[]; itemGap: number; diff --git a/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx b/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx index 3ccaed3e..dbfea86f 100644 --- a/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx +++ b/src/renderer/components/virtual-grid/virtual-infinite-grid.tsx @@ -12,7 +12,7 @@ import type { FixedSizeListProps } from 'react-window'; import InfiniteLoader from 'react-window-infinite-loader'; import { VirtualGridWrapper } from '/@/renderer/components/virtual-grid/virtual-grid-wrapper'; import type { CardRoute, CardRow, LibraryItem, PlayQueueAddOptions } from '/@/renderer/types'; -import { CardDisplayType } from '/@/renderer/types'; +import { ListDisplayType } from '/@/renderer/types'; export type VirtualInfiniteGridRef = { resetLoadMoreItemsCache: () => void; @@ -22,7 +22,7 @@ export type VirtualInfiniteGridRef = { interface VirtualGridProps extends Omit { cardRows: CardRow[]; - display?: CardDisplayType; + display?: ListDisplayType; fetchFn: (options: { columnCount: number; skip: number; take: number }) => Promise; handlePlayQueueAdd?: (options: PlayQueueAddOptions) => void; itemGap: number; @@ -144,7 +144,7 @@ export const VirtualInfiniteGrid = forwardRef( { { (e: MouseEvent) => { if (!e.currentTarget?.value) return; const type = e.currentTarget.value; - if (type === CardDisplayType.CARD) { - setPage({ list: { ...page, display: CardDisplayType.CARD } }); - } else if (type === CardDisplayType.POSTER) { - setPage({ list: { ...page, display: CardDisplayType.POSTER } }); + if (type === ListDisplayType.CARD) { + setPage({ list: { ...page, display: ListDisplayType.CARD } }); + } else if (type === ListDisplayType.POSTER) { + setPage({ list: { ...page, display: ListDisplayType.POSTER } }); } else { - setPage({ list: { ...page, display: CardDisplayType.TABLE } }); + setPage({ list: { ...page, display: ListDisplayType.TABLE } }); } }, [page, setPage], @@ -264,7 +264,7 @@ export const AlbumListHeader = ({ gridRef }: AlbumListHeaderProps) => { diff --git a/src/renderer/store/album.store.ts b/src/renderer/store/album.store.ts index 2efd8e38..277ad495 100644 --- a/src/renderer/store/album.store.ts +++ b/src/renderer/store/album.store.ts @@ -3,14 +3,14 @@ import create from 'zustand'; import { devtools, persist } from 'zustand/middleware'; import { immer } from 'zustand/middleware/immer'; import { AlbumListArgs, AlbumListSort, SortOrder } from '/@/renderer/api/types'; -import { CardDisplayType } from '/@/renderer/types'; +import { ListDisplayType } from '/@/renderer/types'; type TableProps = { scrollOffset: number; }; type ListProps = { - display: CardDisplayType; + display: ListDisplayType; filter: T; grid: { scrollOffset: number; @@ -49,7 +49,7 @@ export const useAlbumStore = create()( }, }, list: { - display: CardDisplayType.CARD, + display: ListDisplayType.CARD, filter: { musicFolderId: undefined, sortBy: AlbumListSort.RECENTLY_ADDED, diff --git a/src/renderer/store/song.store.ts b/src/renderer/store/song.store.ts index 2cc0e203..2bebe391 100644 --- a/src/renderer/store/song.store.ts +++ b/src/renderer/store/song.store.ts @@ -4,14 +4,14 @@ import { devtools, persist } from 'zustand/middleware'; import { immer } from 'zustand/middleware/immer'; import { SongListArgs, SongListSort, SortOrder } from '/@/renderer/api/types'; import { DataTableProps } from '/@/renderer/store/settings.store'; -import { CardDisplayType, TableColumn } from '/@/renderer/types'; +import { ListDisplayType, TableColumn } from '/@/renderer/types'; type TableProps = { scrollOffset: number; } & DataTableProps; type ListProps = { - display: CardDisplayType; + display: ListDisplayType; filter: T; table: TableProps; }; @@ -44,7 +44,7 @@ export const useSongStore = create()( }, }, list: { - display: CardDisplayType.TABLE, + display: ListDisplayType.TABLE, filter: { musicFolderId: undefined, sortBy: SongListSort.RECENTLY_ADDED, diff --git a/src/renderer/types.ts b/src/renderer/types.ts index d65a16eb..0c1e164a 100644 --- a/src/renderer/types.ts +++ b/src/renderer/types.ts @@ -19,16 +19,11 @@ export type CardRow = { route?: CardRoute; }; -export enum CardDisplayType { - CARD = 'card', - POSTER = 'poster', - TABLE = 'table', -} - export enum ListDisplayType { CARD = 'card', POSTER = 'poster', TABLE = 'table', + TABLE_PAGINATED = 'paginatedTable', } export enum LibraryItem { @@ -164,7 +159,7 @@ export type GridCardData = { cardControls: any; cardRows: CardRow[]; columnCount: number; - display: CardDisplayType; + display: ListDisplayType; handlePlayQueueAdd: (options: PlayQueueAddOptions) => void; itemCount: number; itemData: any[];