Add FetchedDataTitleCard and update MusicTitleCard

pull/3800/merge^2
Anatole Sot 4 months ago
parent 64cc39bae4
commit f6dcf28887

@ -0,0 +1,64 @@
import TitleCard from '@app/components/TitleCard';
import { MediaType } from '@server/constants/media';
import type {
ArtistResult,
RecordingResult,
ReleaseGroupResult,
ReleaseResult,
WorkResult,
} from '@server/models/Search';
export interface FetchedDataTitleCardProps {
data:
| ArtistResult
| ReleaseGroupResult
| ReleaseResult
| WorkResult
| RecordingResult;
canExpand?: boolean;
}
const FetchedDataTitleCard = ({
canExpand,
data,
}: FetchedDataTitleCardProps) => {
if (data.mediaType === 'artist') {
const newData = data as ArtistResult;
return (
<TitleCard
id={data.id}
image={data.posterPath}
status={newData.mediaInfo?.status}
title={newData.name}
mediaType={data.mediaType}
canExpand={canExpand}
/>
);
} else if (data.mediaType === 'release-group') {
return (
<TitleCard
id={data.id}
image={data.posterPath}
status={data.mediaInfo?.status}
title={data.title}
mediaType={data.mediaType}
canExpand={canExpand}
type={data.type ?? MediaType.MUSIC}
/>
);
} else if (data.mediaType === 'release') {
return (
<TitleCard
id={data.id}
image={data.posterPath}
status={data.mediaInfo?.status}
title={data.title}
mediaType={data.mediaType}
canExpand={canExpand}
/>
);
}
return null;
};
export default FetchedDataTitleCard;

@ -1,6 +1,6 @@
import TitleCard from '@app/components/TitleCard'; import TitleCard from '@app/components/TitleCard';
import { Permission, useUser } from '@app/hooks/useUser'; import { Permission, useUser } from '@app/hooks/useUser';
import { SecondaryType } from '@server/constants/media'; import { MediaType, SecondaryType } from '@server/constants/media';
import type { import type {
ArtistResult, ArtistResult,
RecordingResult, RecordingResult,
@ -16,6 +16,13 @@ export interface MusicBrainTitleCardProps {
mbId: string; mbId: string;
type?: SecondaryType; type?: SecondaryType;
canExpand?: boolean; canExpand?: boolean;
displayType?: string;
preData?:
| ArtistResult
| ReleaseGroupResult
| ReleaseResult
| WorkResult
| RecordingResult;
} }
const MusicTitleCard = ({ const MusicTitleCard = ({
@ -23,6 +30,7 @@ const MusicTitleCard = ({
mbId, mbId,
canExpand, canExpand,
type = SecondaryType.ARTIST, type = SecondaryType.ARTIST,
displayType,
}: MusicBrainTitleCardProps) => { }: MusicBrainTitleCardProps) => {
const { hasPermission } = useUser(); const { hasPermission } = useUser();
@ -76,6 +84,7 @@ const MusicTitleCard = ({
title={data.title} title={data.title}
mediaType={data.mediaType} mediaType={data.mediaType}
canExpand={canExpand} canExpand={canExpand}
type={displayType ?? MediaType.MUSIC}
/> />
); );
} }

Loading…
Cancel
Save