Newer
Older
import { UserChallengeState } from 'enum/userChallenge.enum'
import { UserChallenge } from 'models'
import ChallengeCardDone from './ChallengeCardDone'
import ChallengeCardLocked from './ChallengeCardLocked'
import ChallengeCardOnGoing from './ChallengeCardOnGoing'
import ChallengeCardUnlocked from './ChallengeCardUnlocked'
import './challengeCard.scss'

Marlène SIMONDANT
committed
import ChallengeCardLast from './ChallengeCardLast'
interface ChallengeCardProps {

Marlène SIMONDANT
committed
userChallenge?: UserChallenge

Guilhem CARRON
committed
cardWidth: number

Marlène SIMONDANT
committed
isChallengeCardLast: boolean
const ChallengeCard: React.FC<ChallengeCardProps> = ({
indexSlider,
index,

Guilhem CARRON
committed
cardWidth,

Marlène SIMONDANT
committed
isChallengeCardLast,
}: ChallengeCardProps) => {

Marlène SIMONDANT
committed
const renderCard = (userChallenge: UserChallenge | undefined) => {
if (!userChallenge || isChallengeCardLast) return <ChallengeCardLast />
switch (userChallenge.state) {
case UserChallengeState.LOCKED:
return <ChallengeCardLocked userChallenge={userChallenge} />
case UserChallengeState.UNLOCKED:
return <ChallengeCardUnlocked userChallenge={userChallenge} />
case UserChallengeState.DONE:
return <ChallengeCardDone userChallenge={userChallenge} />
case UserChallengeState.ONGOING:
return <ChallengeCardOnGoing userChallenge={userChallenge} />
return <ChallengeCardLocked userChallenge={userChallenge} />
className={indexSlider === index ? 'slide active' : 'slide inactive'}

Guilhem CARRON
committed
minWidth: `${cardWidth}px`,
maxWidth: `${cardWidth}px`,

Marlène SIMONDANT
committed
{renderCard(userChallenge)}
export default ChallengeCard