From 5fb52964b622f41b80364b31bbfcf1ad37ba8e91 Mon Sep 17 00:00:00 2001 From: henrikmv Date: Fri, 5 Jul 2024 17:10:41 +0200 Subject: [PATCH 1/5] fix: Consider program rule --- .../hooks/useCanAddNewEventToStage.js | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js b/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js index 616beaef65..acf65eabd9 100644 --- a/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js +++ b/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js @@ -1,8 +1,18 @@ import { useMemo } from 'react'; +import { useSelector } from 'react-redux'; -export const useCanAddNewEventToStage = (programStage, existingRelatedEvents) => useMemo(() => - (programStage && existingRelatedEvents - ? programStage.repeatable || (!programStage.repeatable && existingRelatedEvents.length === 0) - : false), -[programStage, existingRelatedEvents], -); +export const useCanAddNewEventToStage = (programStage, existingRelatedEvents) => { + const hiddenProgramStages = useSelector(({ rulesEffectsHiddenProgramStageDesc }) => + rulesEffectsHiddenProgramStageDesc?.['enrollmentEvent-newEvent'] + ); + + return useMemo(() => { + const isProgramStageHidden = hiddenProgramStages?.[programStage.id]; + + if (isProgramStageHidden) { return false } + + return programStage && existingRelatedEvents + ? programStage.repeatable || (!programStage.repeatable && existingRelatedEvents.length === 0) + : false; + }, [programStage, existingRelatedEvents, hiddenProgramStages]); +}; From 91c2530bfefe945f4fc855964559369b4138afc7 Mon Sep 17 00:00:00 2001 From: henrikmv Date: Fri, 5 Jul 2024 17:18:27 +0200 Subject: [PATCH 2/5] fix: lint --- .../WidgetRelatedStages/hooks/useCanAddNewEventToStage.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js b/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js index acf65eabd9..e0c8eba624 100644 --- a/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js +++ b/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js @@ -2,14 +2,14 @@ import { useMemo } from 'react'; import { useSelector } from 'react-redux'; export const useCanAddNewEventToStage = (programStage, existingRelatedEvents) => { - const hiddenProgramStages = useSelector(({ rulesEffectsHiddenProgramStageDesc }) => - rulesEffectsHiddenProgramStageDesc?.['enrollmentEvent-newEvent'] + const hiddenProgramStages = useSelector(({ rulesEffectsHiddenProgramStageDesc }) => + rulesEffectsHiddenProgramStageDesc?.['enrollmentEvent-newEvent'], ); return useMemo(() => { const isProgramStageHidden = hiddenProgramStages?.[programStage.id]; - if (isProgramStageHidden) { return false } + if (isProgramStageHidden) { return false; } return programStage && existingRelatedEvents ? programStage.repeatable || (!programStage.repeatable && existingRelatedEvents.length === 0) From ed7e7f3bf07cf0427e7c318da76e348253217f03 Mon Sep 17 00:00:00 2001 From: henrikmv Date: Sun, 7 Jul 2024 19:07:42 +0200 Subject: [PATCH 3/5] fix: consider program rule --- .../hooks/useCanAddNewEventToStage.js | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js b/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js index 616beaef65..e0c8eba624 100644 --- a/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js +++ b/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js @@ -1,8 +1,18 @@ import { useMemo } from 'react'; +import { useSelector } from 'react-redux'; -export const useCanAddNewEventToStage = (programStage, existingRelatedEvents) => useMemo(() => - (programStage && existingRelatedEvents - ? programStage.repeatable || (!programStage.repeatable && existingRelatedEvents.length === 0) - : false), -[programStage, existingRelatedEvents], -); +export const useCanAddNewEventToStage = (programStage, existingRelatedEvents) => { + const hiddenProgramStages = useSelector(({ rulesEffectsHiddenProgramStageDesc }) => + rulesEffectsHiddenProgramStageDesc?.['enrollmentEvent-newEvent'], + ); + + return useMemo(() => { + const isProgramStageHidden = hiddenProgramStages?.[programStage.id]; + + if (isProgramStageHidden) { return false; } + + return programStage && existingRelatedEvents + ? programStage.repeatable || (!programStage.repeatable && existingRelatedEvents.length === 0) + : false; + }, [programStage, existingRelatedEvents, hiddenProgramStages]); +}; From 608b43dbe6a5119a7eefa7c5e1e3c0069d28b66e Mon Sep 17 00:00:00 2001 From: henrikmv Date: Mon, 12 Aug 2024 17:37:55 +0200 Subject: [PATCH 4/5] fix: missing flow and types --- .../RelatedStagesActions.component.js | 1 - .../hooks/useCanAddNewEventToStage.js | 9 +++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/core_modules/capture-core/components/WidgetRelatedStages/RelatedStagesActions/RelatedStagesActions.component.js b/src/core_modules/capture-core/components/WidgetRelatedStages/RelatedStagesActions/RelatedStagesActions.component.js index 82e6cf4202..5a87eaec91 100644 --- a/src/core_modules/capture-core/components/WidgetRelatedStages/RelatedStagesActions/RelatedStagesActions.component.js +++ b/src/core_modules/capture-core/components/WidgetRelatedStages/RelatedStagesActions/RelatedStagesActions.component.js @@ -71,7 +71,6 @@ export const RelatedStagesActionsPlain = ({ linkMode: action, })); }; - const canAddNewEventToStage = useCanAddNewEventToStage(programStage, linkableEvents); if (!programStage) { diff --git a/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js b/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js index e0c8eba624..1d7c5a7a21 100644 --- a/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js +++ b/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js @@ -1,13 +1,18 @@ +// @flow import { useMemo } from 'react'; import { useSelector } from 'react-redux'; +import { ProgramStage } from '../../../metaData'; +import type { LinkableEvent } from '../RelatedStagesActions/RelatedStagesActions.types'; -export const useCanAddNewEventToStage = (programStage, existingRelatedEvents) => { +export const useCanAddNewEventToStage = (programStage: ?ProgramStage, existingRelatedEvents: LinkableEvent[]) => { + console.log('programStage', programStage); + console.log('existingRelatedEvents', existingRelatedEvents); const hiddenProgramStages = useSelector(({ rulesEffectsHiddenProgramStageDesc }) => rulesEffectsHiddenProgramStageDesc?.['enrollmentEvent-newEvent'], ); return useMemo(() => { - const isProgramStageHidden = hiddenProgramStages?.[programStage.id]; + const isProgramStageHidden = hiddenProgramStages?.[programStage?.id]; if (isProgramStageHidden) { return false; } From 86062d2d18d008947eca3612069fe004ecb62244 Mon Sep 17 00:00:00 2001 From: henrikmv Date: Tue, 13 Aug 2024 09:45:01 +0200 Subject: [PATCH 5/5] fix: remove console lines --- .../WidgetRelatedStages/hooks/useCanAddNewEventToStage.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js b/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js index 1d7c5a7a21..e78e53a554 100644 --- a/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js +++ b/src/core_modules/capture-core/components/WidgetRelatedStages/hooks/useCanAddNewEventToStage.js @@ -5,8 +5,6 @@ import { ProgramStage } from '../../../metaData'; import type { LinkableEvent } from '../RelatedStagesActions/RelatedStagesActions.types'; export const useCanAddNewEventToStage = (programStage: ?ProgramStage, existingRelatedEvents: LinkableEvent[]) => { - console.log('programStage', programStage); - console.log('existingRelatedEvents', existingRelatedEvents); const hiddenProgramStages = useSelector(({ rulesEffectsHiddenProgramStageDesc }) => rulesEffectsHiddenProgramStageDesc?.['enrollmentEvent-newEvent'], );