diff --git a/src/hooks/useGetOrganizationById.js b/src/hooks/useGetOrganizationById.js index b396e3a..e7aeb90 100644 --- a/src/hooks/useGetOrganizationById.js +++ b/src/hooks/useGetOrganizationById.js @@ -2,7 +2,7 @@ import { useQuery } from "@tanstack/react-query"; import { organizationSvc } from "@USupport-components-library/services"; export const useGetOrganizationById = (organizationId, filters) => { - const { startDate, endDate, startTime, endTime, weekdays, weekends } = + const { startDate, endDate, startTime, endTime, weekdays, weekends, search } = filters; return useQuery({ @@ -15,6 +15,7 @@ export const useGetOrganizationById = (organizationId, filters) => { endTime, weekdays, weekends, + search, ], queryFn: async () => { const data = await organizationSvc.getOrganizationById( @@ -39,12 +40,14 @@ export const useGetOrganizationById = (organizationId, filters) => { providers: data.providers.map((x) => ({ providerDetailId: x.provider_detail_id, joinDate: x.provider_join_date, + leaveDate: x.provider_leave_date, name: `${x.name} ${x.patronym ? ` ${x.patronym}` : ""} ${x.surname}`, image: x.image, email: x.email, consultations_count: x.consultations_count || 0, consultations: x.consultations || [], clients: x.clients_count || 0, + futureConsultations: Number(x.future_consultations), })), }; }, diff --git a/src/pages/OrganizationDetails/OrganizationDetails.jsx b/src/pages/OrganizationDetails/OrganizationDetails.jsx index d6ed54a..934e29f 100644 --- a/src/pages/OrganizationDetails/OrganizationDetails.jsx +++ b/src/pages/OrganizationDetails/OrganizationDetails.jsx @@ -13,15 +13,16 @@ import { } from "#hooks"; import { - Loading, BaseTable, Block, Box, - Select, - Modal, + CheckBox, DateInput, DropdownWithLabel, - CheckBox, + Loading, + Modal, + InputSearch, + Select, } from "@USupport-components-library/src"; import { getDateView, @@ -35,6 +36,7 @@ import { const { firstDay, lastDay } = getFirstAndLastDayOfPastMonth(); const initialFilters = { + search: "", startDate: firstDay, endDate: lastDay, startTime: "09:00", @@ -102,6 +104,7 @@ export const OrganizationDetails = () => { sortingKey: "consultations", }, { isCentered: true, label: t("joined_date"), sortingKey: "joinDate" }, + { isCentered: true, label: t("leave_date"), sortingKey: "leaveDate" }, ]; }, [i18n.language]); @@ -112,6 +115,9 @@ export const OrganizationDetails = () => {

{item.clients}

,

{item.consultations_count}

,

{getDateView(item.joinDate)}

, +

+ {item.leaveDate ? getDateView(item.leaveDate) : "-"} +

, ]; }); }, [dataToDisplay]); @@ -238,15 +244,30 @@ export const OrganizationDetails = () => { > setIsFilterModalOpen(false)} + closeModal={() => { + setIsFilterModalOpen(false); + setFilters(appliedFilters); + }} heading={t("filters")} ctaLabel={t("apply")} ctaHandleClick={() => { setAppliedFilters(filters); setIsFilterModalOpen(false); }} + secondaryCtaLabel={t("reset_filters")} + secondaryCtaHandleClick={() => { + setFilters(initialFilters); + setAppliedFilters(initialFilters); + setIsFilterModalOpen(false); + }} + secondaryCtaType="secondary" classes="page__organization-details__filters-modal" > + setFilters({ ...filters, search: val })} + /> { heading={t("remove_provider")} text={t("remove_provider_subheading", { name: providerToRemove?.name, + organizationName: data?.name, })} ctaLabel={t("remove")} + ctaColor="red" ctaHandleClick={() => { removeProviderMutation.mutate({ organizationId, @@ -307,7 +330,15 @@ export const OrganizationDetails = () => { }); }} isCtaLoading={removeProviderMutation.isLoading} - /> + > + {providerToRemove?.futureConsultations && ( +

+ {t("has_future_consultations", { + count: providerToRemove?.futureConsultations, + })} +

+ )} +
setShowAddProviderModal(false)} @@ -331,7 +362,7 @@ export const OrganizationDetails = () => { }} /> - {isLoading ? ( + {isLoading || isProvidersLoading ? ( ) : (