mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-10 04:30:25 +02:00
add dynamic cell skeleton sizing
This commit is contained in:
@@ -5,12 +5,12 @@ import { generatePath, Link } from 'react-router';
|
|||||||
import styles from './album-artists-column.module.css';
|
import styles from './album-artists-column.module.css';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonVariable,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnContainer,
|
TableColumnContainer,
|
||||||
TableColumnTextContainer,
|
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { AppRoute } from '/@/renderer/router/routes';
|
import { AppRoute } from '/@/renderer/router/routes';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
import { Text } from '/@/shared/components/text/text';
|
import { Text } from '/@/shared/components/text/text';
|
||||||
import { RelatedAlbumArtist } from '/@/shared/types/domain-types';
|
import { RelatedAlbumArtist } from '/@/shared/types/domain-types';
|
||||||
|
|
||||||
@@ -51,11 +51,11 @@ const AlbumArtistsColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonVariable {...props} />;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const AlbumArtistsColumnMemo = memo(AlbumArtistsColumn);
|
export const AlbumArtistsColumnMemo = memo(AlbumArtistsColumn);
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ import { generatePath, Link } from 'react-router';
|
|||||||
import styles from './album-artists-column.module.css';
|
import styles from './album-artists-column.module.css';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonVariable,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnContainer,
|
TableColumnContainer,
|
||||||
TableColumnTextContainer,
|
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { AppRoute } from '/@/renderer/router/routes';
|
import { AppRoute } from '/@/renderer/router/routes';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
import { Text } from '/@/shared/components/text/text';
|
import { Text } from '/@/shared/components/text/text';
|
||||||
import { RelatedAlbumArtist } from '/@/shared/types/domain-types';
|
import { RelatedAlbumArtist } from '/@/shared/types/domain-types';
|
||||||
|
|
||||||
@@ -51,11 +51,11 @@ const ArtistsColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonVariable {...props} />;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const ArtistsColumnMemo = memo(ArtistsColumn);
|
export const ArtistsColumnMemo = memo(ArtistsColumn);
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonFixed,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnTextContainer,
|
TableColumnTextContainer,
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
|
|
||||||
export const CountColumn = (props: ItemTableListInnerColumn) => {
|
export const CountColumn = (props: ItemTableListInnerColumn) => {
|
||||||
const row: number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
const row: number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
||||||
@@ -15,9 +16,9 @@ export const CountColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonFixed {...props} />;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonFixed,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnTextContainer,
|
TableColumnTextContainer,
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { formatDateAbsolute, formatDateRelative } from '/@/renderer/utils/format';
|
import { formatDateAbsolute, formatDateRelative } from '/@/renderer/utils/format';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
import { Tooltip } from '/@/shared/components/tooltip/tooltip';
|
import { Tooltip } from '/@/shared/components/tooltip/tooltip';
|
||||||
|
|
||||||
export const DateColumn = (props: ItemTableListInnerColumn) => {
|
export const DateColumn = (props: ItemTableListInnerColumn) => {
|
||||||
@@ -21,11 +22,11 @@ export const DateColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonFixed {...props} />;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const RelativeDateColumn = (props: ItemTableListInnerColumn) => {
|
export const RelativeDateColumn = (props: ItemTableListInnerColumn) => {
|
||||||
@@ -44,12 +45,8 @@ export const RelativeDateColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (row === null) {
|
if (row === null) {
|
||||||
return <TableColumnTextContainer {...props}> </TableColumnTextContainer>;
|
return <ColumnNullFallback {...props} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return <ColumnSkeletonFixed {...props} />;
|
||||||
<TableColumnTextContainer {...props}>
|
|
||||||
<Skeleton />
|
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonFixed,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnTextContainer,
|
TableColumnTextContainer,
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
|
|
||||||
export const DefaultColumn = (props: ItemTableListInnerColumn) => {
|
export const DefaultColumn = (props: ItemTableListInnerColumn) => {
|
||||||
const row: any | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
const row: any | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
||||||
@@ -13,13 +14,9 @@ export const DefaultColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
return <TableColumnTextContainer {...props}>{row}</TableColumnTextContainer>;
|
return <TableColumnTextContainer {...props}>{row}</TableColumnTextContainer>;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof row === 'undefined') {
|
if (row === null) {
|
||||||
return (
|
return <ColumnNullFallback {...props} />;
|
||||||
<TableColumnTextContainer {...props}>
|
|
||||||
<Skeleton />
|
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return <TableColumnTextContainer {...props}> </TableColumnTextContainer>;
|
return <ColumnSkeletonFixed {...props} />;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
import formatDuration from 'format-duration';
|
import formatDuration from 'format-duration';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonFixed,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnTextContainer,
|
TableColumnTextContainer,
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
|
|
||||||
export const DurationColumn = (props: ItemTableListInnerColumn) => {
|
export const DurationColumn = (props: ItemTableListInnerColumn) => {
|
||||||
const row: number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
const row: number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
||||||
@@ -17,9 +18,9 @@ export const DurationColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonFixed {...props} />;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,14 +4,14 @@ import { generatePath, Link } from 'react-router';
|
|||||||
import styles from './genre-badge-column.module.css';
|
import styles from './genre-badge-column.module.css';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonVariable,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnContainer,
|
TableColumnContainer,
|
||||||
TableColumnTextContainer,
|
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { AppRoute } from '/@/renderer/router/routes';
|
import { AppRoute } from '/@/renderer/router/routes';
|
||||||
import { Badge } from '/@/shared/components/badge/badge';
|
import { Badge } from '/@/shared/components/badge/badge';
|
||||||
import { Group } from '/@/shared/components/group/group';
|
import { Group } from '/@/shared/components/group/group';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
import { Genre } from '/@/shared/types/domain-types';
|
import { Genre } from '/@/shared/types/domain-types';
|
||||||
import { stringToColor } from '/@/shared/utils/string-to-color';
|
import { stringToColor } from '/@/shared/utils/string-to-color';
|
||||||
|
|
||||||
@@ -53,11 +53,11 @@ const GenreBadgeColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonVariable {...props} />;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const GenreColumnMemo = memo(GenreBadgeColumn);
|
export const GenreColumnMemo = memo(GenreBadgeColumn);
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ import { generatePath, Link } from 'react-router';
|
|||||||
import styles from './genre-column.module.css';
|
import styles from './genre-column.module.css';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonVariable,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnContainer,
|
TableColumnContainer,
|
||||||
TableColumnTextContainer,
|
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { AppRoute } from '/@/renderer/router/routes';
|
import { AppRoute } from '/@/renderer/router/routes';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
import { Text } from '/@/shared/components/text/text';
|
import { Text } from '/@/shared/components/text/text';
|
||||||
import { Genre } from '/@/shared/types/domain-types';
|
import { Genre } from '/@/shared/types/domain-types';
|
||||||
|
|
||||||
@@ -51,11 +51,11 @@ const GenreColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonVariable {...props} />;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const GenreColumnMemo = memo(GenreColumn);
|
export const GenreColumnMemo = memo(GenreColumn);
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export const ImageColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<TableColumnContainer {...props}>
|
<TableColumnContainer {...props}>
|
||||||
<Skeleton containerClassName={styles.skeleton} />
|
<Skeleton containerClassName={styles.skeleton} enableAnimation />
|
||||||
</TableColumnContainer>
|
</TableColumnContainer>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonFixed,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnTextContainer,
|
TableColumnTextContainer,
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
|
|
||||||
export const NumericColumn = (props: ItemTableListInnerColumn) => {
|
export const NumericColumn = (props: ItemTableListInnerColumn) => {
|
||||||
const row: number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
const row: number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
||||||
@@ -13,9 +14,9 @@ export const NumericColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
return <TableColumnTextContainer {...props}>{row}</TableColumnTextContainer>;
|
return <TableColumnTextContainer {...props}>{row}</TableColumnTextContainer>;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonFixed {...props} />;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonVariable,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnTextContainer,
|
TableColumnTextContainer,
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
|
|
||||||
export const PathColumn = (props: ItemTableListInnerColumn) => {
|
export const PathColumn = (props: ItemTableListInnerColumn) => {
|
||||||
const row: string | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
const row: string | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
||||||
@@ -16,9 +17,9 @@ export const PathColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
return <TableColumnTextContainer {...props}>{displayPath}</TableColumnTextContainer>;
|
return <TableColumnTextContainer {...props}>{displayPath}</TableColumnTextContainer>;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonVariable {...props} />;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonFixed,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnTextContainer,
|
TableColumnTextContainer,
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { formatSizeString } from '/@/renderer/utils/format';
|
import { formatSizeString } from '/@/renderer/utils/format';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
|
|
||||||
export const SizeColumn = (props: ItemTableListInnerColumn) => {
|
export const SizeColumn = (props: ItemTableListInnerColumn) => {
|
||||||
const row: number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
const row: number | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
||||||
@@ -16,9 +17,9 @@ export const SizeColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonFixed {...props} />;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,10 +3,11 @@ import clsx from 'clsx';
|
|||||||
import styles from './text-column.module.css';
|
import styles from './text-column.module.css';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonVariable,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnTextContainer,
|
TableColumnTextContainer,
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
|
|
||||||
export const TextColumn = (props: ItemTableListInnerColumn) => {
|
export const TextColumn = (props: ItemTableListInnerColumn) => {
|
||||||
const row: string | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
const row: string | undefined = (props.data as (any | undefined)[])[props.rowIndex]?.[
|
||||||
@@ -27,9 +28,9 @@ export const TextColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonVariable {...props} />;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,11 +5,11 @@ import styles from './title-column.module.css';
|
|||||||
|
|
||||||
import { getTitlePath } from '/@/renderer/components/item-list/helpers/get-title-path';
|
import { getTitlePath } from '/@/renderer/components/item-list/helpers/get-title-path';
|
||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonVariable,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnContainer,
|
TableColumnContainer,
|
||||||
TableColumnTextContainer,
|
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
import { Text } from '/@/shared/components/text/text';
|
import { Text } from '/@/shared/components/text/text';
|
||||||
|
|
||||||
export const TitleColumn = (props: ItemTableListInnerColumn) => {
|
export const TitleColumn = (props: ItemTableListInnerColumn) => {
|
||||||
@@ -45,9 +45,9 @@ export const TitleColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonVariable {...props} />;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,13 +5,13 @@ import styles from './title-combined-column.module.css';
|
|||||||
|
|
||||||
import { getTitlePath } from '/@/renderer/components/item-list/helpers/get-title-path';
|
import { getTitlePath } from '/@/renderer/components/item-list/helpers/get-title-path';
|
||||||
import {
|
import {
|
||||||
|
ColumnNullFallback,
|
||||||
|
ColumnSkeletonVariable,
|
||||||
ItemTableListInnerColumn,
|
ItemTableListInnerColumn,
|
||||||
TableColumnContainer,
|
TableColumnContainer,
|
||||||
TableColumnTextContainer,
|
|
||||||
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
} from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||||
import { AppRoute } from '/@/renderer/router/routes';
|
import { AppRoute } from '/@/renderer/router/routes';
|
||||||
import { Image } from '/@/shared/components/image/image';
|
import { Image } from '/@/shared/components/image/image';
|
||||||
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
|
||||||
import { Text } from '/@/shared/components/text/text';
|
import { Text } from '/@/shared/components/text/text';
|
||||||
import { RelatedAlbumArtist } from '/@/shared/types/domain-types';
|
import { RelatedAlbumArtist } from '/@/shared/types/domain-types';
|
||||||
|
|
||||||
@@ -68,9 +68,9 @@ export const TitleCombinedColumn = (props: ItemTableListInnerColumn) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
if (row === null) {
|
||||||
<TableColumnTextContainer {...props}>
|
return <ColumnNullFallback {...props} />;
|
||||||
<Skeleton />
|
}
|
||||||
</TableColumnTextContainer>
|
|
||||||
);
|
return <ColumnSkeletonVariable {...props} />;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import { TitleCombinedColumn } from '/@/renderer/components/item-list/item-table
|
|||||||
import { TableItemProps } from '/@/renderer/components/item-list/item-table-list/item-table-list';
|
import { TableItemProps } from '/@/renderer/components/item-list/item-table-list/item-table-list';
|
||||||
import { ItemControls } from '/@/renderer/components/item-list/types';
|
import { ItemControls } from '/@/renderer/components/item-list/types';
|
||||||
import { Icon } from '/@/shared/components/icon/icon';
|
import { Icon } from '/@/shared/components/icon/icon';
|
||||||
|
import { Skeleton } from '/@/shared/components/skeleton/skeleton';
|
||||||
import { Text } from '/@/shared/components/text/text';
|
import { Text } from '/@/shared/components/text/text';
|
||||||
import { TableColumn } from '/@/shared/types/types';
|
import { TableColumn } from '/@/shared/types/types';
|
||||||
|
|
||||||
@@ -446,3 +447,23 @@ const columnLabelMap: Record<TableColumn, ReactNode | string> = {
|
|||||||
}) as string,
|
}) as string,
|
||||||
[TableColumn.YEAR]: i18n.t('table.column.releaseYear', { postProcess: 'upperCase' }) as string,
|
[TableColumn.YEAR]: i18n.t('table.column.releaseYear', { postProcess: 'upperCase' }) as string,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const ColumnNullFallback = (props: ItemTableListInnerColumn) => {
|
||||||
|
return <TableColumnTextContainer {...props}> </TableColumnTextContainer>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const ColumnSkeletonVariable = (props: ItemTableListInnerColumn) => {
|
||||||
|
return (
|
||||||
|
<TableColumnContainer {...props}>
|
||||||
|
<Skeleton height="1rem" width={`${props.rowIndex % 2 === 0 ? '80%' : '60%'}`} />
|
||||||
|
</TableColumnContainer>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const ColumnSkeletonFixed = (props: ItemTableListInnerColumn) => {
|
||||||
|
return (
|
||||||
|
<TableColumnContainer {...props}>
|
||||||
|
<Skeleton height="1rem" width="80%" />
|
||||||
|
</TableColumnContainer>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user