From fdce203c0e2fc1a28df38ed6c8aa70289bee2afe Mon Sep 17 00:00:00 2001 From: himeshr Date: Thu, 4 Apr 2024 18:48:15 +0530 Subject: [PATCH] #1133 | Handle preview of media content within QuestionGroups in Observations Summary view --- src/dataEntryApp/components/Observations.js | 28 +++++++++++++++------ 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/dataEntryApp/components/Observations.js b/src/dataEntryApp/components/Observations.js index 1a5d45704..4cf4ce906 100644 --- a/src/dataEntryApp/components/Observations.js +++ b/src/dataEntryApp/components/Observations.js @@ -124,6 +124,26 @@ function renderSingleQuestionGroup( ); } +function initMediaObservations(observations) { + const mediaObservations = [ + ...observations.filter(obs => + includes( + [Concept.dataType.Image, Concept.dataType.Video, Concept.dataType.File], + obs.concept.datatype + ) + ) + ]; + //TODO handle Repeatable Question Group media observations + observations + .filter(obs => obs.concept.isQuestionGroup()) + .map( + qgObservation => + qgObservation.valueJSON.groupObservations && + mediaObservations.push(...qgObservation.valueJSON.groupObservations) + ); + return mediaObservations; +} + const Observations = ({ observations, additionalRows, form, customKey, highlight }) => { const i = new i18n(); const { t } = useTranslation(); @@ -324,13 +344,7 @@ const Observations = ({ observations, additionalRows, form, customKey, highlight const orderedObs = isNotAssociatedWithForm ? observations : form.orderObservationsPerFEG(observations); - - const mediaObservations = observations.filter(obs => - includes( - [Concept.dataType.Image, Concept.dataType.Video, Concept.dataType.File], - obs.concept.datatype - ) - ); + const mediaObservations = initMediaObservations(observations); React.useEffect(() => { refreshSignedUrlsForMedia().then(mediaDataList => setMediaDataList(mediaDataList));