import React from 'react'; import { CalendarIcon, ChevronRightIcon } from '@heroicons/react/24/outline'; import { rdsFontSizes } from '../../../utils/tailwindClasses'; import { Link } from '../../Link/Link'; // Set types for as props type BaseItemTypeProps = 'li' | 'div'; type TitleTypeProps = 'h2' | 'h3'; export interface JobItemProps { children?: React.ReactNode; fontSize?: 'base' | 'lg' | 'xl'; title?: string; link?: string; department?: string; dateData?: string; date?: string; } export interface ItemBaseProps { as?: keyof JSX.IntrinsicElements; } export interface BaseItemProps { as?: BaseItemTypeProps; } export interface TitleProps { as?: TitleTypeProps; } const JobItemBase = ({ as: Component = 'div', children, link, }: ItemBaseProps & JobItemProps) => { return (
{children}
); }; const Content = ({ children }: JobItemProps) => { return
{children}
; }; const Title = ({ as = 'h3', fontSize = 'base', title, }: TitleProps & JobItemProps) => { return React.createElement( as, { className: `text-sm font-semibold text-cu-black group-hover:text-cu-red ${rdsFontSizes[fontSize]}`, }, title ); }; const Details = ({ dateData, date }: JobItemProps) => { return (

); }; // Set default for base component as props JobItemBase.defaultProps = { as: 'li', }; JobItemBase.displayName = 'JobItem'; Content.displayName = 'JobItem.Content'; Title.displayName = 'JobItem.Title'; Details.displayName = 'JobItem.Details'; export const JobItem = Object.assign(JobItemBase, { Content, Title, Details, });