import React, { useMemo } from 'react'; import useSWR from 'swr'; import { ErrorState, ExtensionSlot, fetchCurrentPatient, WorkspaceContainer } from '@openmrs/esm-framework'; import { useParams } from 'react-router-dom'; import { InlineLoading, Tab, TabList, TabPanel, TabPanels, Tabs } from '@carbon/react'; import { useTranslation } from 'react-i18next'; import { useInitialize } from './useInitialize'; import styles from './patient-chart.scss'; import { usePatientChartTabs } from './patient-chart.resources'; type PatientChartProps = { navigationPath: string; }; const PatientChart: React.FC = ({ navigationPath }) => { const { t } = useTranslation(); const { patientUuid } = useParams<{ patientUuid?: string }>(); const { data: patient, isLoading, error, } = useSWR(patientUuid ? ['patient', patientUuid] : null, () => fetchCurrentPatient(patientUuid!, {})); const patientChartTabsExtensionSlotConfig = usePatientChartTabs(navigationPath, patientUuid, patient); const state = useMemo(() => ({ patient, patientUuid }), [patient, patientUuid]); useInitialize(patientUuid, state); if (isLoading) { return ; } if (error) { return ; } return (
{patient && patientUuid && }
{patientChartTabsExtensionSlotConfig.map((tabConfig, index) => ( {tabConfig.meta.title ?? tabConfig.meta.path} ))} {patientChartTabsExtensionSlotConfig.map((tabConfig, index) => ( ))}
); }; export default PatientChart;