mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-15 21:16:17 +02:00
65 lines
1.9 KiB
TypeScript
65 lines
1.9 KiB
TypeScript
import { TableColumn } from '/@/shared/types/types';
|
|
|
|
const FIXED_TRACK_COLUMN_WIDTHS: Partial<Record<TableColumn, number>> = {
|
|
[TableColumn.ACTIONS]: 32,
|
|
[TableColumn.BIT_DEPTH]: 80,
|
|
[TableColumn.BIT_RATE]: 80,
|
|
[TableColumn.BPM]: 56,
|
|
[TableColumn.CHANNELS]: 80,
|
|
[TableColumn.CODEC]: 80,
|
|
[TableColumn.DATE_ADDED]: 128,
|
|
[TableColumn.DISC_NUMBER]: 36,
|
|
[TableColumn.RELEASE_DATE]: 128,
|
|
[TableColumn.SAMPLE_RATE]: 90,
|
|
[TableColumn.TRACK_NUMBER]: 56,
|
|
[TableColumn.USER_FAVORITE]: 32,
|
|
[TableColumn.USER_RATING]: 64,
|
|
[TableColumn.YEAR]: 56,
|
|
};
|
|
|
|
const HOVER_ONLY_COLUMNS: TableColumn[] = [
|
|
TableColumn.ACTIONS,
|
|
TableColumn.USER_FAVORITE,
|
|
TableColumn.USER_RATING,
|
|
];
|
|
|
|
const NO_HORIZONTAL_PADDING_COLUMNS: TableColumn[] = [
|
|
TableColumn.ACTIONS,
|
|
TableColumn.USER_FAVORITE,
|
|
TableColumn.USER_RATING,
|
|
];
|
|
|
|
export function getTrackColumnFixed(columnId: TableColumn): {
|
|
fixedWidth: number;
|
|
isFixedColumn: boolean;
|
|
} {
|
|
const width = FIXED_TRACK_COLUMN_WIDTHS[columnId];
|
|
return width !== undefined
|
|
? { fixedWidth: width, isFixedColumn: true }
|
|
: { fixedWidth: 0, isFixedColumn: false };
|
|
}
|
|
|
|
export function isNoHorizontalPaddingColumn(columnId: TableColumn): boolean {
|
|
return NO_HORIZONTAL_PADDING_COLUMNS.includes(columnId);
|
|
}
|
|
|
|
export function isTrackColumnHoverOnly(columnId: TableColumn): boolean {
|
|
return HOVER_ONLY_COLUMNS.includes(columnId);
|
|
}
|
|
|
|
export function shouldShowHoverOnlyColumnContent(
|
|
columnId: TableColumn,
|
|
isRowHovered: boolean,
|
|
song: { userFavorite?: boolean | null; userRating?: null | number },
|
|
): boolean {
|
|
if (!HOVER_ONLY_COLUMNS.includes(columnId)) {
|
|
return true;
|
|
}
|
|
|
|
return (
|
|
isRowHovered ||
|
|
(columnId === TableColumn.USER_FAVORITE && song.userFavorite !== false) ||
|
|
(columnId === TableColumn.USER_RATING && song.userRating != null)
|
|
);
|
|
}
|