import type { ReactNode } from 'react' import type { QualificationCardStatus } from '@heygermany/sdk' import { Box, Flex, Group, SimpleGrid, Text, ThemeIcon, } from '@pikku/mantine/core' import { IconBriefcase, IconIdBadge2, IconSchool, IconWorld, } from '@tabler/icons-react' import { useI18n } from '@/context/i18n-provider' import { Qualification } from '@/components/jobs/results/Qualification' import { QualificationSectionStatusCard } from '@/components/jobs/results/QualificationSectionStatusCard' import { type I18nString } from '@pikku/react' type PreviewSection = { key: 'education' | 'license' | 'language' | 'additional' label: I18nString status: QualificationCardStatus color: 'education' | 'license' | 'language' | 'additional' summaryIcon: ReactNode sectionIcon?: ReactNode qualification?: { title: string description: string status: QualificationCardStatus requirements: string[] steps?: string[] progress?: number } } const buildPreviewSections = (t: ReturnType): PreviewSection[] => [ { key: 'education', label: t('enums.qualificationsections.education'), status: 'completed', color: 'education', summaryIcon: , sectionIcon: , qualification: { title: t('jobs.qualifications.education.match.title'), description: t('jobs.qualifications.education.match.description'), status: 'completed', requirements: [ t('jobs.qualifications.education.match.requirements.degree'), t('jobs.qualifications.education.match.requirements.accredited'), t('jobs.qualifications.education.match.requirements.structured'), ], }, }, { key: 'license', label: t('enums.qualificationsections.license'), status: 'required', color: 'license', summaryIcon: , sectionIcon: , qualification: { title: t('jobs.qualifications.license.nursing.title'), description: t('jobs.qualifications.license.nursing.description'), status: 'required', requirements: [t('jobs.qualifications.license.nursing.requirements.license')], steps: [t('jobs.qualifications.license.nursing.steps.obtain')], }, }, { key: 'language', label: t('enums.qualificationsections.language'), status: 'in-progress', color: 'language', summaryIcon: , sectionIcon: , qualification: { title: t('jobs.qualifications.language.proficiency.title'), description: t('jobs.qualifications.language.proficiency.description'), status: 'in-progress', progress: 75, requirements: [ t('jobs.qualifications.language.proficiency.requirements.b2'), t('jobs.qualifications.language.proficiency.requirements.certificate'), ], steps: [ t('jobs.qualifications.language.proficiency.steps.improve'), t('jobs.qualifications.language.proficiency.steps.getcertificate'), ], }, }, { key: 'additional', label: t('enums.qualificationsections.additional'), status: 'required', color: 'additional', summaryIcon: , }, ] export function HomeResultsPreview() { const t = useI18n() const sections = buildPreviewSections(t) const detailedSections = sections.filter( (section): section is PreviewSection & { qualification: NonNullable; sectionIcon: ReactNode } => Boolean(section.qualification && section.sectionIcon) ) return ( <> {sections.map((section) => ( ))} {detailedSections.map((section, index) => ( {section.sectionIcon} {section.label} ))} ) }