mirror of
https://github.com/jeffvli/feishin.git
synced 2026-06-16 16:34:24 +02:00
add configuration for row hover highlight
This commit is contained in:
@@ -164,6 +164,28 @@
|
|||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.track-row.track-row-hover-highlight-enabled {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.track-row.track-row-hover-highlight-enabled .track-cell {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.track-row.track-row-hover-highlight-enabled:hover::before {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 1;
|
||||||
|
pointer-events: none;
|
||||||
|
content: '';
|
||||||
|
background-color: var(--theme-colors-surface);
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
.skeleton-image {
|
.skeleton-image {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
aspect-ratio: 1;
|
aspect-ratio: 1;
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ interface RowData {
|
|||||||
columnWidthPercents: number[];
|
columnWidthPercents: number[];
|
||||||
controls?: ItemControls;
|
controls?: ItemControls;
|
||||||
data: unknown[];
|
data: unknown[];
|
||||||
|
enableRowHoverHighlight: boolean;
|
||||||
getItem?: (index: number) => unknown;
|
getItem?: (index: number) => unknown;
|
||||||
internalState: ItemListStateActions;
|
internalState: ItemListStateActions;
|
||||||
isMutatingFavorite: boolean;
|
isMutatingFavorite: boolean;
|
||||||
@@ -67,6 +68,7 @@ interface TrackRowProps {
|
|||||||
columns: ItemTableListColumnConfig[];
|
columns: ItemTableListColumnConfig[];
|
||||||
columnWidthPercents: number[];
|
columnWidthPercents: number[];
|
||||||
controls?: ItemControls;
|
controls?: ItemControls;
|
||||||
|
enableRowHoverHighlight: boolean;
|
||||||
internalState: ItemListStateActions;
|
internalState: ItemListStateActions;
|
||||||
isMutatingFavorite: boolean;
|
isMutatingFavorite: boolean;
|
||||||
onFavoriteClick: (song: Song) => void;
|
onFavoriteClick: (song: Song) => void;
|
||||||
@@ -83,6 +85,7 @@ const TrackRow = memo(
|
|||||||
columns,
|
columns,
|
||||||
columnWidthPercents,
|
columnWidthPercents,
|
||||||
controls,
|
controls,
|
||||||
|
enableRowHoverHighlight,
|
||||||
internalState,
|
internalState,
|
||||||
isMutatingFavorite,
|
isMutatingFavorite,
|
||||||
onFavoriteClick,
|
onFavoriteClick,
|
||||||
@@ -186,6 +189,7 @@ const TrackRow = memo(
|
|||||||
<div
|
<div
|
||||||
className={clsx(styles.trackRow, {
|
className={clsx(styles.trackRow, {
|
||||||
[styles.trackRowDragging]: isDragging,
|
[styles.trackRowDragging]: isDragging,
|
||||||
|
[styles.trackRowHoverHighlightEnabled]: enableRowHoverHighlight,
|
||||||
[styles.trackRowSelected]: isSelected,
|
[styles.trackRowSelected]: isSelected,
|
||||||
[styles.trackRowSizeCompact]: size === 'compact',
|
[styles.trackRowSizeCompact]: size === 'compact',
|
||||||
[styles.trackRowSizeDefault]: size === 'default',
|
[styles.trackRowSizeDefault]: size === 'default',
|
||||||
@@ -261,6 +265,7 @@ const RowContent = memo(
|
|||||||
columnWidthPercents,
|
columnWidthPercents,
|
||||||
controls,
|
controls,
|
||||||
data,
|
data,
|
||||||
|
enableRowHoverHighlight,
|
||||||
getItem,
|
getItem,
|
||||||
index,
|
index,
|
||||||
internalState,
|
internalState,
|
||||||
@@ -387,6 +392,7 @@ const RowContent = memo(
|
|||||||
columns={trackColumns}
|
columns={trackColumns}
|
||||||
columnWidthPercents={columnWidthPercents}
|
columnWidthPercents={columnWidthPercents}
|
||||||
controls={controls}
|
controls={controls}
|
||||||
|
enableRowHoverHighlight={enableRowHoverHighlight}
|
||||||
internalState={internalState}
|
internalState={internalState}
|
||||||
isMutatingFavorite={isMutatingFavorite}
|
isMutatingFavorite={isMutatingFavorite}
|
||||||
key={song.id}
|
key={song.id}
|
||||||
@@ -405,6 +411,7 @@ const RowContent = memo(
|
|||||||
prev.index === next.index &&
|
prev.index === next.index &&
|
||||||
prev.data === next.data &&
|
prev.data === next.data &&
|
||||||
prev.columnWidthPercents === next.columnWidthPercents &&
|
prev.columnWidthPercents === next.columnWidthPercents &&
|
||||||
|
prev.enableRowHoverHighlight === next.enableRowHoverHighlight &&
|
||||||
prev.getItem === next.getItem &&
|
prev.getItem === next.getItem &&
|
||||||
prev.internalState === next.internalState &&
|
prev.internalState === next.internalState &&
|
||||||
prev.isMutatingFavorite === next.isMutatingFavorite &&
|
prev.isMutatingFavorite === next.isMutatingFavorite &&
|
||||||
@@ -500,6 +507,7 @@ export const ItemDetailList = ({
|
|||||||
});
|
});
|
||||||
}, [tableConfig?.columns]);
|
}, [tableConfig?.columns]);
|
||||||
const trackTableSize = tableConfig?.size ?? 'default';
|
const trackTableSize = tableConfig?.size ?? 'default';
|
||||||
|
const enableRowHoverHighlight = tableConfig?.enableRowHoverHighlight ?? true;
|
||||||
|
|
||||||
const columnWidthPercents = useMemo(() => {
|
const columnWidthPercents = useMemo(() => {
|
||||||
const total = trackColumns.reduce((sum, c) => sum + c.width, 0);
|
const total = trackColumns.reduce((sum, c) => sum + c.width, 0);
|
||||||
@@ -538,6 +546,7 @@ export const ItemDetailList = ({
|
|||||||
columnWidthPercents,
|
columnWidthPercents,
|
||||||
controls,
|
controls,
|
||||||
data: dataSource,
|
data: dataSource,
|
||||||
|
enableRowHoverHighlight,
|
||||||
getItem,
|
getItem,
|
||||||
internalState,
|
internalState,
|
||||||
isMutatingFavorite,
|
isMutatingFavorite,
|
||||||
@@ -550,6 +559,7 @@ export const ItemDetailList = ({
|
|||||||
columnWidthPercents,
|
columnWidthPercents,
|
||||||
controls,
|
controls,
|
||||||
dataSource,
|
dataSource,
|
||||||
|
enableRowHoverHighlight,
|
||||||
getItem,
|
getItem,
|
||||||
internalState,
|
internalState,
|
||||||
isMutatingFavorite,
|
isMutatingFavorite,
|
||||||
|
|||||||
@@ -102,8 +102,6 @@ export const AlbumListHeaderFilters = ({ toggleGenreTarget }: { toggleGenreTarge
|
|||||||
optionsConfig: {
|
optionsConfig: {
|
||||||
autoFitColumns: { hidden: true },
|
autoFitColumns: { hidden: true },
|
||||||
enableHeader: { hidden: true },
|
enableHeader: { hidden: true },
|
||||||
itemsPerPage: { hidden: true },
|
|
||||||
pagination: { hidden: true },
|
|
||||||
},
|
},
|
||||||
tableColumnsData: SONG_TABLE_COLUMNS,
|
tableColumnsData: SONG_TABLE_COLUMNS,
|
||||||
}}
|
}}
|
||||||
|
|||||||
Reference in New Issue
Block a user