--- import { Icon } from 'astro-icon/components'; import { readItems } from '@directus/sdk'; import type { Experience } from '@lib/directusTypes'; import directus from '@lib/directus'; const experiences = ((await directus.request( readItems('site_experience'as any, { fields: ['*'], sort: ['-endDate'], }) )) as unknown) as Experience[]; --- Experience {experiences.map((experience: Experience, index: number) => { const startYear = new Date(experience.startDate).getFullYear(); const endYear = experience.endDate != null ? new Date(experience.endDate).getFullYear() : 'Present'; return ( {startYear} {' '}-{' '} {endYear} {experience.position} @ {experience.url ? ( {experience.name} ) : ( {experience.name} )} {(experience.location || experience.location_type) && ( {experience.location} {experience.location && experience.location_type && '-'} {experience.location_type} )} {experience.summary && ( Summary: {experience.summary} )} {(experience.responsibilities || experience.achievements) && ( <> {experience.responsibilities && ( Responsibilities: {experience.responsibilities.map(responsibility => ( {responsibility} ))} )} {experience.achievements && ( Achievements: {experience.achievements.map(achievement => ( {achievement} ))} )} Read more Read less > )} {experience.skills && experience.skills.map(skill => { const iconName = skill.toLowerCase(); const skillName = skill.split(':')[1].replace(/^language-/, '').replace(/-/g, ' ').replace(/\b\w/g, (l) => l.toUpperCase()); return ( {skillName} ) })} ); })}
Read more Read less