import { UISref } from '@uirouter/react'; import classNames from 'classnames'; import isEqual from 'lodash/isEqual'; import { DateTime } from 'luxon'; import React from 'react'; import { ManagedResourceDiffTable } from './ManagedResourceDiffTable'; import { RelativeTimestamp } from '../RelativeTimestamp'; import type { IManagedResourceDiff, IManagedResourceEvent } from '../../domain'; import { TableCell, TableRow } from '../../presentation'; type LogLevel = IManagedResourceEvent['level']; const eventLevelToClass: { [key in LogLevel]?: string } = { WARNING: 'event-warning', ERROR: 'event-error', SUCCESS: 'event-success', }; const ExpandedRowContent: React.FC<{ level: LogLevel; diff?: IManagedResourceDiff; tasks?: Array<{ id: string; name: string }>; message?: string; dismissModal?: () => any; }> = ({ level, diff, tasks, dismissModal, message }) => { return (
{message &&
{message}
} {tasks && (
{tasks.map(({ id, name }) => ( dismissModal?.()}> {name} ))}
)} {diff && }
); }; interface HistoryEventRowProps { event: IManagedResourceEvent; dismissModal?: () => void; } export const HistoryEventRow: React.FC = React.memo(({ event, dismissModal }) => { const { timestamp, delta, tasks, message, reason, exceptionMessage, level } = event; const eventDate = React.useMemo(() => DateTime.fromISO(timestamp), [timestamp]); const hasDetails = delta || tasks || message || reason || exceptionMessage; return ( ( ) : undefined } > {event.level} {event.displayName}
); }, isEqual);