mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-10 04:30:25 +02:00
fix formatting in playlist duration (#1382)
This commit is contained in:
@@ -58,12 +58,16 @@
|
|||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
gap: var(--theme-spacing-md);
|
gap: var(--theme-spacing-md);
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
min-width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.metadata-group-item {
|
.metadata-group-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-shrink: 0;
|
||||||
|
flex-wrap: nowrap;
|
||||||
gap: var(--theme-spacing-xs);
|
gap: var(--theme-spacing-xs);
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
|
|||||||
@@ -184,14 +184,14 @@ const PlaylistRowButton = memo(({ item, name, onContextMenu, to }: PlaylistRowBu
|
|||||||
</Text>
|
</Text>
|
||||||
<div className={styles.metadataGroup}>
|
<div className={styles.metadataGroup}>
|
||||||
<div className={styles.metadataGroupItem}>
|
<div className={styles.metadataGroupItem}>
|
||||||
<Icon color="muted" icon="track" size="sm" />
|
<Icon color="muted" icon="track" size="xs" />
|
||||||
<Text isMuted size="sm">
|
<Text isMuted size="xs">
|
||||||
{item.songCount || 0}
|
{item.songCount || 0}
|
||||||
</Text>
|
</Text>
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.metadataGroupItem}>
|
<div className={styles.metadataGroupItem}>
|
||||||
<Icon color="muted" icon="duration" size="sm" />
|
<Icon color="muted" icon="duration" size="xs" />
|
||||||
<Text isMuted size="sm">
|
<Text isMuted size="xs">
|
||||||
{formatDurationStringShort(item.duration ?? 0)}
|
{formatDurationStringShort(item.duration ?? 0)}
|
||||||
</Text>
|
</Text>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -57,7 +57,16 @@ export const formatDurationString = (duration: number) => {
|
|||||||
|
|
||||||
export const formatDurationStringShort = (duration: number) => {
|
export const formatDurationStringShort = (duration: number) => {
|
||||||
const rawDuration = formatDuration(duration).split(':');
|
const rawDuration = formatDuration(duration).split(':');
|
||||||
return `${rawDuration[0]}h ${rawDuration[1]}m`;
|
|
||||||
|
if (rawDuration.length === 2) {
|
||||||
|
// Less than 1 hour: show "0h" and minutes
|
||||||
|
return `0h ${rawDuration[0]}m`;
|
||||||
|
} else if (rawDuration.length >= 3) {
|
||||||
|
// 1 hour or more: show hours and minutes
|
||||||
|
return `${rawDuration[0]}h ${rawDuration[1]}m`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return '0h 0m';
|
||||||
};
|
};
|
||||||
|
|
||||||
export const formatRating = (item: Album | AlbumArtist | Song) =>
|
export const formatRating = (item: Album | AlbumArtist | Song) =>
|
||||||
|
|||||||
Reference in New Issue
Block a user