import React, { useContext, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { EmptyState } from '@openmrs/esm-patient-common-lib'; import FilterContext from '../filter/filter-context'; import TimelineDataGroup from './timeline-data-group.component'; import styles from './grouped-timeline.scss'; export const GroupedTimeline: React.FC<{ patientUuid: string }> = ({ patientUuid }) => { const { t } = useTranslation(); const { activeTests, timelineData, tableData } = useContext(FilterContext); const [xScroll, setXScroll] = useState(0); const { data: { rowData }, loaded, } = timelineData; if (rowData && rowData?.length === 0) { return ; } if (activeTests && timelineData && loaded && tableData) { return (
{tableData.map((panel, index) => { const panelTestNames = new Set( panel.entries.flatMap((entry) => [...(entry.flatNames ?? []), entry.flatName]), ); const subRows = rowData?.filter((row: { flatName: string }) => panelTestNames.has(row.flatName)); return ( subRows?.length > 0 && (
) ); })}
); } return null; }; export default GroupedTimeline;