import { getLocale, openmrsFetch, restBaseUrl } from '@openmrs/esm-framework'; import useSWRImmutable from 'swr/immutable'; import { type Queue } from '../types'; import { useMemo } from 'react'; export function useQueues(locationUuid?: string) { const customRepresentation = 'custom:(uuid,display,name,description,service:(uuid,display),allowedPriorities:(uuid,display),allowedStatuses:(uuid,display),location:(uuid,display))'; const apiUrl = `${restBaseUrl}/queue?v=${customRepresentation}` + (locationUuid ? `&location=${locationUuid}` : ''); const { data, ...rest } = useSWRImmutable<{ data: { results: Array } }, Error>(apiUrl, openmrsFetch); const queues = useMemo( () => data?.data?.results.sort((a, b) => a.display.localeCompare(b.display, getLocale())) ?? [], [data?.data?.results], ); return { queues, ...rest, }; }