From a16a5a5001c7ba175d236fb823da809bf120167e Mon Sep 17 00:00:00 2001 From: its-kios09 Date: Wed, 21 Aug 2024 14:19:41 +0300 Subject: [PATCH] (refactor) updated the hook --- .../transition-latest-queue-entry.resource.ts | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/packages/esm-service-queues-app/src/transition-latest-queue-entry/transition-latest-queue-entry.resource.ts b/packages/esm-service-queues-app/src/transition-latest-queue-entry/transition-latest-queue-entry.resource.ts index 5233d1e62..ee4d804f7 100644 --- a/packages/esm-service-queues-app/src/transition-latest-queue-entry/transition-latest-queue-entry.resource.ts +++ b/packages/esm-service-queues-app/src/transition-latest-queue-entry/transition-latest-queue-entry.resource.ts @@ -1,7 +1,14 @@ -import { openmrsFetch, type OpenmrsResource, type Patient, type Visit } from '@openmrs/esm-framework'; +import { + type FetchResponse, + openmrsFetch, + type OpenmrsResource, + type Patient, + type Visit, +} from '@openmrs/esm-framework'; import useSWR from 'swr'; import useSWRImmutable from 'swr/immutable'; import { type QueueEntry } from '../types'; +import { FetcherResponse } from 'swr/_internal'; export function useLatestQueueEntry(patientUuid: string) { const customRepresentation = @@ -9,20 +16,10 @@ export function useLatestQueueEntry(patientUuid: string) { const encodedRepresentation = encodeURIComponent(customRepresentation); const url = `/ws/rest/v1/queue-entry?v=${encodedRepresentation}&patient=${patientUuid}&isEnded=false`; - - const fetcher = async (url: string) => { - const response = await openmrsFetch(url); - if (!response.ok) { - throw new Error('Network response was not ok'); - } - const data = await response.json(); - return data; - }; - - const { data, error, isLoading, mutate } = useSWR<{ results: QueueEntry[] }>(url, fetcher); + const { data, error, isLoading, mutate } = useSWR>(url, openmrsFetch); const queueEntry = - data?.results.reduce((latestEntry, currentEntry) => { + data?.data?.results?.reduce((latestEntry, currentEntry) => { if (!latestEntry || new Date(currentEntry.startedAt) > new Date(latestEntry.startedAt)) { return currentEntry; }