import { FC } from 'react'; import styles from './description-list.module.scss'; export type DescriptionListItem = { /** * The item id. */ id: string; /** * A list term. */ term: string; /** * An array of values for the list term. */ value: any[]; }; export type DescriptionListProps = { /** * Set additional classes to the list wrapper. */ classes?: string; /** * The list items. */ items: DescriptionListItem[]; }; /** * DescriptionList component * * Render a description list. */ const DescriptionList: FC = ({ classes = '', items }) => { /** * Retrieve the description list items wrapped in a div element. * * @param {DescriptionListItem[]} listItems - An array of term and description couples. * @returns {JSX.Element[]} The description list items. */ const getItems = (listItems: DescriptionListItem[]): JSX.Element[] => { return listItems.map(({ id, term, value }) => { return (
{term}
{value.map((currentValue, index) => (
{currentValue}
))}
); }); }; return
{getItems(items)}
; }; export default DescriptionList;