mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-07 04:20:12 +02:00
remove memoization from individual table columns
- causes issues with drag/drop state
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
import { memo } from 'react';
|
||||
|
||||
import {
|
||||
ItemTableListInnerColumn,
|
||||
TableColumnContainer,
|
||||
@@ -7,7 +5,7 @@ import {
|
||||
import { ItemListItem } from '/@/renderer/components/item-list/types';
|
||||
import { ActionIcon } from '/@/shared/components/action-icon/action-icon';
|
||||
|
||||
const ActionsColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
export const ActionsColumn = (props: ItemTableListInnerColumn) => {
|
||||
const row: any = props.getRowItem?.(props.rowIndex) ?? (props.data as any[])[props.rowIndex];
|
||||
|
||||
const handleActionClick = (event: React.MouseEvent<HTMLButtonElement>) => {
|
||||
@@ -53,16 +51,3 @@ const ActionsColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
|
||||
return <TableColumnContainer {...props}> </TableColumnContainer>;
|
||||
};
|
||||
|
||||
export const ActionsColumn = memo(ActionsColumnBase, (prevProps, nextProps) => {
|
||||
const prevItem = prevProps.getRowItem?.(prevProps.rowIndex);
|
||||
const nextItem = nextProps.getRowItem?.(nextProps.rowIndex);
|
||||
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevItem === nextItem
|
||||
);
|
||||
});
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import clsx from 'clsx';
|
||||
import { memo } from 'react';
|
||||
|
||||
import styles from './album-artists-column.module.css';
|
||||
|
||||
@@ -54,14 +53,4 @@ const AlbumArtistsColumn = (props: ItemTableListInnerColumn) => {
|
||||
return <ColumnSkeletonVariable {...props} />;
|
||||
};
|
||||
|
||||
export const AlbumArtistsColumnMemo = memo(AlbumArtistsColumn, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.size === nextProps.size
|
||||
);
|
||||
});
|
||||
|
||||
export { AlbumArtistsColumnMemo as AlbumArtistsColumn };
|
||||
export { AlbumArtistsColumn };
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import clsx from 'clsx';
|
||||
import { memo, useMemo } from 'react';
|
||||
import { useMemo } from 'react';
|
||||
import { generatePath, Link } from 'react-router';
|
||||
|
||||
import styles from './album-column.module.css';
|
||||
@@ -75,18 +75,4 @@ const AlbumColumn = (props: ItemTableListInnerColumn) => {
|
||||
return <ColumnSkeletonVariable {...props} />;
|
||||
};
|
||||
|
||||
export const AlbumColumnMemo = memo(AlbumColumn, (prevProps, nextProps) => {
|
||||
const prevItem = prevProps.getRowItem?.(prevProps.rowIndex);
|
||||
const nextItem = nextProps.getRowItem?.(nextProps.rowIndex);
|
||||
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.size === nextProps.size &&
|
||||
prevItem === nextItem
|
||||
);
|
||||
});
|
||||
|
||||
export { AlbumColumnMemo as AlbumColumn };
|
||||
export { AlbumColumn };
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import clsx from 'clsx';
|
||||
import { Fragment, memo, useMemo } from 'react';
|
||||
import { Fragment, useMemo } from 'react';
|
||||
import { generatePath, Link } from 'react-router';
|
||||
|
||||
import styles from './album-artists-column.module.css';
|
||||
@@ -109,15 +109,4 @@ const BaseArtistsColumn = (props: ItemTableListInnerColumn) => {
|
||||
}
|
||||
};
|
||||
|
||||
const ArtistsColumnMemo = memo(BaseArtistsColumn, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.itemType === nextProps.itemType &&
|
||||
prevProps.size === nextProps.size
|
||||
);
|
||||
});
|
||||
|
||||
export { ArtistsColumnMemo as ArtistsColumn };
|
||||
export { BaseArtistsColumn as ArtistsColumn };
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import clsx from 'clsx';
|
||||
import { memo } from 'react';
|
||||
|
||||
import styles from './composer-column.module.css';
|
||||
|
||||
@@ -12,7 +11,7 @@ import {
|
||||
import { JoinedArtists } from '/@/renderer/features/albums/components/joined-artists';
|
||||
import { Album, RelatedArtist, Song } from '/@/shared/types/domain-types';
|
||||
|
||||
const ComposerColumn = (props: ItemTableListInnerColumn) => {
|
||||
export const ComposerColumn = (props: ItemTableListInnerColumn) => {
|
||||
const rowItem = props.getRowItem?.(props.rowIndex) ?? (props.data as any[])[props.rowIndex];
|
||||
const item = rowItem as Album | Song | undefined;
|
||||
|
||||
@@ -44,19 +43,3 @@ const ComposerColumn = (props: ItemTableListInnerColumn) => {
|
||||
|
||||
return <ColumnSkeletonVariable {...props} />;
|
||||
};
|
||||
|
||||
export const ComposerColumnMemo = memo(ComposerColumn, (prevProps, nextProps) => {
|
||||
const prevItem = prevProps.getRowItem?.(prevProps.rowIndex);
|
||||
const nextItem = nextProps.getRowItem?.(nextProps.rowIndex);
|
||||
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.size === nextProps.size &&
|
||||
prevItem === nextItem
|
||||
);
|
||||
});
|
||||
|
||||
export { ComposerColumnMemo as ComposerColumn };
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { memo, useMemo } from 'react';
|
||||
import { useMemo } from 'react';
|
||||
|
||||
import {
|
||||
ColumnNullFallback,
|
||||
@@ -62,14 +62,7 @@ const DateColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
return <ColumnSkeletonFixed {...props} />;
|
||||
};
|
||||
|
||||
export const DateColumn = memo(DateColumnBase, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns
|
||||
);
|
||||
});
|
||||
export const DateColumn = DateColumnBase;
|
||||
|
||||
const AbsoluteDateColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
const rowItem = props.getRowItem?.(props.rowIndex) ?? (props.data as any[])[props.rowIndex];
|
||||
@@ -152,15 +145,7 @@ const AbsoluteDateColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
return <ColumnSkeletonFixed {...props} />;
|
||||
};
|
||||
|
||||
export const AbsoluteDateColumn = memo(AbsoluteDateColumnBase, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.type === nextProps.type
|
||||
);
|
||||
});
|
||||
export const AbsoluteDateColumn = AbsoluteDateColumnBase;
|
||||
|
||||
const RelativeDateColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
const rowItem = props.getRowItem?.(props.rowIndex) ?? (props.data as any[])[props.rowIndex];
|
||||
@@ -193,11 +178,4 @@ const RelativeDateColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
return <ColumnSkeletonFixed {...props} />;
|
||||
};
|
||||
|
||||
export const RelativeDateColumn = memo(RelativeDateColumnBase, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns
|
||||
);
|
||||
});
|
||||
export const RelativeDateColumn = RelativeDateColumnBase;
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { memo } from 'react';
|
||||
|
||||
import {
|
||||
ColumnNullFallback,
|
||||
ColumnSkeletonFixed,
|
||||
@@ -7,7 +5,7 @@ import {
|
||||
TableColumnTextContainer,
|
||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||
|
||||
const DefaultColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
export const DefaultColumn = (props: ItemTableListInnerColumn) => {
|
||||
const rowItem = props.getRowItem?.(props.rowIndex) ?? (props.data as any[])[props.rowIndex];
|
||||
const row: any | undefined = (rowItem as any)?.[props.columns[props.columnIndex].id];
|
||||
|
||||
@@ -21,12 +19,3 @@ const DefaultColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
|
||||
return <ColumnSkeletonFixed {...props} />;
|
||||
};
|
||||
|
||||
export const DefaultColumn = memo(DefaultColumnBase, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns
|
||||
);
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import formatDuration from 'format-duration';
|
||||
import React, { useMemo } from 'react';
|
||||
import { useMemo } from 'react';
|
||||
|
||||
import {
|
||||
ColumnNullFallback,
|
||||
@@ -27,11 +27,4 @@ const DurationColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
return <ColumnSkeletonFixed {...props} />;
|
||||
};
|
||||
|
||||
export const DurationColumn = React.memo(DurationColumnBase, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns
|
||||
);
|
||||
});
|
||||
export const DurationColumn = DurationColumnBase;
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { memo } from 'react';
|
||||
|
||||
import {
|
||||
ItemTableListInnerColumn,
|
||||
TableColumnContainer,
|
||||
@@ -9,7 +7,7 @@ import { useIsMutatingCreateFavorite } from '/@/renderer/features/shared/mutatio
|
||||
import { useIsMutatingDeleteFavorite } from '/@/renderer/features/shared/mutations/delete-favorite-mutation';
|
||||
import { ActionIcon } from '/@/shared/components/action-icon/action-icon';
|
||||
|
||||
const FavoriteColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
export const FavoriteColumn = (props: ItemTableListInnerColumn) => {
|
||||
const rowItem = props.getRowItem?.(props.rowIndex) ?? (props.data as any[])[props.rowIndex];
|
||||
const row: boolean | undefined = rowItem?.[props.columns[props.columnIndex].id];
|
||||
|
||||
@@ -57,19 +55,3 @@ const FavoriteColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
|
||||
return <TableColumnContainer {...props}> </TableColumnContainer>;
|
||||
};
|
||||
|
||||
export const FavoriteColumn = memo(FavoriteColumnBase, (prevProps, nextProps) => {
|
||||
const prevItem = prevProps.getRowItem?.(prevProps.rowIndex);
|
||||
const nextItem = nextProps.getRowItem?.(nextProps.rowIndex);
|
||||
const prevFavorite = prevItem?.[prevProps.columns[prevProps.columnIndex].id];
|
||||
const nextFavorite = nextItem?.[nextProps.columns[nextProps.columnIndex].id];
|
||||
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevItem === nextItem &&
|
||||
prevFavorite === nextFavorite
|
||||
);
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { memo, useMemo } from 'react';
|
||||
import { useMemo } from 'react';
|
||||
import { generatePath, Link } from 'react-router';
|
||||
|
||||
import styles from './genre-badge-column.module.css';
|
||||
@@ -60,13 +60,4 @@ const GenreBadgeColumn = (props: ItemTableListInnerColumn) => {
|
||||
return <ColumnSkeletonVariable {...props} />;
|
||||
};
|
||||
|
||||
export const GenreColumnMemo = memo(GenreBadgeColumn, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns
|
||||
);
|
||||
});
|
||||
|
||||
export { GenreColumnMemo as GenreBadgeColumn };
|
||||
export { GenreBadgeColumn };
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import clsx from 'clsx';
|
||||
import { Fragment, memo, useMemo } from 'react';
|
||||
import { Fragment, useMemo } from 'react';
|
||||
import { generatePath, Link } from 'react-router';
|
||||
|
||||
import styles from './genre-column.module.css';
|
||||
@@ -64,14 +64,4 @@ const GenreColumn = (props: ItemTableListInnerColumn) => {
|
||||
return <ColumnSkeletonVariable {...props} />;
|
||||
};
|
||||
|
||||
export const GenreColumnMemo = memo(GenreColumn, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.size === nextProps.size
|
||||
);
|
||||
});
|
||||
|
||||
export { GenreColumnMemo as GenreColumn };
|
||||
export { GenreColumn };
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import clsx from 'clsx';
|
||||
import { memo, useState } from 'react';
|
||||
import { useState } from 'react';
|
||||
|
||||
import styles from './image-column.module.css';
|
||||
|
||||
@@ -137,17 +137,4 @@ const ImageColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
);
|
||||
};
|
||||
|
||||
export const ImageColumn = memo(ImageColumnBase, (prevProps, nextProps) => {
|
||||
const prevItem = prevProps.getRowItem?.(prevProps.rowIndex);
|
||||
const nextItem = nextProps.getRowItem?.(nextProps.rowIndex);
|
||||
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.itemType === nextProps.itemType &&
|
||||
prevProps.size === nextProps.size &&
|
||||
prevItem === nextItem
|
||||
);
|
||||
});
|
||||
export const ImageColumn = ImageColumnBase;
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { memo } from 'react';
|
||||
|
||||
import {
|
||||
ColumnNullFallback,
|
||||
ColumnSkeletonFixed,
|
||||
@@ -7,7 +5,7 @@ import {
|
||||
TableColumnTextContainer,
|
||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||
|
||||
const NumericColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
export const NumericColumn = (props: ItemTableListInnerColumn) => {
|
||||
const rowItem = props.getRowItem?.(props.rowIndex) ?? (props.data as any[])[props.rowIndex];
|
||||
const row: number | undefined = (rowItem as any)?.[props.columns[props.columnIndex].id];
|
||||
|
||||
@@ -21,12 +19,3 @@ const NumericColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
|
||||
return <ColumnSkeletonFixed {...props} />;
|
||||
};
|
||||
|
||||
export const NumericColumn = memo(NumericColumnBase, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns
|
||||
);
|
||||
});
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { memo } from 'react';
|
||||
|
||||
import {
|
||||
ColumnNullFallback,
|
||||
ColumnSkeletonVariable,
|
||||
@@ -7,7 +5,7 @@ import {
|
||||
TableColumnTextContainer,
|
||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||
|
||||
const PathColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
export const PathColumn = (props: ItemTableListInnerColumn) => {
|
||||
const rowItem = props.getRowItem?.(props.rowIndex) ?? (props.data as any[])[props.rowIndex];
|
||||
const row: string | undefined = (rowItem as any)?.[props.columns[props.columnIndex].id];
|
||||
|
||||
@@ -25,12 +23,3 @@ const PathColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
|
||||
return <ColumnSkeletonVariable {...props} />;
|
||||
};
|
||||
|
||||
export const PathColumn = memo(PathColumnBase, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns
|
||||
);
|
||||
});
|
||||
|
||||
+2
-15
@@ -1,4 +1,4 @@
|
||||
import { memo, useCallback } from 'react';
|
||||
import { useCallback } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { useParams } from 'react-router';
|
||||
|
||||
@@ -364,17 +364,4 @@ const PlaylistReorderColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
);
|
||||
};
|
||||
|
||||
export const PlaylistReorderColumn = memo(PlaylistReorderColumnBase, (prevProps, nextProps) => {
|
||||
const prevItem = prevProps.getRowItem?.(prevProps.rowIndex);
|
||||
const nextItem = nextProps.getRowItem?.(nextProps.rowIndex);
|
||||
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.itemType === nextProps.itemType &&
|
||||
prevProps.enableHeader === nextProps.enableHeader &&
|
||||
prevItem === nextItem
|
||||
);
|
||||
});
|
||||
export const PlaylistReorderColumn = PlaylistReorderColumnBase;
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { memo } from 'react';
|
||||
|
||||
import {
|
||||
ItemTableListInnerColumn,
|
||||
TableColumnContainer,
|
||||
@@ -8,7 +6,7 @@ import { ItemListItem } from '/@/renderer/components/item-list/types';
|
||||
import { useIsMutatingRating } from '/@/renderer/features/shared/mutations/set-rating-mutation';
|
||||
import { Rating } from '/@/shared/components/rating/rating';
|
||||
|
||||
const RatingColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
export const RatingColumn = (props: ItemTableListInnerColumn) => {
|
||||
const rowItem = props.getRowItem?.(props.rowIndex) ?? (props.data as any[])[props.rowIndex];
|
||||
const row: null | number | undefined = rowItem?.[props.columns[props.columnIndex].id];
|
||||
|
||||
@@ -42,19 +40,3 @@ const RatingColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
|
||||
return <TableColumnContainer {...props}> </TableColumnContainer>;
|
||||
};
|
||||
|
||||
export const RatingColumn = memo(RatingColumnBase, (prevProps, nextProps) => {
|
||||
const prevItem = prevProps.getRowItem?.(prevProps.rowIndex);
|
||||
const nextItem = nextProps.getRowItem?.(nextProps.rowIndex);
|
||||
const prevRating = prevItem?.[prevProps.columns[prevProps.columnIndex].id];
|
||||
const nextRating = nextItem?.[nextProps.columns[nextProps.columnIndex].id];
|
||||
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevItem === nextItem &&
|
||||
prevRating === nextRating
|
||||
);
|
||||
});
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import clsx from 'clsx';
|
||||
import { memo } from 'react';
|
||||
|
||||
import styles from './row-index-column.module.css';
|
||||
|
||||
@@ -32,18 +31,7 @@ const RowIndexColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const RowIndexColumn = memo(RowIndexColumnBase, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.itemType === nextProps.itemType &&
|
||||
prevProps.enableExpansion === nextProps.enableExpansion &&
|
||||
prevProps.enableHeader === nextProps.enableHeader &&
|
||||
prevProps.startRowIndex === nextProps.startRowIndex
|
||||
);
|
||||
});
|
||||
export const RowIndexColumn = RowIndexColumnBase;
|
||||
|
||||
const DefaultRowIndexColumn = (props: ItemTableListInnerColumn) => {
|
||||
const {
|
||||
@@ -125,30 +113,28 @@ const QueueSongRowIndexColumn = (props: ItemTableListInnerColumn) => {
|
||||
);
|
||||
};
|
||||
|
||||
const InnerQueueSongRowIndexColumn = memo(
|
||||
(
|
||||
props: ItemTableListInnerColumn & {
|
||||
adjustedRowIndex: number;
|
||||
isActive: boolean;
|
||||
isPlaying: boolean;
|
||||
},
|
||||
) => {
|
||||
return (
|
||||
<TableColumnTextContainer {...props}>
|
||||
{props.isActive ? (
|
||||
props.isPlaying ? (
|
||||
<Flex>
|
||||
<Icon fill="primary" icon="mediaPlay" />
|
||||
</Flex>
|
||||
) : (
|
||||
<Flex>
|
||||
<Icon fill="primary" icon="mediaPause" />
|
||||
</Flex>
|
||||
)
|
||||
) : (
|
||||
props.adjustedRowIndex
|
||||
)}
|
||||
</TableColumnTextContainer>
|
||||
);
|
||||
const InnerQueueSongRowIndexColumn = (
|
||||
props: ItemTableListInnerColumn & {
|
||||
adjustedRowIndex: number;
|
||||
isActive: boolean;
|
||||
isPlaying: boolean;
|
||||
},
|
||||
);
|
||||
) => {
|
||||
return (
|
||||
<TableColumnTextContainer {...props}>
|
||||
{props.isActive ? (
|
||||
props.isPlaying ? (
|
||||
<Flex>
|
||||
<Icon fill="primary" icon="mediaPlay" />
|
||||
</Flex>
|
||||
) : (
|
||||
<Flex>
|
||||
<Icon fill="primary" icon="mediaPause" />
|
||||
</Flex>
|
||||
)
|
||||
) : (
|
||||
props.adjustedRowIndex
|
||||
)}
|
||||
</TableColumnTextContainer>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { memo, useMemo } from 'react';
|
||||
import { useMemo } from 'react';
|
||||
|
||||
import {
|
||||
ColumnNullFallback,
|
||||
@@ -27,11 +27,4 @@ const SizeColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
return <ColumnSkeletonFixed {...props} />;
|
||||
};
|
||||
|
||||
export const SizeColumn = memo(SizeColumnBase, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns
|
||||
);
|
||||
});
|
||||
export const SizeColumn = SizeColumnBase;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import clsx from 'clsx';
|
||||
import { memo } from 'react';
|
||||
|
||||
import styles from './text-column.module.css';
|
||||
|
||||
@@ -10,7 +9,7 @@ import {
|
||||
TableColumnTextContainer,
|
||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||
|
||||
const TextColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
export const TextColumn = (props: ItemTableListInnerColumn) => {
|
||||
const rowItem = props.getRowItem?.(props.rowIndex) ?? (props.data as any[])[props.rowIndex];
|
||||
const row: string | undefined = (rowItem as any)?.[props.columns[props.columnIndex].id];
|
||||
|
||||
@@ -34,13 +33,3 @@ const TextColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
|
||||
return <ColumnSkeletonVariable {...props} />;
|
||||
};
|
||||
|
||||
export const TextColumn = memo(TextColumnBase, (prevProps, nextProps) => {
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.size === nextProps.size
|
||||
);
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import clsx from 'clsx';
|
||||
import { CSSProperties, memo } from 'react';
|
||||
import { CSSProperties } from 'react';
|
||||
import { Link } from 'react-router';
|
||||
|
||||
import styles from './title-artist-column.module.css';
|
||||
@@ -208,17 +208,4 @@ const TitleArtistColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const TitleArtistColumn = memo(TitleArtistColumnBase, (prevProps, nextProps) => {
|
||||
const prevItem = prevProps.getRowItem?.(prevProps.rowIndex);
|
||||
const nextItem = nextProps.getRowItem?.(nextProps.rowIndex);
|
||||
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.itemType === nextProps.itemType &&
|
||||
prevProps.size === nextProps.size &&
|
||||
prevItem === nextItem
|
||||
);
|
||||
});
|
||||
export const TitleArtistColumn = TitleArtistColumnBase;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import clsx from 'clsx';
|
||||
import { memo } from 'react';
|
||||
import { Link } from 'react-router';
|
||||
|
||||
import styles from './title-column.module.css';
|
||||
@@ -29,20 +28,7 @@ const TitleColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const TitleColumn = memo(TitleColumnBase, (prevProps, nextProps) => {
|
||||
const prevItem = prevProps.getRowItem?.(prevProps.rowIndex);
|
||||
const nextItem = nextProps.getRowItem?.(nextProps.rowIndex);
|
||||
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.itemType === nextProps.itemType &&
|
||||
prevProps.size === nextProps.size &&
|
||||
prevItem === nextItem
|
||||
);
|
||||
});
|
||||
export const TitleColumn = TitleColumnBase;
|
||||
|
||||
function DefaultTitleColumn(props: ItemTableListInnerColumn) {
|
||||
const rowItem = props.getRowItem?.(props.rowIndex) ?? (props.data as any[])[props.rowIndex];
|
||||
|
||||
+1
-16
@@ -361,8 +361,6 @@ export const QueueSongTitleCombinedColumn = (props: ItemTableListInnerColumn) =>
|
||||
return <ColumnSkeletonVariable {...props} />;
|
||||
};
|
||||
|
||||
import { memo } from 'react';
|
||||
|
||||
const TitleCombinedColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
const { itemType } = props;
|
||||
|
||||
@@ -377,17 +375,4 @@ const TitleCombinedColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const TitleCombinedColumn = memo(TitleCombinedColumnBase, (prevProps, nextProps) => {
|
||||
const prevItem = prevProps.getRowItem?.(prevProps.rowIndex);
|
||||
const nextItem = nextProps.getRowItem?.(nextProps.rowIndex);
|
||||
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevProps.itemType === nextProps.itemType &&
|
||||
prevProps.size === nextProps.size &&
|
||||
prevItem === nextItem
|
||||
);
|
||||
});
|
||||
export const TitleCombinedColumn = TitleCombinedColumnBase;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { memo, useMemo } from 'react';
|
||||
import { useMemo } from 'react';
|
||||
|
||||
import {
|
||||
ColumnNullFallback,
|
||||
@@ -42,15 +42,4 @@ const YearColumnBase = (props: ItemTableListInnerColumn) => {
|
||||
return <ColumnSkeletonFixed {...props} />;
|
||||
};
|
||||
|
||||
export const YearColumn = memo(YearColumnBase, (prevProps, nextProps) => {
|
||||
const prevItem = prevProps.getRowItem?.(prevProps.rowIndex);
|
||||
const nextItem = nextProps.getRowItem?.(nextProps.rowIndex);
|
||||
|
||||
return (
|
||||
prevProps.rowIndex === nextProps.rowIndex &&
|
||||
prevProps.columnIndex === nextProps.columnIndex &&
|
||||
prevProps.data === nextProps.data &&
|
||||
prevProps.columns === nextProps.columns &&
|
||||
prevItem === nextItem
|
||||
);
|
||||
});
|
||||
export const YearColumn = YearColumnBase;
|
||||
|
||||
@@ -446,14 +446,16 @@ const VirtualizedTableGrid = ({
|
||||
/>
|
||||
);
|
||||
},
|
||||
[pinnedLeftColumnCount, CellComponent],
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
[pinnedLeftColumnCount, CellComponent, featureFlags, calculatedColumnWidths],
|
||||
);
|
||||
|
||||
const PinnedColumnCell = useCallback(
|
||||
(cellProps: CellComponentProps & TableItemProps) => {
|
||||
return <CellComponent {...cellProps} rowIndex={cellProps.rowIndex + pinnedRowCount} />;
|
||||
},
|
||||
[pinnedRowCount, CellComponent],
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
[pinnedRowCount, CellComponent, featureFlags, calculatedColumnWidths],
|
||||
);
|
||||
|
||||
const PinnedRightColumnCell = useCallback(
|
||||
@@ -466,7 +468,15 @@ const VirtualizedTableGrid = ({
|
||||
/>
|
||||
);
|
||||
},
|
||||
[pinnedLeftColumnCount, pinnedRowCount, totalColumnCount, CellComponent],
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
[
|
||||
pinnedLeftColumnCount,
|
||||
pinnedRowCount,
|
||||
totalColumnCount,
|
||||
CellComponent,
|
||||
featureFlags,
|
||||
calculatedColumnWidths,
|
||||
],
|
||||
);
|
||||
|
||||
const PinnedRightIntersectionCell = useCallback(
|
||||
@@ -478,7 +488,14 @@ const VirtualizedTableGrid = ({
|
||||
/>
|
||||
);
|
||||
},
|
||||
[pinnedLeftColumnCount, totalColumnCount, CellComponent],
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
[
|
||||
pinnedLeftColumnCount,
|
||||
totalColumnCount,
|
||||
CellComponent,
|
||||
featureFlags,
|
||||
calculatedColumnWidths,
|
||||
],
|
||||
);
|
||||
|
||||
const RowCell = useCallback(
|
||||
@@ -491,7 +508,14 @@ const VirtualizedTableGrid = ({
|
||||
/>
|
||||
);
|
||||
},
|
||||
[pinnedLeftColumnCount, pinnedRowCount, CellComponent],
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
[
|
||||
pinnedLeftColumnCount,
|
||||
pinnedRowCount,
|
||||
CellComponent,
|
||||
featureFlags,
|
||||
calculatedColumnWidths,
|
||||
],
|
||||
);
|
||||
|
||||
const handleOnCellsRendered = useCallback(
|
||||
|
||||
Reference in New Issue
Block a user