diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 00e744d0d..990c6cc47 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -820,7 +820,8 @@ "size": "$t(common.size)", "songCount": "$t(entity.track_other)", "title": "title", - "trackNumber": "track" + "trackNumber": "track", + "owner": "owner" }, "config": { "general": { diff --git a/src/renderer/components/item-list/item-table-list/columns/actions-column.tsx b/src/renderer/components/item-list/item-table-list/columns/actions-column.tsx new file mode 100644 index 000000000..73b1fbde2 --- /dev/null +++ b/src/renderer/components/item-list/item-table-list/columns/actions-column.tsx @@ -0,0 +1,19 @@ +import { + ItemTableListInnerColumn, + TableColumnContainer, +} from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; +import { Icon } from '/@/shared/components/icon/icon'; + +export const ActionsColumn = (props: ItemTableListInnerColumn) => { + const row: any = (props.data as (any | undefined)[])[props.rowIndex]; + + if (row !== undefined) { + return ( + + + + ); + } + + return  ; +}; diff --git a/src/renderer/components/item-list/item-table-list/columns/count-column.tsx b/src/renderer/components/item-list/item-table-list/columns/count-column.tsx new file mode 100644 index 000000000..d93871b15 --- /dev/null +++ b/src/renderer/components/item-list/item-table-list/columns/count-column.tsx @@ -0,0 +1,23 @@ +import { + ItemTableListInnerColumn, + TableColumnTextContainer, +} from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; +import { Skeleton } from '/@/shared/components/skeleton/skeleton'; + +export const CountColumn = (props: ItemTableListInnerColumn) => { + const row: number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[ + props.columns[props.columnIndex].id + ]; + + if (typeof row === 'number') { + return ( + {row.toLocaleString()} + ); + } + + return ( + + + + ); +}; diff --git a/src/renderer/components/item-list/item-table-list/columns/date-column.tsx b/src/renderer/components/item-list/item-table-list/columns/date-column.tsx new file mode 100644 index 000000000..0f3b933d7 --- /dev/null +++ b/src/renderer/components/item-list/item-table-list/columns/date-column.tsx @@ -0,0 +1,50 @@ +import { + ItemTableListInnerColumn, + TableColumnTextContainer, +} from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; +import { formatDateAbsolute, formatDateRelative } from '/@/renderer/utils/format'; +import { Skeleton } from '/@/shared/components/skeleton/skeleton'; + +export const DateColumn = (props: ItemTableListInnerColumn) => { + const row: string | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[ + props.columns[props.columnIndex].id + ]; + + if (typeof row === 'string' && row) { + return ( + + {formatDateAbsolute(row)} + + ); + } + + return ( + + + + ); +}; + +export const RelativeDateColumn = (props: ItemTableListInnerColumn) => { + const row: string | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[ + props.columns[props.columnIndex].id + ]; + + if (typeof row === 'string') { + return ( + + {formatDateRelative(row)} + + ); + } + + if (row === null) { + return  ; + } + + return ( + + + + ); +}; diff --git a/src/renderer/components/item-list/item-table-list/columns/default-column.tsx b/src/renderer/components/item-list/item-table-list/columns/default-column.tsx index 7c3d31d53..158a41350 100644 --- a/src/renderer/components/item-list/item-table-list/columns/default-column.tsx +++ b/src/renderer/components/item-list/item-table-list/columns/default-column.tsx @@ -1,6 +1,6 @@ import { ItemTableListInnerColumn, - TableColumnContainer, + TableColumnTextContainer, } from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; import { Skeleton } from '/@/shared/components/skeleton/skeleton'; @@ -10,16 +10,16 @@ export const DefaultColumn = (props: ItemTableListInnerColumn) => { ]; if (typeof row === 'string') { - return {row}; + return {row}; } if (typeof row === 'undefined') { return ( - + - + ); } - return null; + return  ; }; diff --git a/src/renderer/components/item-list/item-table-list/columns/duration-column.tsx b/src/renderer/components/item-list/item-table-list/columns/duration-column.tsx index a663834c5..a0e807b2f 100644 --- a/src/renderer/components/item-list/item-table-list/columns/duration-column.tsx +++ b/src/renderer/components/item-list/item-table-list/columns/duration-column.tsx @@ -2,7 +2,7 @@ import formatDuration from 'format-duration'; import { ItemTableListInnerColumn, - TableColumnContainer, + TableColumnTextContainer, } from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; import { Skeleton } from '/@/shared/components/skeleton/skeleton'; @@ -12,12 +12,14 @@ export const DurationColumn = (props: ItemTableListInnerColumn) => { ]; if (typeof row === 'number') { - return {formatDuration(row)}; + return ( + {formatDuration(row)} + ); } return ( - + - + ); }; diff --git a/src/renderer/components/item-list/item-table-list/columns/favorite-column.tsx b/src/renderer/components/item-list/item-table-list/columns/favorite-column.tsx new file mode 100644 index 000000000..6bf6fd2c4 --- /dev/null +++ b/src/renderer/components/item-list/item-table-list/columns/favorite-column.tsx @@ -0,0 +1,21 @@ +import { + ItemTableListInnerColumn, + TableColumnContainer, +} from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; +import { Icon } from '/@/shared/components/icon/icon'; + +export const FavoriteColumn = (props: ItemTableListInnerColumn) => { + const row: boolean | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[ + props.columns[props.columnIndex].id + ]; + + if (typeof row === 'boolean') { + return ( + + + + ); + } + + return  ; +}; diff --git a/src/renderer/components/item-list/item-table-list/columns/genre-column.tsx b/src/renderer/components/item-list/item-table-list/columns/genre-column.tsx index 86ebea4c2..3c8e65c49 100644 --- a/src/renderer/components/item-list/item-table-list/columns/genre-column.tsx +++ b/src/renderer/components/item-list/item-table-list/columns/genre-column.tsx @@ -1,21 +1,47 @@ import { ItemTableListInnerColumn, TableColumnContainer, + TableColumnTextContainer, } from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; +import { Badge } from '/@/shared/components/badge/badge'; +import { Group } from '/@/shared/components/group/group'; +import { Skeleton } from '/@/shared/components/skeleton/skeleton'; import { Genre } from '/@/shared/types/domain-types'; +import { stringToColor } from '/@/shared/utils/string-to-color'; export const GenreColumn = (props: ItemTableListInnerColumn) => { const row: Genre[] | undefined = (props.data as (Genre[] | undefined)[])[props.rowIndex]?.[ props.columns[props.columnIndex].id ]; + const genres = (row || []).map((genre) => { + const { color, isLight } = stringToColor(genre.name); + return { ...genre, color, isLight }; + }); + if (Array.isArray(row)) { return ( - {row.map((genre) => genre?.name).join(', ')} + + {genres.map((genre) => ( + + {genre.name} + + ))} + ); } - return null; + return ( + + + + ); }; diff --git a/src/renderer/components/item-list/item-table-list/columns/image-column.tsx b/src/renderer/components/item-list/item-table-list/columns/image-column.tsx index 8cec634ba..94e376a33 100644 --- a/src/renderer/components/item-list/item-table-list/columns/image-column.tsx +++ b/src/renderer/components/item-list/item-table-list/columns/image-column.tsx @@ -2,7 +2,7 @@ import styles from './image-column.module.css'; import { ItemTableListInnerColumn, - TableColumnContainer, + TableColumnTextContainer, } from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; import { Image } from '/@/shared/components/image/image'; import { Skeleton } from '/@/shared/components/skeleton/skeleton'; @@ -14,15 +14,15 @@ export const ImageColumn = (props: ItemTableListInnerColumn) => { if (typeof row === 'string') { return ( - + - + ); } return ( - + - + ); }; diff --git a/src/renderer/components/item-list/item-table-list/columns/name-column.tsx b/src/renderer/components/item-list/item-table-list/columns/name-column.tsx index 99fef4e3c..c8e0bf9eb 100644 --- a/src/renderer/components/item-list/item-table-list/columns/name-column.tsx +++ b/src/renderer/components/item-list/item-table-list/columns/name-column.tsx @@ -1,6 +1,6 @@ import { ItemTableListInnerColumn, - TableColumnContainer, + TableColumnTextContainer, } from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; import { Skeleton } from '/@/shared/components/skeleton/skeleton'; @@ -10,12 +10,12 @@ export const NameColumn = (props: ItemTableListInnerColumn) => { ]; if (typeof row === 'string') { - return {row}; + return {row}; } return ( - + - + ); }; diff --git a/src/renderer/components/item-list/item-table-list/columns/numeric-column.tsx b/src/renderer/components/item-list/item-table-list/columns/numeric-column.tsx new file mode 100644 index 000000000..84cc8c21d --- /dev/null +++ b/src/renderer/components/item-list/item-table-list/columns/numeric-column.tsx @@ -0,0 +1,21 @@ +import { + ItemTableListInnerColumn, + TableColumnTextContainer, +} from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; +import { Skeleton } from '/@/shared/components/skeleton/skeleton'; + +export const NumericColumn = (props: ItemTableListInnerColumn) => { + const row: number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[ + props.columns[props.columnIndex].id + ]; + + if (typeof row === 'number') { + return {row}; + } + + return ( + + + + ); +}; diff --git a/src/renderer/components/item-list/item-table-list/columns/path-column.tsx b/src/renderer/components/item-list/item-table-list/columns/path-column.tsx new file mode 100644 index 000000000..ec4ba0b0c --- /dev/null +++ b/src/renderer/components/item-list/item-table-list/columns/path-column.tsx @@ -0,0 +1,24 @@ +import { + ItemTableListInnerColumn, + TableColumnTextContainer, +} from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; +import { Skeleton } from '/@/shared/components/skeleton/skeleton'; + +export const PathColumn = (props: ItemTableListInnerColumn) => { + const row: string | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[ + props.columns[props.columnIndex].id + ]; + + if (typeof row === 'string' && row) { + const maxLength = 50; + const displayPath = row.length > maxLength ? `...${row.slice(-maxLength + 3)}` : row; + + return {displayPath}; + } + + return ( + + + + ); +}; diff --git a/src/renderer/components/item-list/item-table-list/columns/rating-column.tsx b/src/renderer/components/item-list/item-table-list/columns/rating-column.tsx new file mode 100644 index 000000000..5074a1f49 --- /dev/null +++ b/src/renderer/components/item-list/item-table-list/columns/rating-column.tsx @@ -0,0 +1,21 @@ +import { + ItemTableListInnerColumn, + TableColumnContainer, +} from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; +import { Rating } from '/@/shared/components/rating/rating'; + +export const RatingColumn = (props: ItemTableListInnerColumn) => { + const row: null | number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[ + props.columns[props.columnIndex].id + ]; + + if (typeof row === 'number' || row === null) { + return ( + + + + ); + } + + return  ; +}; diff --git a/src/renderer/components/item-list/item-table-list/columns/row-index-column.tsx b/src/renderer/components/item-list/item-table-list/columns/row-index-column.tsx index 4eda35446..40832ad5e 100644 --- a/src/renderer/components/item-list/item-table-list/columns/row-index-column.tsx +++ b/src/renderer/components/item-list/item-table-list/columns/row-index-column.tsx @@ -1,8 +1,8 @@ import { ItemTableListInnerColumn, - TableColumnContainer, + TableColumnTextContainer, } from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; export const RowIndexColumn = (props: ItemTableListInnerColumn) => { - return {props.rowIndex + 1}; + return {props.rowIndex + 1}; }; diff --git a/src/renderer/components/item-list/item-table-list/columns/size-column.tsx b/src/renderer/components/item-list/item-table-list/columns/size-column.tsx new file mode 100644 index 000000000..7f10ca516 --- /dev/null +++ b/src/renderer/components/item-list/item-table-list/columns/size-column.tsx @@ -0,0 +1,24 @@ +import { + ItemTableListInnerColumn, + TableColumnTextContainer, +} from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; +import { formatSizeString } from '/@/renderer/utils/format'; +import { Skeleton } from '/@/shared/components/skeleton/skeleton'; + +export const SizeColumn = (props: ItemTableListInnerColumn) => { + const row: number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[ + props.columns[props.columnIndex].id + ]; + + if (typeof row === 'number') { + return ( + {formatSizeString(row)} + ); + } + + return ( + + + + ); +}; diff --git a/src/renderer/components/item-list/item-table-list/columns/text-column.tsx b/src/renderer/components/item-list/item-table-list/columns/text-column.tsx new file mode 100644 index 000000000..9d31656a3 --- /dev/null +++ b/src/renderer/components/item-list/item-table-list/columns/text-column.tsx @@ -0,0 +1,24 @@ +import { + ItemTableListInnerColumn, + TableColumnTextContainer, +} from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; +import { Skeleton } from '/@/shared/components/skeleton/skeleton'; + +export const TextColumn = (props: ItemTableListInnerColumn) => { + const row: string | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[ + props.columns[props.columnIndex].id + ]; + + if (typeof row === 'string' && row) { + const maxLength = 100; + const displayText = row.length > maxLength ? `${row.slice(0, maxLength)}...` : row; + + return {displayText}; + } + + return ( + + + + ); +}; diff --git a/src/renderer/components/item-list/item-table-list/item-table-list-column-header.tsx b/src/renderer/components/item-list/item-table-list/item-table-list-column-header.tsx new file mode 100644 index 000000000..fa362bf19 --- /dev/null +++ b/src/renderer/components/item-list/item-table-list/item-table-list-column-header.tsx @@ -0,0 +1,15 @@ +import clsx from 'clsx'; + +import { ItemTableListColumn } from '/@/renderer/components/item-list/item-table-list/item-table-list-column'; +import { TableColumn } from '/@/shared/types/types'; + +export const TableColumnHeader = ( + props: ItemTableListColumn & { + children: React.ReactNode; + className?: string; + containerClassName?: string; + type: TableColumn; + }, +) => { + return
{props.children}
; +}; diff --git a/src/renderer/components/item-list/item-table-list/item-table-list-column.module.css b/src/renderer/components/item-list/item-table-list/item-table-list-column.module.css index dbe352067..b903f49e3 100644 --- a/src/renderer/components/item-list/item-table-list/item-table-list-column.module.css +++ b/src/renderer/components/item-list/item-table-list/item-table-list-column.module.css @@ -6,6 +6,19 @@ padding: var(--theme-spacing-xs); } +.container.center { + align-items: center; + text-align: center; +} + +.container.left { + text-align: left; +} + +.container.right { + text-align: right; +} + .content { display: -webkit-box; overflow: hidden; @@ -19,3 +32,23 @@ .container.compact { padding: var(--theme-spacing-xs); } + +.header-container { + background: none; +} + +.header-content { + display: flex; +} + +.header-content.center { + justify-content: center; +} + +.header-content.left { + justify-content: flex-start; +} + +.header-content.right { + justify-content: flex-end; +} diff --git a/src/renderer/components/item-list/item-table-list/item-table-list-column.tsx b/src/renderer/components/item-list/item-table-list/item-table-list-column.tsx index 8e66281f1..927b08628 100644 --- a/src/renderer/components/item-list/item-table-list/item-table-list-column.tsx +++ b/src/renderer/components/item-list/item-table-list/item-table-list-column.tsx @@ -1,14 +1,29 @@ import clsx from 'clsx'; +import React, { ReactNode } from 'react'; import { CellComponentProps } from 'react-window-v2'; import styles from './item-table-list-column.module.css'; +import i18n from '/@/i18n/i18n'; +import { ActionsColumn } from '/@/renderer/components/item-list/item-table-list/columns/actions-column'; +import { CountColumn } from '/@/renderer/components/item-list/item-table-list/columns/count-column'; +import { + DateColumn, + RelativeDateColumn, +} from '/@/renderer/components/item-list/item-table-list/columns/date-column'; import { DefaultColumn } from '/@/renderer/components/item-list/item-table-list/columns/default-column'; import { DurationColumn } from '/@/renderer/components/item-list/item-table-list/columns/duration-column'; +import { FavoriteColumn } from '/@/renderer/components/item-list/item-table-list/columns/favorite-column'; import { GenreColumn } from '/@/renderer/components/item-list/item-table-list/columns/genre-column'; import { ImageColumn } from '/@/renderer/components/item-list/item-table-list/columns/image-column'; +import { NumericColumn } from '/@/renderer/components/item-list/item-table-list/columns/numeric-column'; +import { PathColumn } from '/@/renderer/components/item-list/item-table-list/columns/path-column'; +import { RatingColumn } from '/@/renderer/components/item-list/item-table-list/columns/rating-column'; import { RowIndexColumn } from '/@/renderer/components/item-list/item-table-list/columns/row-index-column'; +import { SizeColumn } from '/@/renderer/components/item-list/item-table-list/columns/size-column'; +import { TextColumn } from '/@/renderer/components/item-list/item-table-list/columns/text-column'; import { CellProps } from '/@/renderer/components/item-list/item-table-list/item-table-list'; +import { Icon } from '/@/shared/components/icon/icon'; import { Text } from '/@/shared/components/text/text'; import { TableColumn } from '/@/shared/types/types'; @@ -21,23 +36,73 @@ export interface ItemTableListInnerColumn extends ItemTableListColumn { export const ItemTableListColumn = (props: ItemTableListColumn) => { const type = props.columns[props.columnIndex].id as TableColumn; + const isHeaderEnabled = !!props.enableHeader; + + if (isHeaderEnabled && props.rowIndex === 0) { + return ; + } + switch (type) { + case TableColumn.ACTIONS: + case TableColumn.SKIP: + return ; + + case TableColumn.ALBUM_COUNT: + case TableColumn.PLAY_COUNT: + case TableColumn.SONG_COUNT: + return ; + + case TableColumn.BIOGRAPHY: + case TableColumn.COMMENT: + return ; + + case TableColumn.BIT_RATE: + case TableColumn.BPM: + case TableColumn.CHANNELS: + case TableColumn.DISC_NUMBER: + case TableColumn.TRACK_NUMBER: + case TableColumn.YEAR: + return ; + + case TableColumn.DATE_ADDED: + case TableColumn.RELEASE_DATE: + return ; + case TableColumn.DURATION: return ; + case TableColumn.GENRE: return ; + case TableColumn.IMAGE: return ; + + case TableColumn.LAST_PLAYED: + return ; + + case TableColumn.PATH: + return ; + case TableColumn.ROW_INDEX: return ; + + case TableColumn.SIZE: + return ; + + case TableColumn.USER_FAVORITE: + return ; + + case TableColumn.USER_RATING: + return ; + default: return ; } }; -const NonMutedColumns = [TableColumn.TITLE]; +const NonMutedColumns = [TableColumn.TITLE, TableColumn.TITLE_COMBINED]; -export const TableColumnContainer = ( +export const TableColumnTextContainer = ( props: ItemTableListColumn & { children: React.ReactNode; className?: string; @@ -48,7 +113,10 @@ export const TableColumnContainer = ( return (
props.handleExpand(e, props.data[props.rowIndex], props.itemType)} style={props.style} @@ -63,3 +131,114 @@ export const TableColumnContainer = (
); }; + +export const TableColumnContainer = ( + props: ItemTableListColumn & { + children: React.ReactNode; + className?: string; + containerClassName?: string; + type: TableColumn; + }, +) => { + return ( +
props.handleExpand(e, props.data[props.rowIndex], props.itemType)} + style={props.style} + > + {props.children} +
+ ); +}; + +export const TableColumnHeaderContainer = ( + props: ItemTableListColumn & { + className?: string; + containerClassName?: string; + type: TableColumn; + }, +) => { + return ( +
+ + {columnLabelMap[props.type]} + +
+ ); +}; + +const columnLabelMap: Record = { + [TableColumn.ACTIONS]: '', + [TableColumn.ALBUM]: i18n.t('table.column.album', { postProcess: 'titleCase' }) as string, + [TableColumn.ALBUM_ARTIST]: i18n.t('table.column.albumArtist', { + postProcess: 'titleCase', + }) as string, + [TableColumn.ALBUM_COUNT]: i18n.t('table.column.albumCount', { + postProcess: 'titleCase', + }) as string, + [TableColumn.ARTIST]: i18n.t('table.column.artist', { postProcess: 'titleCase' }) as string, + [TableColumn.BIOGRAPHY]: i18n.t('table.column.biography', { + postProcess: 'titleCase', + }) as string, + [TableColumn.BIT_RATE]: i18n.t('table.column.bitrate', { postProcess: 'titleCase' }) as string, + [TableColumn.BPM]: i18n.t('table.column.bpm', { postProcess: 'titleCase' }) as string, + [TableColumn.CHANNELS]: i18n.t('table.column.channels', { postProcess: 'titleCase' }) as string, + [TableColumn.CODEC]: i18n.t('table.column.codec', { postProcess: 'titleCase' }) as string, + [TableColumn.COMMENT]: i18n.t('table.column.comment', { postProcess: 'titleCase' }) as string, + [TableColumn.DATE_ADDED]: i18n.t('table.column.dateAdded', { + postProcess: 'titleCase', + }) as string, + [TableColumn.DISC_NUMBER]: i18n.t('table.column.discNumber', { + postProcess: 'titleCase', + }) as string, + [TableColumn.DURATION]: , + [TableColumn.GENRE]: i18n.t('table.column.genre', { postProcess: 'titleCase' }) as string, + [TableColumn.ID]: 'ID', + [TableColumn.IMAGE]: '', + [TableColumn.LAST_PLAYED]: i18n.t('table.column.lastPlayed', { + postProcess: 'titleCase', + }) as string, + [TableColumn.OWNER]: i18n.t('table.column.owner', { postProcess: 'titleCase' }) as string, + [TableColumn.PATH]: i18n.t('table.column.path', { postProcess: 'titleCase' }) as string, + [TableColumn.PLAY_COUNT]: i18n.t('table.column.playCount', { + postProcess: 'titleCase', + }) as string, + [TableColumn.RELEASE_DATE]: i18n.t('table.column.releaseDate', { + postProcess: 'titleCase', + }) as string, + [TableColumn.ROW_INDEX]: '#', + [TableColumn.SIZE]: i18n.t('table.column.size', { postProcess: 'titleCase' }) as string, + [TableColumn.SKIP]: '', + [TableColumn.SONG_COUNT]: i18n.t('table.column.songCount', { + postProcess: 'titleCase', + }) as string, + [TableColumn.TITLE]: i18n.t('table.column.title', { postProcess: 'titleCase' }) as string, + [TableColumn.TITLE_COMBINED]: i18n.t('table.column.titleCombined', { + postProcess: 'titleCase', + }) as string, + [TableColumn.TRACK_NUMBER]: i18n.t('table.column.trackNumber', { + postProcess: 'titleCase', + }) as string, + [TableColumn.USER_FAVORITE]: i18n.t('table.column.favorite', { + postProcess: 'titleCase', + }) as string, + [TableColumn.USER_RATING]: i18n.t('table.column.rating', { + postProcess: 'titleCase', + }) as string, + [TableColumn.YEAR]: i18n.t('table.column.releaseYear', { postProcess: 'titleCase' }) as string, +}; diff --git a/src/renderer/components/item-list/item-table-list/item-table-list.module.css b/src/renderer/components/item-list/item-table-list/item-table-list.module.css index 5c0e60869..ba0fa4893 100644 --- a/src/renderer/components/item-list/item-table-list/item-table-list.module.css +++ b/src/renderer/components/item-list/item-table-list/item-table-list.module.css @@ -38,7 +38,7 @@ } .item-table-pinned-rows-grid-container.with-header { - background-color: var(--theme-colors-surface); + border-bottom: 2px solid var(--theme-colors-border); } .item-table-pinned-columns-grid-container { @@ -55,7 +55,7 @@ } .item-table-pinned-intersection-grid-container.with-header { - background-color: var(--theme-colors-surface); + border-bottom: 2px solid var(--theme-colors-border); } .item-table-pinned-columns-container { diff --git a/src/shared/types/types.ts b/src/shared/types/types.ts index eb918fdfd..e0d68b877 100644 --- a/src/shared/types/types.ts +++ b/src/shared/types/types.ts @@ -151,7 +151,7 @@ export enum TableColumn { BIT_RATE = 'bitRate', BPM = 'bpm', CHANNELS = 'channels', - CODEC = 'codec', + CODEC = 'container', COMMENT = 'comment', DATE_ADDED = 'dateAdded', DISC_NUMBER = 'discNumber',