From 881aadb459e7ad00f04bcfbd385128b84bcf8232 Mon Sep 17 00:00:00 2001 From: rajku-dev Date: Sun, 2 Feb 2025 06:42:07 +0530 Subject: [PATCH] migrate questionaire response to useQuery --- .../QuestionnaireResponsesList.tsx | 80 +++++++++++-------- 1 file changed, 48 insertions(+), 32 deletions(-) diff --git a/src/components/Facility/ConsultationDetails/QuestionnaireResponsesList.tsx b/src/components/Facility/ConsultationDetails/QuestionnaireResponsesList.tsx index 82bdb5936b6..9d20ab65fb9 100644 --- a/src/components/Facility/ConsultationDetails/QuestionnaireResponsesList.tsx +++ b/src/components/Facility/ConsultationDetails/QuestionnaireResponsesList.tsx @@ -1,15 +1,17 @@ +import { useQuery } from "@tanstack/react-query"; import { t } from "i18next"; import { useTranslation } from "react-i18next"; -import PaginatedList from "@/CAREUI/misc/PaginatedList"; - import { Badge } from "@/components/ui/badge"; import { Card } from "@/components/ui/card"; import { Separator } from "@/components/ui/separator"; import { CardListSkeleton } from "@/components/Common/SkeletonLoading"; +import useFilters from "@/hooks/useFilters"; + import routes from "@/Utils/request/api"; +import query from "@/Utils/request/query"; import { formatDateTime, properCase } from "@/Utils/utils"; import { AllergyIntoleranceRequest } from "@/types/emr/allergyIntolerance/allergyIntolerance"; import { DiagnosisRequest } from "@/types/emr/diagnosis/diagnosis"; @@ -276,43 +278,57 @@ export default function QuestionnaireResponsesList({ }: Props) { const { t } = useTranslation(); + const { qParams, Pagination, resultsPerPage } = useFilters({ + limit: 15, + cacheBlacklist: ["questionnaire"], + }); + + const { + data: responseData, + isFetching: isFetchingResponses, + isLoading, + } = useQuery({ + queryKey: ["questionnaireResponses", patientId, qParams, encounter?.id], + queryFn: query.debounced(routes.getQuestionnaireResponses, { + pathParams: { patientId }, + queryParams: { + encounter: encounter?.id, + limit: resultsPerPage, + offset: ((qParams.page ?? 1) - 1) * resultsPerPage, + }, + }), + }); + return ( - - {() => ( -
+
+
+ {isLoading ? ( +
+ +
+ ) : (
- + {!isFetchingResponses && responseData?.results?.length === 0 ? (
{t("no_questionnaire_responses")}
-
- - -
- -
-
- - className="grid gap-4"> - {(item) => } - - -
- -
+ ) : ( +
    + {responseData?.results?.map((item: QuestionnaireResponse) => ( +
  • + +
  • + ))} +
    + +
    +
+ )}
-
- )} - + )} +
+
); }