'use client'; import { useTranslations } from 'next-intl'; import { EditableSection, EditableEntry, CERTIFICATION_FIELDS } from '@/components/profile-editor'; import { certificationToValues, valuesToCertification, } from '@/components/profile-editor/section-converters'; import { formatTimelineDate } from './timeline'; import { sortByDateDesc, certDateExtractor } from '@/lib/sort-by-date'; import type { ProfileCertification } from '@/lib/types'; interface CredentialsSectionProps { certifications: ProfileCertification[]; isOwnProfile?: boolean; } export function CredentialsSection({ certifications, isOwnProfile }: CredentialsSectionProps) { const t = useTranslations('sections'); if (!certifications.length && !isOwnProfile) return null; return (

{t('credentials')} {certifications.length > 0 && ( {certifications.length} )}

maxVisible={5} sectionTitle={t('credentials')} profileKey="certifications" isOwnProfile={isOwnProfile} fields={CERTIFICATION_FIELDS} toValues={certificationToValues} fromValues={ valuesToCertification as unknown as ( v: Record, ) => Omit } collection="id.sifa.profile.certification" sortItems={(items) => sortByDateDesc(items, certDateExtractor)} renderEntry={(cert, controls) => ( {})} onDelete={controls?.onDelete ?? (() => {})} entryLabel={cert.name} >

{cert.credentialUrl ? ( {cert.name} ) : ( cert.name )}

{cert.issuingOrg}

{cert.issueDate && ( {formatTimelineDate(cert.issueDate)} )}
)} />
); }