diff --git a/src/components/Patient/PatientDetailsTab/EncounterHistory.tsx b/src/components/Patient/PatientDetailsTab/EncounterHistory.tsx index 7a53b02e0d7..7e3c8d88418 100644 --- a/src/components/Patient/PatientDetailsTab/EncounterHistory.tsx +++ b/src/components/Patient/PatientDetailsTab/EncounterHistory.tsx @@ -1,62 +1,95 @@ +import { useQuery } from "@tanstack/react-query"; import { Link } from "raviger"; import { useTranslation } from "react-i18next"; import CareIcon from "@/CAREUI/icons/CareIcon"; -import PaginatedList from "@/CAREUI/misc/PaginatedList"; import { Button } from "@/components/ui/button"; -import CircularProgress from "@/components/Common/CircularProgress"; +import { CardListSkeleton } from "@/components/Common/SkeletonLoading"; import { EncounterCard } from "@/components/Facility/EncounterCard"; import { PatientProps } from "@/components/Patient/PatientDetailsTab"; +import useFilters from "@/hooks/useFilters"; + import routes from "@/Utils/request/api"; -import { Encounter } from "@/types/emr/encounter"; +import query from "@/Utils/request/query"; const EncounterHistory = (props: PatientProps) => { const { patientId, facilityId } = props; const { t } = useTranslation(); + const { qParams, Pagination, resultsPerPage } = useFilters({ + limit: 15, + cacheBlacklist: ["encounterHistory"], + }); + + const { + data: encounterData, + isFetching: encountersFetching, + isLoading: encountersLoading, + } = useQuery({ + queryKey: ["encountersHistory", patientId, qParams], + queryFn: query.debounced(routes.encounter.list, { + queryParams: { + patient: patientId, + limit: 5, + offset: ((qParams.page ?? 1) - 1) * resultsPerPage, + }, + }), + }); + return ( - - {() => ( -
- - - - -
-
- {t("no_consultation_history")} -
-
- -
+
+
+ {encountersLoading ? ( +
+
+
- - > - {(encounter) => } - -
-
-
- )} - + ) : ( +
+ {!encountersFetching && encounterData?.results?.length === 0 ? ( +
+
+
+ {t("no_consultation_history")} +
+
+ +
+
+
+ ) : ( +
    + {encounterData?.results?.map((encounter) => ( +
  • + +
  • + ))} +
    + +
    +
+ )} +
+ )} +
+
); };