From bc268bf5af247fab527e68e3a73cdb5bfd57d61c Mon Sep 17 00:00:00 2001 From: JOSHIK Date: Mon, 30 Sep 2024 17:07:49 +0100 Subject: [PATCH 1/3] both sort buttons brought to the parent component --- .../ConsultationUpdatesTab.tsx | 58 ++++++++++++++++++- .../ConsultationDetails/Events/EventsList.tsx | 14 +---- .../Consultations/DailyRoundsList.tsx | 10 ++-- 3 files changed, 60 insertions(+), 22 deletions(-) diff --git a/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx index a1f898ee9c5..8714bfb4947 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx @@ -24,8 +24,11 @@ import routes from "../../../Redux/api"; import CareIcon from "../../../CAREUI/icons/CareIcon"; import EncounterSymptomsCard from "../../Symptoms/SymptomsCard"; import Tabs from "../../Common/components/Tabs"; - +import { QueryParams } from "../../../Utils/request/types"; +import SortDropdownMenu from "../../Common/SortDropdown"; const PageTitle = lazy(() => import("../../Common/PageTitle")); +import { EVENTS_SORT_OPTIONS } from "../../../Common/constants"; +import DailyRoundsFilter from "../Consultations/DailyRoundsFilter"; export const ConsultationUpdatesTab = (props: ConsultationTabProps) => { const [hl7SocketUrl, setHL7SocketUrl] = useState(); @@ -33,6 +36,8 @@ export const ConsultationUpdatesTab = (props: ConsultationTabProps) => { const [monitorBedData, setMonitorBedData] = useState(); const [ventilatorBedData, setVentilatorBedData] = useState(); const [showEvents, setShowEvents] = useState(true); + const [eventsQuery, setEventsQuery] = useState(); + const [dailyRoundsQuery, setDailyRoundsQuery] = useState(); const vitals = useVitalsAspectRatioConfig({ default: undefined, @@ -670,13 +675,60 @@ export const ConsultationUpdatesTab = (props: ConsultationTabProps) => { onTabChange={(v) => setShowEvents(!!v)} currentTab={showEvents ? 1 : 0} /> + + {showEvents ? ( + + ) : ( + + )} + {showEvents ? ( - + ) : ( - + )} ); }; + +function EventListSortDropdown({ + eventsQuery, + setEventsQuery, +}: { + eventsQuery: QueryParams; + setEventsQuery: (query: QueryParams) => void; +}) { + return ( + + ); +} + +function DailyRoundsSortDropdown({ + setDailyRoundsQuery, +}: { + dailyRoundsQuery: QueryParams; + setDailyRoundsQuery: (query: QueryParams) => void; +}) { + return ( + { + setDailyRoundsQuery(query); + }} + /> + ); +} diff --git a/src/Components/Facility/ConsultationDetails/Events/EventsList.tsx b/src/Components/Facility/ConsultationDetails/Events/EventsList.tsx index b3897dee145..d32f6d63604 100644 --- a/src/Components/Facility/ConsultationDetails/Events/EventsList.tsx +++ b/src/Components/Facility/ConsultationDetails/Events/EventsList.tsx @@ -7,15 +7,11 @@ import LoadingLogUpdateCard from "../../Consultations/DailyRounds/LoadingCard"; import GenericEvent from "./GenericEvent"; import { getEventIcon } from "./iconMap"; import { EventGeneric } from "./types"; -import SortDropdownMenu from "../../../Common/SortDropdown"; -import { EVENTS_SORT_OPTIONS } from "../../../../Common/constants"; import { QueryParams } from "../../../../Utils/request/types"; -import { useState } from "react"; -export default function EventsList() { +export default function EventsList({ query }: { query: QueryParams }) { const [consultationId] = useSlugs("consultation"); const { t } = useTranslation(); - const [query, setQuery] = useState(); return ( {() => ( <> -
- -
-
diff --git a/src/Components/Facility/Consultations/DailyRoundsList.tsx b/src/Components/Facility/Consultations/DailyRoundsList.tsx index 561a4f1a958..ecf665d9804 100644 --- a/src/Components/Facility/Consultations/DailyRoundsList.tsx +++ b/src/Components/Facility/Consultations/DailyRoundsList.tsx @@ -5,23 +5,21 @@ import { useTranslation } from "react-i18next"; import LoadingLogUpdateCard from "./DailyRounds/LoadingCard"; import routes from "../../../Redux/api"; import PaginatedList from "../../../CAREUI/misc/PaginatedList"; -import DailyRoundsFilter from "./DailyRoundsFilter"; import { ConsultationModel } from "../models"; import { useSlugs } from "../../../Common/hooks/useSlug"; import Timeline, { TimelineNode } from "../../../CAREUI/display/Timeline"; -import { useState } from "react"; import { QueryParams } from "../../../Utils/request/types"; import { UserRole } from "../../../Common/constants"; interface Props { consultation: ConsultationModel; + query: QueryParams; } -export default function DailyRoundsList({ consultation }: Props) { +export default function DailyRoundsList({ consultation, query }: Props) { const [consultationId] = useSlugs("consultation"); const { t } = useTranslation(); - const [query, setQuery] = useState(); return ( {() => ( <> -
+ {/*
{ setQuery(query); }} /> -
+
*/}
From 6dd1e6053da566a4e950677038b76e615b4b680a Mon Sep 17 00:00:00 2001 From: JOSHIK Date: Fri, 18 Oct 2024 12:15:29 +0100 Subject: [PATCH 2/3] achieved intented functionality --- .../ConsultationUpdatesTab.tsx | 134 ++++++++++------ .../Consultations/DailyRoundsFilter.tsx | 147 +++++++++--------- .../Consultations/DailyRoundsList.tsx | 8 - 3 files changed, 158 insertions(+), 131 deletions(-) diff --git a/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx index 8714bfb4947..5dc9c32a430 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationUpdatesTab.tsx @@ -25,10 +25,19 @@ import CareIcon from "../../../CAREUI/icons/CareIcon"; import EncounterSymptomsCard from "../../Symptoms/SymptomsCard"; import Tabs from "../../Common/components/Tabs"; import { QueryParams } from "../../../Utils/request/types"; -import SortDropdownMenu from "../../Common/SortDropdown"; const PageTitle = lazy(() => import("../../Common/PageTitle")); import { EVENTS_SORT_OPTIONS } from "../../../Common/constants"; import DailyRoundsFilter from "../Consultations/DailyRoundsFilter"; +import ButtonV2 from "../../Common/components/ButtonV2"; +import { classNames } from "../../../Utils/utils"; + +import { useTranslation } from "react-i18next"; +import { + Popover, + PopoverButton, + PopoverPanel, + Transition, +} from "@headlessui/react"; export const ConsultationUpdatesTab = (props: ConsultationTabProps) => { const [hl7SocketUrl, setHL7SocketUrl] = useState(); @@ -38,6 +47,7 @@ export const ConsultationUpdatesTab = (props: ConsultationTabProps) => { const [showEvents, setShowEvents] = useState(true); const [eventsQuery, setEventsQuery] = useState(); const [dailyRoundsQuery, setDailyRoundsQuery] = useState(); + const { t } = useTranslation(); const vitals = useVitalsAspectRatioConfig({ default: undefined, @@ -656,37 +666,82 @@ export const ConsultationUpdatesTab = (props: ConsultationTabProps) => {
- - Events - - beta - -
- ), - value: 1, - }, - { text: "Daily Rounds", value: 0 }, - ]} - onTabChange={(v) => setShowEvents(!!v)} - currentTab={showEvents ? 1 : 0} - /> - - {showEvents ? ( - - ) : ( - + + Events + + beta + +
+ ), + value: 1, + }, + { text: "Daily Rounds", value: 0 }, + ]} + onTabChange={(v) => setShowEvents(!!v)} + currentTab={showEvents ? 1 : 0} /> - )} + {showEvents ? ( + + + + + + + + +
+
+ {EVENTS_SORT_OPTIONS.map(({ isAscending, value }) => { + return ( +
{ + setEventsQuery({ + ordering: value, + }); + }} + > + + {t("SORT_OPTIONS__" + value)} +
+ ); + })} +
+
+
+
+
+ ) : ( + + )} +
{showEvents ? ( @@ -702,26 +757,9 @@ export const ConsultationUpdatesTab = (props: ConsultationTabProps) => { ); }; -function EventListSortDropdown({ - eventsQuery, - setEventsQuery, -}: { - eventsQuery: QueryParams; - setEventsQuery: (query: QueryParams) => void; -}) { - return ( - - ); -} - function DailyRoundsSortDropdown({ setDailyRoundsQuery, }: { - dailyRoundsQuery: QueryParams; setDailyRoundsQuery: (query: QueryParams) => void; }) { return ( diff --git a/src/Components/Facility/Consultations/DailyRoundsFilter.tsx b/src/Components/Facility/Consultations/DailyRoundsFilter.tsx index f84705e0fa8..5777ba8427f 100644 --- a/src/Components/Facility/Consultations/DailyRoundsFilter.tsx +++ b/src/Components/Facility/Consultations/DailyRoundsFilter.tsx @@ -42,84 +42,81 @@ export default function DailyRoundsFilter(props: Props) { ); return ( -
- - - - - {t("filter")} - - - + + - -
-
-
- - {t("filter_by")} - -
+ + + + + +
+
+
+ + {t("filter_by")} +
-
- t(`ROUNDS_TYPE__${o}`)} - optionValue={(o) => o} - /> - - +
+
+ t(`ROUNDS_TYPE__${o}`)} + optionValue={(o) => o} + /> + + - - { - setFilter({}); - props.onApply({}); - }} - border - className="w-full" - > - {t("clear")} - - - - props.onApply(filter)} - border - className="w-full" - > - {t("apply")} - - -
+ + { + setFilter({}); + props.onApply({}); + }} + border + className="w-full" + > + {t("clear")} + + + + props.onApply(filter)} + border + className="w-full" + > + {t("apply")} + +
- - - -
+
+ + + ); } diff --git a/src/Components/Facility/Consultations/DailyRoundsList.tsx b/src/Components/Facility/Consultations/DailyRoundsList.tsx index ecf665d9804..f85cef50960 100644 --- a/src/Components/Facility/Consultations/DailyRoundsList.tsx +++ b/src/Components/Facility/Consultations/DailyRoundsList.tsx @@ -29,14 +29,6 @@ export default function DailyRoundsList({ consultation, query }: Props) { > {() => ( <> - {/*
- { - setQuery(query); - }} - /> -
*/} -
From 52ba802b33501234a329f466a39e3e73e960a4fa Mon Sep 17 00:00:00 2001 From: JOSHIK Date: Fri, 18 Oct 2024 12:41:56 +0100 Subject: [PATCH 3/3] included pluginMap file --- src/pluginMap.ts | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/pluginMap.ts diff --git a/src/pluginMap.ts b/src/pluginMap.ts new file mode 100644 index 00000000000..02d889208f6 --- /dev/null +++ b/src/pluginMap.ts @@ -0,0 +1,3 @@ +import { PluginManifest } from "./pluginTypes"; + +export const pluginMap: PluginManifest[] = [];