mirror of
https://github.com/jeffvli/feishin.git
synced 2024-11-20 14:37:06 +01:00
Add generic to CardRow type
squash cardrow type squash cardrow type
This commit is contained in:
parent
747633fb25
commit
6eb08243b7
@ -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<Album>[];
|
||||
itemType: LibraryItem;
|
||||
playButtonBehavior: Play;
|
||||
route: CardRoute;
|
||||
@ -178,7 +179,7 @@ export const AlbumCard = ({
|
||||
</ControlsContainer>
|
||||
</ImageSection>
|
||||
<DetailSection>
|
||||
{cardRows.map((row: CardRow, index: number) => {
|
||||
{cardRows.map((row: CardRow<Album>, index: number) => {
|
||||
if (row.arrayProperty && row.route) {
|
||||
return (
|
||||
<Row
|
||||
@ -294,7 +295,7 @@ export const AlbumCard = ({
|
||||
<ImageSection />
|
||||
</Skeleton>
|
||||
<DetailSection style={{ width: '100%' }}>
|
||||
{cardRows.map((_row: CardRow, index: number) => (
|
||||
{cardRows.map((_row: CardRow<Album>, index: number) => (
|
||||
<Skeleton
|
||||
visible
|
||||
height={15}
|
||||
|
@ -12,7 +12,7 @@ import { AlbumCard } from '/@/renderer/components/card';
|
||||
import { useHandlePlayQueueAdd } from '/@/renderer/features/player/hooks/use-handle-playqueue-add';
|
||||
|
||||
interface GridCarouselProps {
|
||||
cardRows: CardRow[];
|
||||
cardRows: CardRow<any>[];
|
||||
children: React.ReactElement;
|
||||
containerWidth: number;
|
||||
data: any[] | undefined;
|
||||
|
@ -7,7 +7,7 @@ import type { CardRoute, CardRow, LibraryItem, PlayQueueAddOptions } from '/@/re
|
||||
import { CardDisplayType } from '/@/renderer/types';
|
||||
|
||||
interface VirtualGridProps extends Omit<FixedSizeListProps, 'children' | 'itemSize'> {
|
||||
cardRows: CardRow[];
|
||||
cardRows: CardRow<any>[];
|
||||
display?: CardDisplayType;
|
||||
fetchFn: (options: { columnCount: number; skip: number; take: number }) => Promise<any>;
|
||||
handlePlayQueueAdd?: (options: PlayQueueAddOptions) => void;
|
||||
|
@ -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<T> = {
|
||||
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<Album | AlbumArtist | Artist>[];
|
||||
columnCount: number;
|
||||
display: CardDisplayType;
|
||||
handlePlayQueueAdd: (options: PlayQueueAddOptions) => void;
|
||||
|
Loading…
Reference in New Issue
Block a user