'use client'
import { useI18n } from '@/context/i18n-provider'
import { asI18n } from '@pikku/react'
import { LanguageLevels } from '@heygermany/sdk'
import {
Stack,
Title,
Text,
Box,
Paper,
Progress,
List,
ThemeIcon,
Flex,
rem,
useMantineTheme,
} from '@pikku/mantine/core'
import {
IconCircleCheck,
IconExclamationCircle,
IconClock,
IconInfoCircle,
IconCircle,
} from '@tabler/icons-react'
interface QualificationProps {
title: string
description: string
status: string
requirements: string[]
steps?: string[]
progress?: number
fillHeight?: boolean
}
const getStatusColor = (status: string) => {
switch (status) {
case 'completed':
return 'green'
case 'required':
return 'red'
case 'in-progress':
return 'orange'
case 'optional':
return 'blue'
default:
return 'gray'
}
}
const getStatusIcon = (status: string) => {
const iconProps = { size: 28, color: getStatusColor(status) }
switch (status) {
case 'completed':
return
case 'required':
return
case 'in-progress':
return
case 'optional':
return
default:
return
}
}
export const Qualification: React.FunctionComponent = ({
title,
description,
status,
requirements,
steps,
progress,
fillHeight = true,
}) => {
const t = useI18n()
const theme = useMantineTheme()
function translateLevels(req: string): string {
for (const key of Object.keys(LanguageLevels)) {
req = req.replace(key, t(`enums.languagelevel.${key}`.toLowerCase() as any))
}
return req
}
return (
{getStatusIcon(status)}
{asI18n(title)}
{t(`enums.documentstatus.${status}` as any)}
{!isNaN(progress!) && (
{progress}%
)}
{asI18n(description)}
{requirements && (
{asI18n(`${t('jobs.qualification.requirements')}:`)}
{requirements.map((req, reqIndex) => (
{asI18n(translateLevels(req))}
))}
)}
{(steps?.length && steps.length > 0) ? (
{asI18n(`${t('jobs.qualification.nextsteps')}:`)}
{steps.map((step, stepIndex) => (
{asI18n(translateLevels(step))}
))}
) : null}
)
}