diff --git a/src/index.ts b/src/index.ts index e42a09e1..8ef22254 100644 --- a/src/index.ts +++ b/src/index.ts @@ -82,6 +82,11 @@ export const reviewItemDialog = getAsyncLifecycle( options ); +export const rejectOrderDialog = getAsyncLifecycle( + () => import("./reject-order/reject-order-dialog.component"), + options +); + export function startupApp() { defineConfigSchema(moduleName, configSchema); } diff --git a/src/queue-list/laboratory-patient-list.component.tsx b/src/queue-list/laboratory-patient-list.component.tsx index 8215e5d8..a691eac0 100644 --- a/src/queue-list/laboratory-patient-list.component.tsx +++ b/src/queue-list/laboratory-patient-list.component.tsx @@ -1,7 +1,6 @@ -import React, { useEffect, useMemo, useState } from "react"; +import React, { useCallback, useEffect, useMemo, useState } from "react"; import { DataTable, - DataTableHeader, DataTableSkeleton, Pagination, Table, @@ -21,13 +20,17 @@ import { Tag, TableExpandedRow, Tile, + Button, } from "@carbon/react"; +import { TrashCan } from "@carbon/react/icons"; + import { useTranslation } from "react-i18next"; import { age, formatDate, formatDatetime, parseDate, + showModal, usePagination, useSession, } from "@openmrs/esm-framework"; @@ -51,6 +54,10 @@ import { EmptyState } from "@openmrs/esm-patient-common-lib"; interface LaboratoryPatientListProps {} +interface RejectOrderProps { + order: string; +} + const LaboratoryPatientList: React.FC = () => { const { t } = useTranslation(); const session = useSession(); @@ -71,16 +78,33 @@ const LaboratoryPatientList: React.FC = () => { currentPage, } = usePagination(patientQueueEntries, currentPageSize); + const RejectOrder: React.FC = ({ order }) => { + const launchRejectOrderModal = useCallback(() => { + const dispose = showModal("reject-order-dialog", { + closeModal: () => dispose(), + order, + }); + }, [order]); + return ( +