import React from 'react'; import cx from 'classnames'; import { formatDateTime } from '@bundle-stats/utils'; import I18N from '../../i18n'; import { FlexStack } from '../../layout/flex-stack'; import { Icon } from '../../ui/icon'; import { Tag } from '../../ui/tag'; import css from './jobs-header.module.css'; interface ItemProps { job: { internalBuildNumber: number; meta?: { webpack?: { builtAt?: string; hash?: string; }; }; }; tag: string; } export const Item = (props: ItemProps & React.ComponentProps<'div'>) => { const { className, tag, job } = props; const { builtAt, hash } = job.meta?.webpack || {}; const rootClassName = cx(css.item, className); return ( {`#${job.internalBuildNumber}`} {tag && {tag}} {builtAt && ( {formatDateTime({ dateStyle: 'medium', timeStyle: 'medium' }, builtAt)} )} {hash && ( {hash.slice(0, 7)} )} ); }; interface JobsHeaderProps { jobs?: Array | null; } export const JobsHeader = (props: JobsHeaderProps & React.ComponentProps<'header'>) => { const { className, jobs } = props; const rootClassName = cx(css.root, className); return (
{jobs?.map((job, index) => ( ))}
); };