Files
Homarr/src/widgets/media-server/NowPlayingDisplay.tsx

54 lines
1.4 KiB
TypeScript
Raw Normal View History

2023-02-18 15:02:39 +01:00
import { Flex, Stack, Text } from '@mantine/core';
2023-02-15 22:12:49 +01:00
import {
IconDeviceTv,
IconHeadphones,
IconQuestionMark,
IconVideo,
TablerIcon,
} from '@tabler/icons';
import { useTranslation } from 'next-i18next';
import { GenericSessionInfo } from '../../types/api/media-server/session-info';
export const NowPlayingDisplay = ({ session }: { session: GenericSessionInfo }) => {
const { t } = useTranslation();
if (!session.currentlyPlaying) {
return null;
}
const Icon = (): TablerIcon => {
switch (session.currentlyPlaying?.type) {
case 'audio':
return IconHeadphones;
case 'tv':
return IconDeviceTv;
case 'video':
return IconVideo;
default:
return IconQuestionMark;
}
};
const Test = Icon();
return (
<Flex wrap="nowrap" gap="sm" align="center">
<Test size={16} />
<Stack spacing={0} w={200}>
2023-02-15 22:12:49 +01:00
<Text lineClamp={1}>{session.currentlyPlaying.name}</Text>
{session.currentlyPlaying.albumName ? (
2023-02-18 15:02:39 +01:00
<Text lineClamp={1} color="dimmed" size="xs">
{session.currentlyPlaying.albumName}
</Text>
2023-02-15 22:12:49 +01:00
) : (
session.currentlyPlaying.seasonName && (
<Text lineClamp={2} color="dimmed" size="xs">
{session.currentlyPlaying.seasonName} - {session.currentlyPlaying.episodeName}
2023-02-18 15:02:39 +01:00
</Text>
2023-02-15 22:12:49 +01:00
)
)}
</Stack>
</Flex>
);
};