Release Status in MangaCard Badge

This commit is contained in:
2025-09-05 00:47:12 +02:00
parent 9aca50aa15
commit 26ff7a7cea

View File

@@ -1,15 +1,8 @@
import { import {Badge, Card, CardContent, CardCover, ColorPaletteProp, Skeleton, Typography,} from '@mui/joy'
Badge,
Card,
CardContent,
CardCover,
Skeleton,
Typography,
} from '@mui/joy'
import {EventHandler, ReactNode, useContext} from 'react' import {EventHandler, ReactNode, useContext} from 'react'
import './MangaCard.css' import './MangaCard.css'
import MangaConnectorIcon from './MangaConnectorIcon.tsx' import MangaConnectorIcon from './MangaConnectorIcon.tsx'
import { Manga, MinimalManga } from '../../api/data-contracts.ts' import {Manga, MangaReleaseStatus, MinimalManga} from '../../api/data-contracts.ts'
import {ApiContext} from '../../contexts/ApiContext.tsx' import {ApiContext} from '../../contexts/ApiContext.tsx'
export default function MangaCard(props: MangaCardProps): ReactNode { export default function MangaCard(props: MangaCardProps): ReactNode {
@@ -23,6 +16,7 @@ export default function MangaCard(props: MangaCardProps): ReactNode {
/> />
))} ))}
className={'manga-card-badge'} className={'manga-card-badge'}
color={releaseColor(props.manga?.releaseStatus??MangaReleaseStatus.Unreleased)}
> >
<Card className={'manga-card'} onClick={props.onClick}> <Card className={'manga-card'} onClick={props.onClick}>
<CardCover className={'manga-card-cover'}> <CardCover className={'manga-card-cover'}>
@@ -55,3 +49,14 @@ export interface MangaCardProps {
const stringWithRandomLength = (): string => { const stringWithRandomLength = (): string => {
return 'wow' return 'wow'
} }
const releaseColor = (status : MangaReleaseStatus) : ColorPaletteProp => {
switch (status) {
case MangaReleaseStatus.Cancelled: return 'danger';
case MangaReleaseStatus.Completed: return 'success';
case MangaReleaseStatus.Unreleased: return 'neutral';
case MangaReleaseStatus.Continuing: return 'primary';
case MangaReleaseStatus.OnHiatus: return 'neutral';
default: return 'neutral';
}
}