import { Button, Layer, Row, SkeletonText, Tile } from '@carbon/react'; import { ArrowLeft, Edit, Printer, Queued } from '@carbon/react/icons'; import { formatDate, launchWorkspace, navigate, parseDate, showModal, showSnackbar } from '@openmrs/esm-framework'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { useLabManifest } from '../hooks'; import { editableManifestStatus, printableManifestStatus, printManifest, resubmittableManifestStatus, } from '../lab-manifest.resources'; import styles from './lab-manifest-header.scss'; interface LabManifestDetailHeaderProps { manifestUuid: string; } const LabManifestDetailHeader: React.FC = ({ manifestUuid }) => { const { isLoading, manifest, mutate } = useLabManifest(manifestUuid); const { t } = useTranslation(); const handleGoBack = () => { navigate({ to: window.getOpenmrsSpaBase() + `lab-manifest` }); }; const handleEditManifest = () => { launchWorkspace('lab-manifest-form', { workspaceTitle: 'Lab Manifest Form', manifest, }); }; const handlePrintManifest = async (log: boolean = false) => { try { await printManifest(manifest.uuid, log); } catch (error) { showSnackbar({ title: 'Failure', subtitle: 'Error printing manifest', kind: 'error' }); } }; const handleLaunchRequeueConfirmModal = () => { const dispose = showModal('lab-manifest-requeue-confirm-modal', { labManifest: manifest, onClose: () => { dispose(); mutate(); }, filter: manifest.manifestStatus, }); }; if (isLoading) { return ( {Array.from({ length: 8 }).map((_, index) => ( ))}
); } return ( Start date: {manifest.startDate ? formatDate(parseDate(manifest.startDate)) : '--'} End date: {manifest.endDate ? formatDate(parseDate(manifest.endDate)) : '--'} Status: {manifest.manifestStatus} Dispatch date: {manifest.dispatchDate ? formatDate(parseDate(manifest.dispatchDate)) : '--'}
Total Samples in the Manifest {manifest.samples.length}
{editableManifestStatus.includes(manifest.manifestStatus) && ( )} {resubmittableManifestStatus.includes(manifest.manifestStatus) && ( )} {printableManifestStatus.includes(manifest.manifestStatus) && ( <> )}
); }; export default LabManifestDetailHeader;