import React, { useState } from 'react'; import { Button, ModalBody, ModalFooter, ModalHeader } from '@carbon/react'; import { ExtensionSlot, showNotification, showSnackbar, useAbortController, type Order } from '@openmrs/esm-framework'; import { useTranslation } from 'react-i18next'; import { setFulfillerStatus, useInvalidateLabOrders } from '../../laboratory.resource'; interface ApproveLabResultsModal { closeModal: () => void; order: Order; } const ApproveLabResultsModal: React.FC = ({ order, closeModal }) => { const { t } = useTranslation(); const [isSubmitting, setIsSubmitting] = useState(false); const abortController = useAbortController(); const invalidateLabOrders = useInvalidateLabOrders(); const handleApproval = () => { setIsSubmitting(true); setFulfillerStatus(order.uuid, 'COMPLETED', abortController).then( () => { invalidateLabOrders(); setIsSubmitting(false); closeModal(); showSnackbar({ isLowContrast: true, title: t('resultsApproved', 'Results Approved'), kind: 'success', subtitle: t('labResultsApprovedSuccessfully', 'Lab results have been successfully approved and finalized'), }); }, (error) => { setIsSubmitting(false); showNotification({ title: t('errorApprovingResults', 'Error approving results'), kind: 'error', critical: true, description: error?.message, }); }, ); }; return (

{t( 'approveResultsConfirmationText', 'You are about to approve and finalize these lab results. Once approved, the results will be marked as complete and made available to clinicians. Are you sure you want to proceed?', )}

<>
); }; export default ApproveLabResultsModal;