@unite-us/app-create-referral 0.15.166 → 0.15.168

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/AppReferrals.js +3 -4
  2. package/dist/AppReferrals.js.map +1 -1
  3. package/dist/AppReferrals.test.js +27 -20
  4. package/dist/AppReferrals.test.js.map +1 -1
  5. package/dist/__testUtils__/mockData/utils.js +13 -19
  6. package/dist/__testUtils__/mockData/utils.js.map +1 -1
  7. package/dist/__testUtils__/mockServer/handlers.js +7 -13
  8. package/dist/__testUtils__/mockServer/handlers.js.map +1 -1
  9. package/dist/__testUtils__/test-utils.js +10 -15
  10. package/dist/__testUtils__/test-utils.js.map +1 -1
  11. package/dist/actions/Document/Contact/Group/fileUploadUtils.js +1 -1
  12. package/dist/actions/Document/Contact/Group/fileUploadUtils.js.map +1 -1
  13. package/dist/actions/Group/fetchCoreGroupForms.js +1 -1
  14. package/dist/actions/Group/fetchCoreGroupForms.js.map +1 -1
  15. package/dist/actions/Referral/cannotMoveToReferralReasons.js +10 -11
  16. package/dist/actions/Referral/cannotMoveToReferralReasons.js.map +1 -1
  17. package/dist/actions/Referral/fetchCoreServices.js +19 -25
  18. package/dist/actions/Referral/fetchCoreServices.js.map +1 -1
  19. package/dist/actions/Referral/removeReferralProgram.js +3 -5
  20. package/dist/actions/Referral/removeReferralProgram.js.map +1 -1
  21. package/dist/api/ApiHooks.js +39 -36
  22. package/dist/api/ApiHooks.js.map +1 -1
  23. package/dist/api/config.js +9 -8
  24. package/dist/api/config.js.map +1 -1
  25. package/dist/common/form/CurrencyField/index.js +3 -5
  26. package/dist/common/form/CurrencyField/index.js.map +1 -1
  27. package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js +3 -3
  28. package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js.map +1 -1
  29. package/dist/common/form/DocumentUploader/components/DocumentsListView.js +1 -1
  30. package/dist/common/form/DocumentUploader/components/DocumentsListView.js.map +1 -1
  31. package/dist/common/form/FileUploadV2/FileUpload.js +27 -15
  32. package/dist/common/form/FileUploadV2/FileUpload.js.map +1 -1
  33. package/dist/common/form/FileUploadV2/FileUpload.test.js +6 -10
  34. package/dist/common/form/FileUploadV2/FileUpload.test.js.map +1 -1
  35. package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js +6 -7
  36. package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js.map +1 -1
  37. package/dist/common/form/FormForm/index.js +10 -10
  38. package/dist/common/form/FormForm/index.js.map +1 -1
  39. package/dist/components/DollarAmount.js +2 -2
  40. package/dist/components/DollarAmount.js.map +1 -1
  41. package/dist/components/LineItem.js +1 -1
  42. package/dist/components/LineItem.js.map +1 -1
  43. package/dist/components/ReferralStepper.js +4 -5
  44. package/dist/components/ReferralStepper.js.map +1 -1
  45. package/dist/components/SearchableField.js +3 -4
  46. package/dist/components/SearchableField.js.map +1 -1
  47. package/dist/components/Stepper.js +7 -7
  48. package/dist/components/Stepper.js.map +1 -1
  49. package/dist/components/modal/Dialog.js +15 -10
  50. package/dist/components/modal/Dialog.js.map +1 -1
  51. package/dist/components/service_authorization/AuthorizationSpendCard.js +5 -5
  52. package/dist/components/service_authorization/AuthorizationSpendCard.js.map +1 -1
  53. package/dist/components/service_authorization/CapsInfo.js +10 -10
  54. package/dist/components/service_authorization/CapsInfo.js.map +1 -1
  55. package/dist/components/service_authorization/CaseStatus.js +2 -2
  56. package/dist/components/service_authorization/CaseStatus.js.map +1 -1
  57. package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js +1 -2
  58. package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js.map +1 -1
  59. package/dist/components/service_authorization/ReferralAuthSpendExpandable.js +2 -2
  60. package/dist/components/service_authorization/ReferralAuthSpendExpandable.js.map +1 -1
  61. package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js +4 -4
  62. package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js.map +1 -1
  63. package/dist/components/service_authorization/formatShortDate.js +1 -1
  64. package/dist/components/service_authorization/formatShortDate.js.map +1 -1
  65. package/dist/components/spinners/Spinner/Spinner.js +1 -1
  66. package/dist/components/spinners/Spinner/Spinner.js.map +1 -1
  67. package/dist/context/AppCreateReferralProvider.js +4 -4
  68. package/dist/context/AppCreateReferralProvider.js.map +1 -1
  69. package/dist/context/state.js +14 -6
  70. package/dist/context/state.js.map +1 -1
  71. package/dist/context/withAppCreateReferralContext.js +3 -5
  72. package/dist/context/withAppCreateReferralContext.js.map +1 -1
  73. package/dist/hooks/__tests__/useCreateReferrals.test.js +19 -17
  74. package/dist/hooks/__tests__/useCreateReferrals.test.js.map +1 -1
  75. package/dist/hooks/sendReferral.js +38 -35
  76. package/dist/hooks/sendReferral.js.map +1 -1
  77. package/dist/hooks/useClinicalModificationOptions.js +1 -2
  78. package/dist/hooks/useClinicalModificationOptions.js.map +1 -1
  79. package/dist/hooks/useCreateReferrals.js +107 -90
  80. package/dist/hooks/useCreateReferrals.js.map +1 -1
  81. package/dist/hooks/useCreateResourceList.js +11 -12
  82. package/dist/hooks/useCreateResourceList.js.map +1 -1
  83. package/dist/hooks/useCreateShareEvent.js +2 -2
  84. package/dist/hooks/useCreateShareEvent.js.map +1 -1
  85. package/dist/hooks/useForwardReferral.js +36 -36
  86. package/dist/hooks/useForwardReferral.js.map +1 -1
  87. package/dist/hooks/useUpdateResourceList.js +16 -17
  88. package/dist/hooks/useUpdateResourceList.js.map +1 -1
  89. package/dist/pages/builder/ReferralBuilder.js +32 -31
  90. package/dist/pages/builder/ReferralBuilder.js.map +1 -1
  91. package/dist/pages/builder/ReferralBuilderForm.js +7 -10
  92. package/dist/pages/builder/ReferralBuilderForm.js.map +1 -1
  93. package/dist/pages/builder/ReferralBuilderFormContent.js +43 -36
  94. package/dist/pages/builder/ReferralBuilderFormContent.js.map +1 -1
  95. package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js +1 -1
  96. package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js.map +1 -1
  97. package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js +16 -16
  98. package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js.map +1 -1
  99. package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js +12 -12
  100. package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js.map +1 -1
  101. package/dist/pages/builder/__tests__/ReferralBuilderForm.attachments.test.js +19 -14
  102. package/dist/pages/builder/__tests__/ReferralBuilderForm.attachments.test.js.map +1 -1
  103. package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js +12 -12
  104. package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js.map +1 -1
  105. package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js +1 -1
  106. package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js.map +1 -1
  107. package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js +7 -7
  108. package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js.map +1 -1
  109. package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js +15 -17
  110. package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js.map +1 -1
  111. package/dist/pages/builder/__tests__/buildDraftState.test.js +4 -6
  112. package/dist/pages/builder/__tests__/buildDraftState.test.js.map +1 -1
  113. package/dist/pages/builder/__tests__/buildGroupedReferrals.networkBug.test.js +4 -10
  114. package/dist/pages/builder/__tests__/buildGroupedReferrals.networkBug.test.js.map +1 -1
  115. package/dist/pages/builder/buildDraftState.js +2 -2
  116. package/dist/pages/builder/buildDraftState.js.map +1 -1
  117. package/dist/pages/builder/components/AuthorizationSubform.js +19 -19
  118. package/dist/pages/builder/components/AuthorizationSubform.js.map +1 -1
  119. package/dist/pages/builder/components/ChooseOneServiceTypeModal.js +5 -6
  120. package/dist/pages/builder/components/ChooseOneServiceTypeModal.js.map +1 -1
  121. package/dist/pages/builder/components/ProgramHeader.js +1 -1
  122. package/dist/pages/builder/components/ProgramHeader.js.map +1 -1
  123. package/dist/pages/builder/components/ProgramMenu.js +1 -1
  124. package/dist/pages/builder/components/ProgramMenu.js.map +1 -1
  125. package/dist/pages/builder/components/ReferralBuilderContent.js +5 -4
  126. package/dist/pages/builder/components/ReferralBuilderContent.js.map +1 -1
  127. package/dist/pages/builder/components/ReferralCard.js +11 -11
  128. package/dist/pages/builder/components/ReferralCard.js.map +1 -1
  129. package/dist/pages/builder/components/ReferralClientNeedsField.js +4 -6
  130. package/dist/pages/builder/components/ReferralClientNeedsField.js.map +1 -1
  131. package/dist/pages/builder/components/ReferralProgramCard.js +2 -2
  132. package/dist/pages/builder/components/ReferralProgramCard.js.map +1 -1
  133. package/dist/pages/builder/components/ReferralProgramMenu.js +3 -3
  134. package/dist/pages/builder/components/ReferralProgramMenu.js.map +1 -1
  135. package/dist/pages/builder/constants.js +18 -7
  136. package/dist/pages/builder/constants.js.map +1 -1
  137. package/dist/pages/builder/hooks/useBuildReferrals.js +6 -13
  138. package/dist/pages/builder/hooks/useBuildReferrals.js.map +1 -1
  139. package/dist/pages/builder/hooks/useReferralMutations.js +22 -15
  140. package/dist/pages/builder/hooks/useReferralMutations.js.map +1 -1
  141. package/dist/pages/builder/utils/buildGroupedReferrals.js +14 -25
  142. package/dist/pages/builder/utils/buildGroupedReferrals.js.map +1 -1
  143. package/dist/pages/builder/utils/buildGroupedReferralsHelpers.js +20 -40
  144. package/dist/pages/builder/utils/buildGroupedReferralsHelpers.js.map +1 -1
  145. package/dist/pages/builder/utils/formatProgramDetail.js +16 -18
  146. package/dist/pages/builder/utils/formatProgramDetail.js.map +1 -1
  147. package/dist/pages/builder/utils/referralBuilderFormDraftAuth.js +26 -26
  148. package/dist/pages/builder/utils/referralBuilderFormDraftAuth.js.map +1 -1
  149. package/dist/pages/builder/utils/referralBuilderFormUtils.js +15 -24
  150. package/dist/pages/builder/utils/referralBuilderFormUtils.js.map +1 -1
  151. package/dist/pages/builder/utils/referralBuilderFormValidation.js +20 -24
  152. package/dist/pages/builder/utils/referralBuilderFormValidation.js.map +1 -1
  153. package/dist/pages/builder/utils/referralBuilderUtils.js +20 -34
  154. package/dist/pages/builder/utils/referralBuilderUtils.js.map +1 -1
  155. package/dist/pages/builder/utils.js +45 -64
  156. package/dist/pages/builder/utils.js.map +1 -1
  157. package/dist/pages/review/DropdownMultiplesReferrals.js +12 -14
  158. package/dist/pages/review/DropdownMultiplesReferrals.js.map +1 -1
  159. package/dist/pages/review/ReferralsSent.js +19 -26
  160. package/dist/pages/review/ReferralsSent.js.map +1 -1
  161. package/dist/pages/review/Review.js +69 -88
  162. package/dist/pages/review/Review.js.map +1 -1
  163. package/dist/pages/review/SuccessReferralRedesign.js +2 -2
  164. package/dist/pages/review/SuccessReferralRedesign.js.map +1 -1
  165. package/dist/pages/review/__tests__/ReferralsSent.test.js +16 -16
  166. package/dist/pages/review/__tests__/ReferralsSent.test.js.map +1 -1
  167. package/dist/pages/review/__tests__/Review.test.js +30 -22
  168. package/dist/pages/review/__tests__/Review.test.js.map +1 -1
  169. package/dist/pages/review/constants.js +3 -3
  170. package/dist/pages/review/constants.js.map +1 -1
  171. package/dist/pages/review/referralStatusRedesign.js +5 -6
  172. package/dist/pages/review/referralStatusRedesign.js.map +1 -1
  173. package/dist/pages/supporting-info/SupportingInfo.js +14 -21
  174. package/dist/pages/supporting-info/SupportingInfo.js.map +1 -1
  175. package/dist/utils/attachmentUtils.js +1 -1
  176. package/dist/utils/attachmentUtils.js.map +1 -1
  177. package/dist/utils/handleDraftSaveResponse.js +1 -1
  178. package/dist/utils/handleDraftSaveResponse.js.map +1 -1
  179. package/dist/utils/referralToConsent.js +5 -8
  180. package/dist/utils/referralToConsent.js.map +1 -1
  181. package/dist/utils/validateCostAmount.js +1 -1
  182. package/dist/utils/validateCostAmount.js.map +1 -1
  183. package/dist/utils/validateUnitAmount.js +1 -1
  184. package/dist/utils/validateUnitAmount.js.map +1 -1
  185. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Review.js","names":["Icon","React","useState","useEffect","useRef","useMemo","Skeleton","get","isEmpty","includes","isEqual","some","values","intersectionBy","upperFirst","useNavigate","StepHeader","READY_TO_SUMBIT_INFO_TEXT","REVIEW_REFERRAL_DESCRIPTION","CONSENT_DESCRIPTION","CONSENT_COMPLETED","REVIEW_LOADING_SCREEN_DESCRIPTION","referralIsGrouped","referralIsOON","ReferralsSent","NoReferralsDisplay","setData","useAppCreateReferralContext","DeleteReferralModal","NavButtons","CreateReferralContainer","ReferralAuthorizationRequestSummary","useCreateReferrals","CALLBACKS","COMPONENTS","APP_ENVIRONMENT","FilePreviewWrapper","useCreateShareEvent","DocumentsListView","hasOffPlatformReferrals","isEmptyErrors","useFeatureFlag","referralToConsent","formatShortDate2FromTimestamp","useForwardReferral","DropdownMultiplesReferrals","useFind","getDisplayAttachments","handleDraftSaveResponse","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","EMPTY_COLLAPSED_REFERRAL_INDEXES","Review","_currentProvider$nh_c","_features$nh_consent2","_features$nh_consent3","navigate","dispatch","state","fieldsConfig","referrals","person","resourceListId","currentEmployee","currentProvider","caseId","referralId","referralType","serviceTypeName","selectedPrograms","personId","draftState","reviewCollapsedReferralIndexes","crtb854ForwardingSuperset","featureFlagClientNeeds","newLanguageDashboard","sent","updateSent","isSuccessfullyForwarded","setIsSuccessfullyForwarded","fieldErrors","setFieldErrors","expandedReferrals","setExpandedReferrals","deleteReferralModalIsOpen","setDeleteReferralModalIsOpen","selectedReferralToDelete","setSelectedReferralToDelete","selectedReferralToLink","setSelectedReferralToLink","consented","setConsented","consentCompleted","setConsentCompleted","disableSubmit","setDisableSubmit","isSavingDraft","setIsSavingDraft","loading","setLoading","formRefs","referralsResultDetail","setReferralsResultDetail","hasBeenSubmitted","setHasBeenSubmitted","referralsToConsent","setReferralsToConsent","showNHConsent","nh_consent","clientNeedsPersonId","id","features","nhConsentEnabled","length","enabled","data","clientNeedsData","concat","most_recent","queryConfig","placeholderData","undefined","clientNeedsMap","_clientNeedsData$data","needs","reduce","map","condition","_condition$sdoh_categ","sdoh_category","name","getClientNeedName","needId","createShareEvent","isForwardReferralPath","referralSentSuccessfully","errors","Object","keys","acc","index","fieldError","referralSelected","hasMultipleReferrals","setReferralErrors","referralIndex","newErrors","prevFieldErrors","currentErrors","updatedErrors","_objectSpread","onChevronClick","expanded","ref","filter","onDeleteReferralClick","referral","_CALLBACKS$notify","_CALLBACKS$notify$err","notify","error","call","DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE","onCloseDeleteReferralModal","r","i","attachedDocuments","attachableDocuments","doc","attached","isOON","deleteModal","current","openDialog","closeDialog","sessionStorage","setItem","window","performance","navEntries","getEntriesByType","isRefresh","type","referralsWereSubmitted","getItem","removeItem","onReferralReload","console","deleteSelectedReferral","updatedReferrals","newReferralPrograms","flatMap","programs","newSelectedPrograms","createReferrals","forwardReferral","handleSaveDraftReferral","response","draft","err","setFocus","setTimeout","_errors$index","_formRefs$current","mutators","setFieldTouched","referralSelectedField","document","getElementById","focus","focusErrors","firstIndexWithErrors","find","idx","Boolean","parseInt","showReferralsNotifications","referralResponses","amountOfReferralsSent","_ref","totalReferrals","hasAttachmentFailure","_ref2","attachmentStatus","warn","success","addIsGrouped","detail","referralsList","item","isGrouped","getReferralIdsByIndex","createdReferrals","arguments","referralIdByIndex","processSubmitResult","referralsToConsentData","detailWithGrouping","isValidForwardResponse","forwardReferrals","errorMessage","every","isSuccessfulForward","fullyForwaded","createRemainingReferrals","referralForwardedDeleted","splice","referralIdsByIndex","shippingDetail","_referralIdsByIndex$i","attachmentErrors","getForwardErrorMessage","_forwardReferrals$err","handleForwardReferralSubmit","_referrals$selectedRe","referralToForward","status","newReferrals","originalReferral","_referral$data","push","handleStandardSubmit","_person$consent","_referralIdsByIndex$i2","consent","handleSubmit","onConsentComplete","event","_event$data","consentAppUrl","consentUrl","eventOrigin","originIsConsentApp","onNavigateAway","onSubmitConsent","addEventListener","removeEventListener","_features$nh_consent","showingConsent","history","pushState","location","href","handlePopState","preventDefault","onReferralCompleted","_CALLBACKS$consent","Consent","isStepReferralSent","children","className","header","contact","initializedValue","updateGlobalState","dialogContentStyles","height","width","style","marginTop","icon","onBackClick","onForwardClick","onSaveDraftReferral","primaryLabel","hideForwardButtons","hideSaveDraftLink","disabled","onClick","onNavigateBack","isAuthRequired","preventReferralDelete","color","selectedReferral","ariaLabel","direction","refModal","el","onCloseModal","onDeleteSelectedReferral","program","authorizationRequest","feeScheduleProgram","needIndex","documents","existingFiles"],"sources":["../../../src/pages/review/Review.js"],"sourcesContent":["import { Icon } from '@unite-us/app-components';\nimport React, { useState, useEffect, useRef, useMemo } from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport { get, isEmpty, includes, isEqual, some, values, intersectionBy, upperFirst } from 'lodash';\nimport { useNavigate } from 'react-router-dom';\nimport StepHeader from '../../components/StepHeader';\nimport {\n READY_TO_SUMBIT_INFO_TEXT,\n REVIEW_REFERRAL_DESCRIPTION,\n CONSENT_DESCRIPTION,\n CONSENT_COMPLETED,\n REVIEW_LOADING_SCREEN_DESCRIPTION,\n} from './constants';\nimport {\n referralIsGrouped,\n referralIsOON,\n} from '../builder/utils.js';\nimport ReferralsSent from './ReferralsSent';\nimport NoReferralsDisplay from '../../components/NoReferralsDisplay';\nimport { setData, useAppCreateReferralContext } from '../../context/AppCreateReferralProvider';\nimport DeleteReferralModal from './DeleteReferralModal';\nimport NavButtons from '../../components/NavButtons';\nimport CreateReferralContainer from '../../components/CreateReferralContainer';\nimport ReferralAuthorizationRequestSummary from '../../components/service_authorization/ReferralAuthorizationRequestSummary';\nimport useCreateReferrals from '../../hooks/useCreateReferrals';\nimport { CALLBACKS, COMPONENTS, APP_ENVIRONMENT } from '../../api/config';\nimport FilePreviewWrapper from '../../common/form/FileUploadV2/components/FilePreviewWrapper';\nimport useCreateShareEvent from '../../hooks/useCreateShareEvent';\nimport DocumentsListView from '../../common/form/DocumentUploader/components/DocumentsListView'\nimport { hasOffPlatformReferrals, isEmptyErrors } from '../builder/utils';\nimport { useFeatureFlag } from '../../utils/useFeatureFlag';\nimport referralToConsent from '../../utils/referralToConsent';\nimport { formatShortDate2FromTimestamp } from '../../components/service_authorization/formatShortDate';\nimport useForwardReferral from '../../hooks/useForwardReferral';\nimport DropdownMultiplesReferrals from './DropdownMultiplesReferrals';\nimport { useFind } from '../../api/ApiHooks';\nimport { getDisplayAttachments } from '../../utils/attachmentUtils.js';\nimport handleDraftSaveResponse from '../../utils/handleDraftSaveResponse';\n\nconst EMPTY_COLLAPSED_REFERRAL_INDEXES = [];\n\nexport default function Review() {\n const navigate = useNavigate();\n\n const {\n dispatch,\n state: {\n fieldsConfig,\n referrals,\n person,\n resourceListId,\n currentEmployee,\n currentProvider,\n caseId,\n referralId,\n referralType,\n serviceTypeName,\n selectedPrograms,\n personId,\n draftState,\n reviewCollapsedReferralIndexes = EMPTY_COLLAPSED_REFERRAL_INDEXES,\n }\n } = useAppCreateReferralContext();\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n const featureFlagClientNeeds = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n const newLanguageDashboard = useFeatureFlag('crtb2182ClarifyReferralLanguage', false);\n const [sent, updateSent] = useState(false);\n const [isSuccessfullyForwarded, setIsSuccessfullyForwarded] = useState(false);\n const [fieldErrors, setFieldErrors] = useState({})\n const [expandedReferrals, setExpandedReferrals] = useState([]);\n const [deleteReferralModalIsOpen, setDeleteReferralModalIsOpen] = useState(false);\n const [selectedReferralToDelete, setSelectedReferralToDelete] = useState(-1);\n const [selectedReferralToLink, setSelectedReferralToLink] = useState(0);\n // initialize with consent=true to permit ability to send referrals,\n // then redefine on submit to person's actual consent value to (possibly) show consent form.\n const [consented, setConsented] = useState(true);\n const [consentCompleted, setConsentCompleted] = useState(false);\n const [disableSubmit, setDisableSubmit] = useState(false);\n const [isSavingDraft, setIsSavingDraft] = useState(false);\n const [loading, setLoading] = useState(false);\n const formRefs = useRef({});\n const [referralsResultDetail, setReferralsResultDetail] = useState([]);\n const [hasBeenSubmitted, setHasBeenSubmitted] = useState(false);\n const [referralsToConsent, setReferralsToConsent] = useState([]);\n const showNHConsent = currentProvider?.nh_consent ?? false;\n const clientNeedsPersonId = personId || person?.id;\n\n const features = useMemo(() => {\n const nhConsentEnabled = showNHConsent && referralsToConsent.length > 0;\n return {\n nh_consent: {\n enabled: nhConsentEnabled,\n referrals: nhConsentEnabled ? referralsToConsent : [],\n }\n };\n }, [showNHConsent, referralsToConsent]);\n\n const { data: clientNeedsData } = useFind(\n `people/${clientNeedsPersonId || ''}/person_condition`,\n {\n most_recent: true,\n },\n {\n queryConfig: {\n enabled: featureFlagClientNeeds && !!clientNeedsPersonId,\n placeholderData: undefined,\n },\n },\n );\n\n const clientNeedsMap = useMemo(() => {\n const needs = clientNeedsData?.data?.data || [];\n return needs.reduce((map, condition) => {\n map[condition.id] = upperFirst(condition?.sdoh_category ?? condition?.name);\n return map;\n }, {});\n }, [clientNeedsData]);\n\n const getClientNeedName = (needId) => {\n return clientNeedsMap[needId] || needId;\n };\n\n const createShareEvent = useCreateShareEvent();\n const isForwardReferralPath = !!referralId && !!referralType;\n const referralSentSuccessfully = sent || isSuccessfullyForwarded;\n\n const errors = Object.keys(fieldErrors).reduce((acc, index) => {\n const fieldError = fieldErrors[index];\n acc[index] = {\n referralSelected: fieldError?.referralSelected,\n }\n return acc;\n }, {});\n\n const hasMultipleReferrals = () => referrals.length > 1;\n\n const setReferralErrors = (referralIndex, newErrors) => {\n setFieldErrors((prevFieldErrors) => {\n const currentErrors = prevFieldErrors[referralIndex];\n const updatedErrors = { ...currentErrors, ...newErrors };\n\n if (isEqual(updatedErrors, currentErrors)) {\n return prevFieldErrors;\n }\n\n return {\n ...prevFieldErrors,\n [referralIndex]: updatedErrors,\n };\n });\n };\n\n const onChevronClick = (index) => {\n const expanded = expandedReferrals?.map((ref) => {\n if (ref.index === index) {\n return { ...ref, expanded: !ref.expanded };\n }\n\n return ref;\n })\n setExpandedReferrals(expanded);\n dispatch(setData({\n reviewCollapsedReferralIndexes: expanded\n ?.filter((ref) => !ref.expanded)\n .map((ref) => ref.index),\n }));\n }\n\n const onDeleteReferralClick = (index) => {\n const referral = referrals[index];\n\n if (draftState?.state === 'draft' && get(referral, 'case.service_authorization.id')) {\n CALLBACKS.notify?.error?.(DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE);\n return;\n }\n\n setSelectedReferralToDelete(index);\n setDeleteReferralModalIsOpen(true);\n }\n\n const onCloseDeleteReferralModal = () => {\n setDeleteReferralModalIsOpen(false);\n }\n\n useEffect(() => {\n const expanded = referrals?.map((r, i) => ({\n ...r,\n attachedDocuments: r.attachableDocuments ? r.attachableDocuments.filter((doc) => doc.attached) : [],\n expanded: !reviewCollapsedReferralIndexes.includes(i),\n index: i,\n isOON: referralIsOON(r),\n }));\n setExpandedReferrals(expanded)\n }, [referrals, reviewCollapsedReferralIndexes]);\n\n const deleteModal = useRef([]);\n\n useEffect(() => {\n if (!isEmpty(referrals)) {\n if (deleteReferralModalIsOpen) {\n deleteModal.current[selectedReferralToDelete].openDialog();\n } else if (selectedReferralToDelete >= 0) {\n deleteModal.current[selectedReferralToDelete].closeDialog();\n setSelectedReferralToDelete(-1);\n }\n }\n }, [deleteReferralModalIsOpen, selectedReferralToDelete, referrals]);\n\nuseEffect(() => {\n if (referralsResultDetail?.length > 0) {\n sessionStorage.setItem('referralsSubmitted', 'true');\n }\n\n if (window.performance) {\n try {\n const navEntries = (performance.getEntriesByType && performance.getEntriesByType('navigation')) || [];\n const isRefresh = navEntries.length > 0 && navEntries[0].type === 'reload';\n const referralsWereSubmitted = sessionStorage.getItem('referralsSubmitted') === 'true';\n\n if (isRefresh && referralsWereSubmitted) {\n sessionStorage.removeItem('referralsSubmitted');\n CALLBACKS.onReferralReload();\n }\n } catch (error) {\n console.error(error);\n }\n }\n}, [referralsResultDetail]);\n\n const deleteSelectedReferral = () => {\n const updatedReferrals = referrals.filter((r, i) => i !== selectedReferralToDelete);\n const newReferralPrograms = updatedReferrals.flatMap((r) => r.programs);\n const newSelectedPrograms = intersectionBy(selectedPrograms, newReferralPrograms, 'id');\n dispatch(setData({\n referrals: [...updatedReferrals],\n selectedPrograms: [...newSelectedPrograms],\n }));\n onCloseDeleteReferralModal();\n }\n\n const createReferrals = useCreateReferrals();\n const forwardReferral = useForwardReferral();\n\n const handleSaveDraftReferral = async () => {\n if (isSavingDraft) return;\n\n setIsSavingDraft(true);\n try {\n const response = await createReferrals({ draft: true });\n handleDraftSaveResponse(response, dispatch);\n } catch (err) {\n console.error(err)\n } finally {\n setIsSavingDraft(false);\n }\n };\n\n const setFocus = (index) => {\n setTimeout(() => {\n if (errors[index]?.referralSelected) {\n formRefs.current?.mutators?.setFieldTouched('referralSelected', true);\n const referralSelectedField = document.getElementById(\"referralSelected\");\n return referralSelectedField.focus();\n }\n }, 100);\n }\n\n const focusErrors = () => {\n let index = 0;\n const firstIndexWithErrors = Object.keys(errors).find(idx =>\n some(values(errors[idx]), Boolean)\n );\n\n if (!some(values(errors[index]), Boolean) && firstIndexWithErrors) {\n index = parseInt(firstIndexWithErrors);\n }\n setFocus(index);\n };\n\n const showReferralsNotifications = (referralResponses) => {\n const amountOfReferralsSent = referralResponses.filter(({ sent }) => sent).length;\n const totalReferrals = referralResponses.length;\n const hasAttachmentFailure = referralResponses.some(({ attachmentStatus }) => attachmentStatus === 'partial' || attachmentStatus === 'failed');\n\n if (amountOfReferralsSent === totalReferrals && hasAttachmentFailure) {\n CALLBACKS.notify.warn('Referrals created, but some attachments failed');\n } else if (amountOfReferralsSent === totalReferrals) {\n CALLBACKS.notify.success('Referrals created');\n } else if (amountOfReferralsSent > 0) {\n CALLBACKS.notify.warn('Some referrals created');\n } else {\n CALLBACKS.notify.error('No referrals created');\n }\n };\n\n const addIsGrouped = (detail, referralsList) => {\n return (detail || []).map((item) => {\n const referral = referralsList?.[item.index];\n\n return {\n ...item,\n isGrouped: referral ? referralIsGrouped(referral) : false,\n };\n });\n };\n\n const getReferralIdsByIndex = (createdReferrals = []) => {\n return createdReferrals.reduce((referralIdByIndex, { referralIndex, id } = {}) => {\n if (referralIndex == null) {\n return referralIdByIndex;\n }\n\n referralIdByIndex[referralIndex] = id || '';\n\n return referralIdByIndex;\n }, {});\n };\n\n const processSubmitResult = (detail, referralsToConsentData) => {\n const detailWithGrouping = addIsGrouped(detail, referrals);\n setReferralsToConsent(referralsToConsentData);\n setReferralsResultDetail(detailWithGrouping);\n showReferralsNotifications(detailWithGrouping);\n };\n\n const isValidForwardResponse = (forwardReferrals) =>\n forwardReferrals !== false &&\n !forwardReferrals?.errorMessage &&\n forwardReferrals.every(response => response !== false);\n\n const isSuccessfulForward = (forwardReferrals, fullyForwaded) =>\n isValidForwardResponse(forwardReferrals) && fullyForwaded;\n\n const createRemainingReferrals = async () => {\n if (referrals.length < 2) return { detail: [], response: { referralsToConsent: [] } };\n\n const referralForwardedDeleted = referrals.splice(selectedReferralToLink, 1);\n const response = await createReferrals();\n const referralIdsByIndex = getReferralIdsByIndex(response.referrals);\n const detail = response.shippingDetail.map(item => ({\n id: item.id,\n index: item.index >= selectedReferralToLink ? item.index + 1 : item.index,\n sent: item.sent,\n caseId: item.caseId,\n error: item.error,\n attachmentStatus: item.attachmentStatus,\n attachmentErrors: item.attachmentErrors,\n referralId: referralIdsByIndex[item.index] ?? '',\n }));\n referrals.splice(selectedReferralToLink, 0, referralForwardedDeleted[0]);\n\n return { detail, response };\n };\n\n const getForwardErrorMessage = (forwardReferrals, fullyForwaded) =>\n forwardReferrals?.errorMessage ?? (fullyForwaded ? null : \"Unexpected error\");\n\n const handleForwardReferralSubmit = async () => {\n const referralToForward = referrals[selectedReferralToLink] ?? null;\n const forwardReferrals = await forwardReferral({\n caseId,\n referralToForward,\n });\n\n let fullyForwaded = false;\n\n if (isValidForwardResponse(forwardReferrals)) {\n fullyForwaded = forwardReferrals.every(response => response?.status >= 200 && response?.status < 300);\n };\n\n const { detail, response } = await createRemainingReferrals();\n\n const errorMessage = getForwardErrorMessage(forwardReferrals, fullyForwaded);\n detail.splice(selectedReferralToLink, 0, {\n index: selectedReferralToLink,\n sent: fullyForwaded,\n error: errorMessage,\n referralId: get(forwardReferrals, '[0].data.data.id', ''),\n caseId: caseId,\n });\n\n // Add forwarded referrals to the response.referralToConsent\n if (isSuccessfulForward(forwardReferrals, fullyForwaded)) {\n const newReferrals = referralToConsent({\n originalReferral: referralToForward,\n createdReferrals: forwardReferrals.map(referral => referral.data?.data),\n });\n\n if (newReferrals) response.referralsToConsent.push(newReferrals);\n }\n\n setIsSuccessfullyForwarded(fullyForwaded);\n processSubmitResult(detail, response.referralsToConsent);\n };\n\n const handleStandardSubmit = async () => {\n const response = await createReferrals({ caseId });\n updateSent(true);\n const referralIdsByIndex = getReferralIdsByIndex(response.referrals);\n const detail = response.shippingDetail.map(item => ({\n id: item.id,\n index: item.index,\n sent: item.sent,\n caseId: item.caseId,\n error: item.error,\n attachmentStatus: item.attachmentStatus,\n attachmentErrors: item.attachmentErrors,\n referralId: referralIdsByIndex[item.index] ?? '',\n }));\n\n processSubmitResult(detail, response.referralsToConsent);\n setConsented(person.consent?.state === 'accepted');\n // Create the share event for each referral only if the resource list id is present\n // This is being set from the resource list page or search page before navigating to the create referrals\n if (resourceListId) {\n response.referrals.map((referral) => createShareEvent(referral.id));\n }\n };\n\n const handleSubmit = async () => {\n if (!isEmptyErrors(errors)) return focusErrors();\n\n setLoading(true);\n setDisableSubmit(true);\n\n try {\n if (isForwardReferralPath) {\n await handleForwardReferralSubmit();\n } else {\n await handleStandardSubmit();\n }\n } catch (err) {\n CALLBACKS.notify.error('Error submitting referral');\n setDisableSubmit(false);\n } finally {\n setLoading(false);\n setHasBeenSubmitted(true);\n }\n };\n\n // When submitting consent through Consent App\n const onConsentComplete = async (event) => {\n const consentAppUrl = APP_ENVIRONMENT.consentUrl;\n const eventOrigin = get(event, 'origin');\n const originIsConsentApp = includes(consentAppUrl, eventOrigin);\n\n if (event?.data?.status === CONSENT_COMPLETED && originIsConsentApp) {\n CALLBACKS.notify.success('Your consent has been recorded.');\n onNavigateAway();\n }\n }\n\n // When not submitting consent through Consent App\n const onNavigateAway = () => {\n CALLBACKS.onSubmitConsent();\n setConsented(true);\n setConsentCompleted(true);\n }\n\n useEffect(() => {\n window.addEventListener('message', onConsentComplete);\n\n return () => {\n window.removeEventListener('message', onConsentComplete);\n };\n }, []);\n\n useEffect(() => {\n const showingConsent = referralSentSuccessfully && (!consented || (features.nh_consent?.enabled && !consentCompleted));\n\n if (showingConsent) {\n window.history.pushState(null, null, window.location.href);\n const handlePopState = (event) => {\n event.preventDefault();\n CALLBACKS.onReferralCompleted();\n };\n window.addEventListener('popstate', handlePopState);\n return () => {\n window.removeEventListener('popstate', handlePopState);\n };\n }\n }, [referralSentSuccessfully, consented, features.nh_consent?.enabled, consentCompleted]);\n\n if (referralSentSuccessfully && (!consented || (features.nh_consent?.enabled && !consentCompleted))) {\n const { Consent } = COMPONENTS;\n\n return (\n <CreateReferralContainer isStepReferralSent={true}>\n <div className=\"px-12 pb-12\">\n <StepHeader header={'Complete Consent'}>\n {CONSENT_DESCRIPTION}\n </StepHeader>\n <Consent\n contact={person}\n currentEmployee={currentEmployee}\n initializedValue=\"user_attestation\"\n updateGlobalState={CALLBACKS?.consent?.updateGlobalState}\n dialogContentStyles={'text-validation-red'}\n onNavigateAway={onNavigateAway}\n features={features}\n />\n </div>\n </CreateReferralContainer>\n );\n }\n\n return (\n <>\n {loading ? (\n <CreateReferralContainer>\n <div className=\"px-12\">\n <h2 className=\"text-base font-proxima font-semibold text-[18px] leading-[28px] text-center mt-5\">\n {REVIEW_LOADING_SCREEN_DESCRIPTION}\n </h2>\n <div className=\"flex justify-center items-center mt-6\">\n <div className=\"py-20 bg-white w-full max-w-4xl px-4 md:px-8 lg:px-16\">\n <div className=\"flex flex-col justify-center items-center\">\n <Skeleton height={50} width={0.9 * 800} style={{ marginTop: 12 }} />\n <Skeleton height={20} width={0.9 * 800} style={{ marginTop: 12 }} />\n <Skeleton height={80} width={0.9 * 800} style={{ marginTop: 12 }} />\n </div>\n <div className=\"flex flex-row justify-center items-center flex-wrap gap-4 mt-4\">\n <Skeleton height={50} width={0.9 * 394} style={{ marginTop: 12 }} />\n <Skeleton height={50} width={0.9 * 394} style={{ marginTop: 12 }} />\n </div>\n </div>\n </div>\n </div>\n </CreateReferralContainer>\n ) : (hasBeenSubmitted) ?\n <ReferralsSent\n referrals={referrals}\n referralsResultDetail={referralsResultDetail}\n isSuccessfullyForwarded={isSuccessfullyForwarded}\n isForwardReferralPath={isForwardReferralPath}\n />\n : (\n <CreateReferralContainer>\n <div className=\"px-12\">\n <StepHeader icon header={'Review Referrals'}>\n {REVIEW_REFERRAL_DESCRIPTION}\n </StepHeader>\n\n <NavButtons\n onBackClick={() => navigate(-1)}\n onForwardClick={handleSubmit}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Confirm & Submit\"\n hideForwardButtons={isEmpty(referrals)}\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n disabled={disableSubmit || isSavingDraft}\n isForwardReferralPath={isForwardReferralPath}\n isSavingDraft={isSavingDraft}\n />\n\n {hasMultipleReferrals() && crtb854ForwardingSuperset && isForwardReferralPath && <DropdownMultiplesReferrals referrals={referrals} setReferralErrors={setReferralErrors} formRefs={formRefs} setSelectedReferralToLink={setSelectedReferralToLink} serviceTypeName={serviceTypeName} />}\n\n {isEmpty(referrals) ? (\n <NoReferralsDisplay onClick={() => CALLBACKS.onNavigateBack()} />\n ) : (\n expandedReferrals?.map((referral, index) => {\n const { programs } = referral;\n const isAuthRequired = get(referral, 'programs[0].fee_schedule_program.authorization_required');\n const preventReferralDelete = draftState?.state === 'draft' &&\n !!get(referral, 'case.service_authorization.id');\n\n return (\n <div className=\"mb-6 mx-auto responsive-max-width\" key={`referral-review-card-${index}`} data-testid={`referral-review-card-${index}`}>\n <div className={`bg-white border border-solid border-blue-border ${referral?.expanded ? \"rounded-t-lg\" : \"rounded\"}`}>\n <div className=\"py-6 px-8 flex justify-between\">\n <h2 className=\"uppercase font-black text-grey text-base\">Referral {index + 1}: {get(referral, 'service.name')}</h2>\n <div className=\"flex items-center\">\n <Icon\n icon=\"Pencil\"\n color=\"#182A44\"\n className=\"mr-3\"\n onClick={() => navigate('/create/builder', { state: { selectedReferral: index } })}\n data-testid={`referral-review-pencil-${index}`}\n ariaLabel=\"edit\"\n />\n {!preventReferralDelete && (\n <Icon icon=\"Delete\" color=\"#182A44\" className=\"mr-3\" onClick={() => onDeleteReferralClick(index)} data-testid={`referral-review-card-trash-${index}`} ariaLabel=\"delete\" />\n )}\n <Icon\n icon=\"ChevronArrow\"\n direction={referral?.expanded ? \"down\" : \"right\"}\n color=\"#182A44\"\n onClick={() => onChevronClick(index)}\n data-testid={`referral-review-card-chevron-${index}`}\n ariaLabel=\"expand\"\n />\n </div>\n </div>\n </div>\n\n <DeleteReferralModal\n refModal={el => deleteModal.current[index] = el}\n onCloseModal={onCloseDeleteReferralModal}\n referral={referral}\n onDeleteSelectedReferral={deleteSelectedReferral}\n />\n\n {\n get(referral, 'expanded', true) ? (\n <div className=\"bg-white border border-solid border-blue-border rounded-b-lg\">\n <div className=\"pt-6 px-8 pb-16\">\n <div className=\"grid grid-cols-3\">\n <div className=\"col-span-2 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Referral Programs</h2>\n {\n programs.map((program, i) => (\n <p key={i}>\n {get(program, 'name')} {get(program, 'provider.name') ? '(' + get(program, 'provider.name') + ')' : ''}\n </p>\n ))\n }\n </div>\n <div className=\"col-span-1 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Referral Network</h2>\n <p>{get(referral, 'network.name')}</p>\n </div>\n {newLanguageDashboard && referral.isOON && (\n <div className=\"bg-alert-yellow border border-solid border-canary-yellow rounded p-3 ml-3 col-span-full mt-10\">\n <p className=\"text-brand-blue\">\n These programs aren't accepting referrals in Unite Us.\n We'll create an off-platform case where you can document communication with or services provided by the program.\n </p>\n </div>\n )}\n {get(referral, 'paymentAuthForm') && isAuthRequired && (\n <div className=\"col-span-3 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Authorization Request</h2>\n <ReferralAuthorizationRequestSummary\n authorizationRequest={get(referral, 'paymentAuthForm')}\n feeScheduleProgram={get(referral, 'programs[0].fee_schedule_program')}\n />\n </div>\n )}\n <div className=\"col-span-2 mt-10 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">{newLanguageDashboard ? 'Description' : 'Referral Description'}</h2>\n <p>{get(referral, 'description')}</p>\n </div>\n {get(referral, 'opened_date') && (\n <div className=\"col-span-1 mt-10 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">{newLanguageDashboard ? 'Case Open Date' : 'Open Date'}</h2>\n <p>{formatShortDate2FromTimestamp(get(referral, 'opened_date'), true)}</p>\n </div>\n )}\n {featureFlagClientNeeds && get(referral, 'client_need.length') && (\n <div className=\"col-span-1 mt-10 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Associated Need{get(referral, 'client_need.length') > 1 ? 's' : ''}</h2>\n {get(referral, 'client_need', []).map((needId, needIndex) => (\n <p key={needIndex}>\n {getClientNeedName(needId)}\n </p>\n ))}\n </div>\n )}\n {get(referral, 'primaryWorker.full_name') && (\n <div className=\"col-span-3 mt-10 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Primary Worker</h2>\n <p>{get(referral, 'primaryWorker.full_name')}</p>\n </div>\n )}\n <div className=\"col-span-3 mt-16 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Attached Documents</h2>\n {!isEmpty(get(referral, 'attachedDocuments')) && (\n <DocumentsListView documents={get(referral, 'attachedDocuments')} />\n )}\n {!isEmpty(getDisplayAttachments(referral)) && (\n <div className=\"file-upload-dropzone mb-3 mt-5\">\n <FilePreviewWrapper existingFiles={getDisplayAttachments(referral)} />\n </div>\n )}\n {isEmpty(getDisplayAttachments(referral)) && isEmpty(get(referral, 'attachedDocuments')) && (\n <p>No documents attached</p>\n )}\n </div>\n <div className=\"col-span-3 bg-light-pale-blue rounded mt-6 p-6 flex\">\n <Icon icon=\"ExclamationCircle\" color=\"#182A44\" className=\"mt-px mr-4\" />\n <p>{READY_TO_SUMBIT_INFO_TEXT}</p>\n </div>\n </div>\n </div>\n </div>\n ) : null\n }\n </div>\n )\n })\n )}\n\n {!isEmpty(referrals) && (\n <div className=\"pb-6\">\n <NavButtons\n onBackClick={() => navigate(-1)}\n onForwardClick={handleSubmit}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Confirm & Submit\"\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n disabled={disableSubmit || isSavingDraft}\n isForwardReferralPath={isForwardReferralPath}\n isSavingDraft={isSavingDraft}\n />\n </div>\n )}\n </div>\n </CreateReferralContainer>\n )}\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Review.js","names":["Icon","React","useState","useEffect","useRef","useMemo","Skeleton","get","isEmpty","includes","isEqual","some","values","intersectionBy","upperFirst","useNavigate","StepHeader","READY_TO_SUMBIT_INFO_TEXT","REVIEW_REFERRAL_DESCRIPTION","CONSENT_DESCRIPTION","CONSENT_COMPLETED","REVIEW_LOADING_SCREEN_DESCRIPTION","referralIsGrouped","referralIsOON","ReferralsSent","NoReferralsDisplay","setData","useAppCreateReferralContext","DeleteReferralModal","NavButtons","CreateReferralContainer","ReferralAuthorizationRequestSummary","useCreateReferrals","CALLBACKS","COMPONENTS","APP_ENVIRONMENT","FilePreviewWrapper","useCreateShareEvent","DocumentsListView","hasOffPlatformReferrals","isEmptyErrors","useFeatureFlag","referralToConsent","formatShortDate2FromTimestamp","useForwardReferral","DropdownMultiplesReferrals","useFind","getDisplayAttachments","handleDraftSaveResponse","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","EMPTY_COLLAPSED_REFERRAL_INDEXES","Review","navigate","dispatch","state","fieldsConfig","referrals","person","resourceListId","currentEmployee","currentProvider","caseId","referralId","referralType","serviceTypeName","selectedPrograms","personId","draftState","reviewCollapsedReferralIndexes","crtb854ForwardingSuperset","featureFlagClientNeeds","newLanguageDashboard","sent","updateSent","isSuccessfullyForwarded","setIsSuccessfullyForwarded","fieldErrors","setFieldErrors","expandedReferrals","setExpandedReferrals","deleteReferralModalIsOpen","setDeleteReferralModalIsOpen","selectedReferralToDelete","setSelectedReferralToDelete","selectedReferralToLink","setSelectedReferralToLink","consented","setConsented","consentCompleted","setConsentCompleted","disableSubmit","setDisableSubmit","isSavingDraft","setIsSavingDraft","loading","setLoading","formRefs","referralsResultDetail","setReferralsResultDetail","hasBeenSubmitted","setHasBeenSubmitted","referralsToConsent","setReferralsToConsent","showNHConsent","nh_consent","clientNeedsPersonId","id","features","nhConsentEnabled","length","enabled","data","clientNeedsData","most_recent","queryConfig","placeholderData","undefined","clientNeedsMap","needs","reduce","map","condition","sdoh_category","name","getClientNeedName","needId","createShareEvent","isForwardReferralPath","referralSentSuccessfully","errors","Object","keys","acc","index","fieldError","referralSelected","hasMultipleReferrals","setReferralErrors","referralIndex","newErrors","prevFieldErrors","currentErrors","updatedErrors","onChevronClick","expanded","ref","filter","onDeleteReferralClick","referral","notify","error","DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE","onCloseDeleteReferralModal","r","i","attachedDocuments","attachableDocuments","doc","attached","isOON","deleteModal","current","openDialog","closeDialog","sessionStorage","setItem","window","performance","navEntries","getEntriesByType","isRefresh","type","referralsWereSubmitted","getItem","removeItem","onReferralReload","console","deleteSelectedReferral","updatedReferrals","newReferralPrograms","flatMap","programs","newSelectedPrograms","createReferrals","forwardReferral","handleSaveDraftReferral","response","draft","err","setFocus","setTimeout","mutators","setFieldTouched","referralSelectedField","document","getElementById","focus","focusErrors","firstIndexWithErrors","find","idx","Boolean","parseInt","showReferralsNotifications","referralResponses","amountOfReferralsSent","_ref","totalReferrals","hasAttachmentFailure","_ref2","attachmentStatus","warn","success","addIsGrouped","detail","referralsList","item","isGrouped","getReferralIdsByIndex","createdReferrals","arguments","referralIdByIndex","processSubmitResult","referralsToConsentData","detailWithGrouping","isValidForwardResponse","forwardReferrals","errorMessage","every","isSuccessfulForward","fullyForwaded","createRemainingReferrals","referralForwardedDeleted","splice","referralIdsByIndex","shippingDetail","attachmentErrors","getForwardErrorMessage","handleForwardReferralSubmit","referralToForward","status","newReferrals","originalReferral","push","handleStandardSubmit","consent","handleSubmit","onConsentComplete","event","consentAppUrl","consentUrl","eventOrigin","originIsConsentApp","onNavigateAway","onSubmitConsent","addEventListener","removeEventListener","showingConsent","history","pushState","location","href","handlePopState","preventDefault","onReferralCompleted","Consent","isStepReferralSent","children","className","header","contact","initializedValue","updateGlobalState","dialogContentStyles","height","width","style","marginTop","icon","onBackClick","onForwardClick","onSaveDraftReferral","primaryLabel","hideForwardButtons","hideSaveDraftLink","disabled","onClick","onNavigateBack","isAuthRequired","preventReferralDelete","color","selectedReferral","ariaLabel","direction","refModal","el","onCloseModal","onDeleteSelectedReferral","program","authorizationRequest","feeScheduleProgram","needIndex","documents","existingFiles"],"sources":["../../../src/pages/review/Review.js"],"sourcesContent":["import { Icon } from '@unite-us/app-components';\nimport React, { useState, useEffect, useRef, useMemo } from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport { get, isEmpty, includes, isEqual, some, values, intersectionBy, upperFirst } from 'lodash';\nimport { useNavigate } from 'react-router-dom';\nimport StepHeader from '../../components/StepHeader';\nimport {\n READY_TO_SUMBIT_INFO_TEXT,\n REVIEW_REFERRAL_DESCRIPTION,\n CONSENT_DESCRIPTION,\n CONSENT_COMPLETED,\n REVIEW_LOADING_SCREEN_DESCRIPTION,\n} from './constants';\nimport {\n referralIsGrouped,\n referralIsOON,\n} from '../builder/utils.js';\nimport ReferralsSent from './ReferralsSent';\nimport NoReferralsDisplay from '../../components/NoReferralsDisplay';\nimport { setData, useAppCreateReferralContext } from '../../context/AppCreateReferralProvider';\nimport DeleteReferralModal from './DeleteReferralModal';\nimport NavButtons from '../../components/NavButtons';\nimport CreateReferralContainer from '../../components/CreateReferralContainer';\nimport ReferralAuthorizationRequestSummary from '../../components/service_authorization/ReferralAuthorizationRequestSummary';\nimport useCreateReferrals from '../../hooks/useCreateReferrals';\nimport { CALLBACKS, COMPONENTS, APP_ENVIRONMENT } from '../../api/config';\nimport FilePreviewWrapper from '../../common/form/FileUploadV2/components/FilePreviewWrapper';\nimport useCreateShareEvent from '../../hooks/useCreateShareEvent';\nimport DocumentsListView from '../../common/form/DocumentUploader/components/DocumentsListView'\nimport { hasOffPlatformReferrals, isEmptyErrors } from '../builder/utils';\nimport { useFeatureFlag } from '../../utils/useFeatureFlag';\nimport referralToConsent from '../../utils/referralToConsent';\nimport { formatShortDate2FromTimestamp } from '../../components/service_authorization/formatShortDate';\nimport useForwardReferral from '../../hooks/useForwardReferral';\nimport DropdownMultiplesReferrals from './DropdownMultiplesReferrals';\nimport { useFind } from '../../api/ApiHooks';\nimport { getDisplayAttachments } from '../../utils/attachmentUtils.js';\nimport handleDraftSaveResponse from '../../utils/handleDraftSaveResponse';\n\nconst EMPTY_COLLAPSED_REFERRAL_INDEXES = [];\n\nexport default function Review() {\n const navigate = useNavigate();\n\n const {\n dispatch,\n state: {\n fieldsConfig,\n referrals,\n person,\n resourceListId,\n currentEmployee,\n currentProvider,\n caseId,\n referralId,\n referralType,\n serviceTypeName,\n selectedPrograms,\n personId,\n draftState,\n reviewCollapsedReferralIndexes = EMPTY_COLLAPSED_REFERRAL_INDEXES,\n }\n } = useAppCreateReferralContext();\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n const featureFlagClientNeeds = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n const newLanguageDashboard = useFeatureFlag('crtb2182ClarifyReferralLanguage', false);\n const [sent, updateSent] = useState(false);\n const [isSuccessfullyForwarded, setIsSuccessfullyForwarded] = useState(false);\n const [fieldErrors, setFieldErrors] = useState({})\n const [expandedReferrals, setExpandedReferrals] = useState([]);\n const [deleteReferralModalIsOpen, setDeleteReferralModalIsOpen] = useState(false);\n const [selectedReferralToDelete, setSelectedReferralToDelete] = useState(-1);\n const [selectedReferralToLink, setSelectedReferralToLink] = useState(0);\n // initialize with consent=true to permit ability to send referrals,\n // then redefine on submit to person's actual consent value to (possibly) show consent form.\n const [consented, setConsented] = useState(true);\n const [consentCompleted, setConsentCompleted] = useState(false);\n const [disableSubmit, setDisableSubmit] = useState(false);\n const [isSavingDraft, setIsSavingDraft] = useState(false);\n const [loading, setLoading] = useState(false);\n const formRefs = useRef({});\n const [referralsResultDetail, setReferralsResultDetail] = useState([]);\n const [hasBeenSubmitted, setHasBeenSubmitted] = useState(false);\n const [referralsToConsent, setReferralsToConsent] = useState([]);\n const showNHConsent = currentProvider?.nh_consent ?? false;\n const clientNeedsPersonId = personId || person?.id;\n\n const features = useMemo(() => {\n const nhConsentEnabled = showNHConsent && referralsToConsent.length > 0;\n return {\n nh_consent: {\n enabled: nhConsentEnabled,\n referrals: nhConsentEnabled ? referralsToConsent : [],\n }\n };\n }, [showNHConsent, referralsToConsent]);\n\n const { data: clientNeedsData } = useFind(\n `people/${clientNeedsPersonId || ''}/person_condition`,\n {\n most_recent: true,\n },\n {\n queryConfig: {\n enabled: featureFlagClientNeeds && !!clientNeedsPersonId,\n placeholderData: undefined,\n },\n },\n );\n\n const clientNeedsMap = useMemo(() => {\n const needs = clientNeedsData?.data?.data || [];\n return needs.reduce((map, condition) => {\n map[condition.id] = upperFirst(condition?.sdoh_category ?? condition?.name);\n return map;\n }, {});\n }, [clientNeedsData]);\n\n const getClientNeedName = (needId) => {\n return clientNeedsMap[needId] || needId;\n };\n\n const createShareEvent = useCreateShareEvent();\n const isForwardReferralPath = !!referralId && !!referralType;\n const referralSentSuccessfully = sent || isSuccessfullyForwarded;\n\n const errors = Object.keys(fieldErrors).reduce((acc, index) => {\n const fieldError = fieldErrors[index];\n acc[index] = {\n referralSelected: fieldError?.referralSelected,\n }\n return acc;\n }, {});\n\n const hasMultipleReferrals = () => referrals.length > 1;\n\n const setReferralErrors = (referralIndex, newErrors) => {\n setFieldErrors((prevFieldErrors) => {\n const currentErrors = prevFieldErrors[referralIndex];\n const updatedErrors = { ...currentErrors, ...newErrors };\n\n if (isEqual(updatedErrors, currentErrors)) {\n return prevFieldErrors;\n }\n\n return {\n ...prevFieldErrors,\n [referralIndex]: updatedErrors,\n };\n });\n };\n\n const onChevronClick = (index) => {\n const expanded = expandedReferrals?.map((ref) => {\n if (ref.index === index) {\n return { ...ref, expanded: !ref.expanded };\n }\n\n return ref;\n })\n setExpandedReferrals(expanded);\n dispatch(setData({\n reviewCollapsedReferralIndexes: expanded\n ?.filter((ref) => !ref.expanded)\n .map((ref) => ref.index),\n }));\n }\n\n const onDeleteReferralClick = (index) => {\n const referral = referrals[index];\n\n if (draftState?.state === 'draft' && get(referral, 'case.service_authorization.id')) {\n CALLBACKS.notify?.error?.(DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE);\n return;\n }\n\n setSelectedReferralToDelete(index);\n setDeleteReferralModalIsOpen(true);\n }\n\n const onCloseDeleteReferralModal = () => {\n setDeleteReferralModalIsOpen(false);\n }\n\n useEffect(() => {\n const expanded = referrals?.map((r, i) => ({\n ...r,\n attachedDocuments: r.attachableDocuments ? r.attachableDocuments.filter((doc) => doc.attached) : [],\n expanded: !reviewCollapsedReferralIndexes.includes(i),\n index: i,\n isOON: referralIsOON(r),\n }));\n setExpandedReferrals(expanded)\n }, [referrals, reviewCollapsedReferralIndexes]);\n\n const deleteModal = useRef([]);\n\n useEffect(() => {\n if (!isEmpty(referrals)) {\n if (deleteReferralModalIsOpen) {\n deleteModal.current[selectedReferralToDelete].openDialog();\n } else if (selectedReferralToDelete >= 0) {\n deleteModal.current[selectedReferralToDelete].closeDialog();\n setSelectedReferralToDelete(-1);\n }\n }\n }, [deleteReferralModalIsOpen, selectedReferralToDelete, referrals]);\n\nuseEffect(() => {\n if (referralsResultDetail?.length > 0) {\n sessionStorage.setItem('referralsSubmitted', 'true');\n }\n\n if (window.performance) {\n try {\n const navEntries = (performance.getEntriesByType && performance.getEntriesByType('navigation')) || [];\n const isRefresh = navEntries.length > 0 && navEntries[0].type === 'reload';\n const referralsWereSubmitted = sessionStorage.getItem('referralsSubmitted') === 'true';\n\n if (isRefresh && referralsWereSubmitted) {\n sessionStorage.removeItem('referralsSubmitted');\n CALLBACKS.onReferralReload();\n }\n } catch (error) {\n console.error(error);\n }\n }\n}, [referralsResultDetail]);\n\n const deleteSelectedReferral = () => {\n const updatedReferrals = referrals.filter((r, i) => i !== selectedReferralToDelete);\n const newReferralPrograms = updatedReferrals.flatMap((r) => r.programs);\n const newSelectedPrograms = intersectionBy(selectedPrograms, newReferralPrograms, 'id');\n dispatch(setData({\n referrals: [...updatedReferrals],\n selectedPrograms: [...newSelectedPrograms],\n }));\n onCloseDeleteReferralModal();\n }\n\n const createReferrals = useCreateReferrals();\n const forwardReferral = useForwardReferral();\n\n const handleSaveDraftReferral = async () => {\n if (isSavingDraft) return;\n\n setIsSavingDraft(true);\n try {\n const response = await createReferrals({ draft: true });\n handleDraftSaveResponse(response, dispatch);\n } catch (err) {\n console.error(err)\n } finally {\n setIsSavingDraft(false);\n }\n };\n\n const setFocus = (index) => {\n setTimeout(() => {\n if (errors[index]?.referralSelected) {\n formRefs.current?.mutators?.setFieldTouched('referralSelected', true);\n const referralSelectedField = document.getElementById(\"referralSelected\");\n return referralSelectedField.focus();\n }\n }, 100);\n }\n\n const focusErrors = () => {\n let index = 0;\n const firstIndexWithErrors = Object.keys(errors).find(idx =>\n some(values(errors[idx]), Boolean)\n );\n\n if (!some(values(errors[index]), Boolean) && firstIndexWithErrors) {\n index = parseInt(firstIndexWithErrors);\n }\n setFocus(index);\n };\n\n const showReferralsNotifications = (referralResponses) => {\n const amountOfReferralsSent = referralResponses.filter(({ sent }) => sent).length;\n const totalReferrals = referralResponses.length;\n const hasAttachmentFailure = referralResponses.some(({ attachmentStatus }) => attachmentStatus === 'partial' || attachmentStatus === 'failed');\n\n if (amountOfReferralsSent === totalReferrals && hasAttachmentFailure) {\n CALLBACKS.notify.warn('Referrals created, but some attachments failed');\n } else if (amountOfReferralsSent === totalReferrals) {\n CALLBACKS.notify.success('Referrals created');\n } else if (amountOfReferralsSent > 0) {\n CALLBACKS.notify.warn('Some referrals created');\n } else {\n CALLBACKS.notify.error('No referrals created');\n }\n };\n\n const addIsGrouped = (detail, referralsList) => {\n return (detail || []).map((item) => {\n const referral = referralsList?.[item.index];\n\n return {\n ...item,\n isGrouped: referral ? referralIsGrouped(referral) : false,\n };\n });\n };\n\n const getReferralIdsByIndex = (createdReferrals = []) => {\n return createdReferrals.reduce((referralIdByIndex, { referralIndex, id } = {}) => {\n if (referralIndex == null) {\n return referralIdByIndex;\n }\n\n referralIdByIndex[referralIndex] = id || '';\n\n return referralIdByIndex;\n }, {});\n };\n\n const processSubmitResult = (detail, referralsToConsentData) => {\n const detailWithGrouping = addIsGrouped(detail, referrals);\n setReferralsToConsent(referralsToConsentData);\n setReferralsResultDetail(detailWithGrouping);\n showReferralsNotifications(detailWithGrouping);\n };\n\n const isValidForwardResponse = (forwardReferrals) =>\n forwardReferrals !== false &&\n !forwardReferrals?.errorMessage &&\n forwardReferrals.every(response => response !== false);\n\n const isSuccessfulForward = (forwardReferrals, fullyForwaded) =>\n isValidForwardResponse(forwardReferrals) && fullyForwaded;\n\n const createRemainingReferrals = async () => {\n if (referrals.length < 2) return { detail: [], response: { referralsToConsent: [] } };\n\n const referralForwardedDeleted = referrals.splice(selectedReferralToLink, 1);\n const response = await createReferrals();\n const referralIdsByIndex = getReferralIdsByIndex(response.referrals);\n const detail = response.shippingDetail.map(item => ({\n id: item.id,\n index: item.index >= selectedReferralToLink ? item.index + 1 : item.index,\n sent: item.sent,\n caseId: item.caseId,\n error: item.error,\n attachmentStatus: item.attachmentStatus,\n attachmentErrors: item.attachmentErrors,\n referralId: referralIdsByIndex[item.index] ?? '',\n }));\n referrals.splice(selectedReferralToLink, 0, referralForwardedDeleted[0]);\n\n return { detail, response };\n };\n\n const getForwardErrorMessage = (forwardReferrals, fullyForwaded) =>\n forwardReferrals?.errorMessage ?? (fullyForwaded ? null : \"Unexpected error\");\n\n const handleForwardReferralSubmit = async () => {\n const referralToForward = referrals[selectedReferralToLink] ?? null;\n const forwardReferrals = await forwardReferral({\n caseId,\n referralToForward,\n });\n\n let fullyForwaded = false;\n\n if (isValidForwardResponse(forwardReferrals)) {\n fullyForwaded = forwardReferrals.every(response => response?.status >= 200 && response?.status < 300);\n };\n\n const { detail, response } = await createRemainingReferrals();\n\n const errorMessage = getForwardErrorMessage(forwardReferrals, fullyForwaded);\n detail.splice(selectedReferralToLink, 0, {\n index: selectedReferralToLink,\n sent: fullyForwaded,\n error: errorMessage,\n referralId: get(forwardReferrals, '[0].data.data.id', ''),\n caseId: caseId,\n });\n\n // Add forwarded referrals to the response.referralToConsent\n if (isSuccessfulForward(forwardReferrals, fullyForwaded)) {\n const newReferrals = referralToConsent({\n originalReferral: referralToForward,\n createdReferrals: forwardReferrals.map(referral => referral.data?.data),\n });\n\n if (newReferrals) response.referralsToConsent.push(newReferrals);\n }\n\n setIsSuccessfullyForwarded(fullyForwaded);\n processSubmitResult(detail, response.referralsToConsent);\n };\n\n const handleStandardSubmit = async () => {\n const response = await createReferrals({ caseId });\n updateSent(true);\n const referralIdsByIndex = getReferralIdsByIndex(response.referrals);\n const detail = response.shippingDetail.map(item => ({\n id: item.id,\n index: item.index,\n sent: item.sent,\n caseId: item.caseId,\n error: item.error,\n attachmentStatus: item.attachmentStatus,\n attachmentErrors: item.attachmentErrors,\n referralId: referralIdsByIndex[item.index] ?? '',\n }));\n\n processSubmitResult(detail, response.referralsToConsent);\n setConsented(person.consent?.state === 'accepted');\n // Create the share event for each referral only if the resource list id is present\n // This is being set from the resource list page or search page before navigating to the create referrals\n if (resourceListId) {\n response.referrals.map((referral) => createShareEvent(referral.id));\n }\n };\n\n const handleSubmit = async () => {\n if (!isEmptyErrors(errors)) return focusErrors();\n\n setLoading(true);\n setDisableSubmit(true);\n\n try {\n if (isForwardReferralPath) {\n await handleForwardReferralSubmit();\n } else {\n await handleStandardSubmit();\n }\n } catch (err) {\n CALLBACKS.notify.error('Error submitting referral');\n setDisableSubmit(false);\n } finally {\n setLoading(false);\n setHasBeenSubmitted(true);\n }\n };\n\n // When submitting consent through Consent App\n const onConsentComplete = async (event) => {\n const consentAppUrl = APP_ENVIRONMENT.consentUrl;\n const eventOrigin = get(event, 'origin');\n const originIsConsentApp = includes(consentAppUrl, eventOrigin);\n\n if (event?.data?.status === CONSENT_COMPLETED && originIsConsentApp) {\n CALLBACKS.notify.success('Your consent has been recorded.');\n onNavigateAway();\n }\n }\n\n // When not submitting consent through Consent App\n const onNavigateAway = () => {\n CALLBACKS.onSubmitConsent();\n setConsented(true);\n setConsentCompleted(true);\n }\n\n useEffect(() => {\n window.addEventListener('message', onConsentComplete);\n\n return () => {\n window.removeEventListener('message', onConsentComplete);\n };\n }, []);\n\n useEffect(() => {\n const showingConsent = referralSentSuccessfully && (!consented || (features.nh_consent?.enabled && !consentCompleted));\n\n if (showingConsent) {\n window.history.pushState(null, null, window.location.href);\n const handlePopState = (event) => {\n event.preventDefault();\n CALLBACKS.onReferralCompleted();\n };\n window.addEventListener('popstate', handlePopState);\n return () => {\n window.removeEventListener('popstate', handlePopState);\n };\n }\n }, [referralSentSuccessfully, consented, features.nh_consent?.enabled, consentCompleted]);\n\n if (referralSentSuccessfully && (!consented || (features.nh_consent?.enabled && !consentCompleted))) {\n const { Consent } = COMPONENTS;\n\n return (\n <CreateReferralContainer isStepReferralSent={true}>\n <div className=\"px-12 pb-12\">\n <StepHeader header={'Complete Consent'}>\n {CONSENT_DESCRIPTION}\n </StepHeader>\n <Consent\n contact={person}\n currentEmployee={currentEmployee}\n initializedValue=\"user_attestation\"\n updateGlobalState={CALLBACKS?.consent?.updateGlobalState}\n dialogContentStyles={'text-validation-red'}\n onNavigateAway={onNavigateAway}\n features={features}\n />\n </div>\n </CreateReferralContainer>\n );\n }\n\n return (\n <>\n {loading ? (\n <CreateReferralContainer>\n <div className=\"px-12\">\n <h2 className=\"text-base font-proxima font-semibold text-[18px] leading-[28px] text-center mt-5\">\n {REVIEW_LOADING_SCREEN_DESCRIPTION}\n </h2>\n <div className=\"flex justify-center items-center mt-6\">\n <div className=\"py-20 bg-white w-full max-w-4xl px-4 md:px-8 lg:px-16\">\n <div className=\"flex flex-col justify-center items-center\">\n <Skeleton height={50} width={0.9 * 800} style={{ marginTop: 12 }} />\n <Skeleton height={20} width={0.9 * 800} style={{ marginTop: 12 }} />\n <Skeleton height={80} width={0.9 * 800} style={{ marginTop: 12 }} />\n </div>\n <div className=\"flex flex-row justify-center items-center flex-wrap gap-4 mt-4\">\n <Skeleton height={50} width={0.9 * 394} style={{ marginTop: 12 }} />\n <Skeleton height={50} width={0.9 * 394} style={{ marginTop: 12 }} />\n </div>\n </div>\n </div>\n </div>\n </CreateReferralContainer>\n ) : (hasBeenSubmitted) ?\n <ReferralsSent\n referrals={referrals}\n referralsResultDetail={referralsResultDetail}\n isSuccessfullyForwarded={isSuccessfullyForwarded}\n isForwardReferralPath={isForwardReferralPath}\n />\n : (\n <CreateReferralContainer>\n <div className=\"px-12\">\n <StepHeader icon header={'Review Referrals'}>\n {REVIEW_REFERRAL_DESCRIPTION}\n </StepHeader>\n\n <NavButtons\n onBackClick={() => navigate(-1)}\n onForwardClick={handleSubmit}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Confirm & Submit\"\n hideForwardButtons={isEmpty(referrals)}\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n disabled={disableSubmit || isSavingDraft}\n isForwardReferralPath={isForwardReferralPath}\n isSavingDraft={isSavingDraft}\n />\n\n {hasMultipleReferrals() && crtb854ForwardingSuperset && isForwardReferralPath && <DropdownMultiplesReferrals referrals={referrals} setReferralErrors={setReferralErrors} formRefs={formRefs} setSelectedReferralToLink={setSelectedReferralToLink} serviceTypeName={serviceTypeName} />}\n\n {isEmpty(referrals) ? (\n <NoReferralsDisplay onClick={() => CALLBACKS.onNavigateBack()} />\n ) : (\n expandedReferrals?.map((referral, index) => {\n const { programs } = referral;\n const isAuthRequired = get(referral, 'programs[0].fee_schedule_program.authorization_required');\n const preventReferralDelete = draftState?.state === 'draft' &&\n !!get(referral, 'case.service_authorization.id');\n\n return (\n <div className=\"mb-6 mx-auto responsive-max-width\" key={`referral-review-card-${index}`} data-testid={`referral-review-card-${index}`}>\n <div className={`bg-white border border-solid border-blue-border ${referral?.expanded ? \"rounded-t-lg\" : \"rounded\"}`}>\n <div className=\"py-6 px-8 flex justify-between\">\n <h2 className=\"uppercase font-black text-grey text-base\">Referral {index + 1}: {get(referral, 'service.name')}</h2>\n <div className=\"flex items-center\">\n <Icon\n icon=\"Pencil\"\n color=\"#182A44\"\n className=\"mr-3\"\n onClick={() => navigate('/create/builder', { state: { selectedReferral: index } })}\n data-testid={`referral-review-pencil-${index}`}\n ariaLabel=\"edit\"\n />\n {!preventReferralDelete && (\n <Icon icon=\"Delete\" color=\"#182A44\" className=\"mr-3\" onClick={() => onDeleteReferralClick(index)} data-testid={`referral-review-card-trash-${index}`} ariaLabel=\"delete\" />\n )}\n <Icon\n icon=\"ChevronArrow\"\n direction={referral?.expanded ? \"down\" : \"right\"}\n color=\"#182A44\"\n onClick={() => onChevronClick(index)}\n data-testid={`referral-review-card-chevron-${index}`}\n ariaLabel=\"expand\"\n />\n </div>\n </div>\n </div>\n\n <DeleteReferralModal\n refModal={el => deleteModal.current[index] = el}\n onCloseModal={onCloseDeleteReferralModal}\n referral={referral}\n onDeleteSelectedReferral={deleteSelectedReferral}\n />\n\n {\n get(referral, 'expanded', true) ? (\n <div className=\"bg-white border border-solid border-blue-border rounded-b-lg\">\n <div className=\"pt-6 px-8 pb-16\">\n <div className=\"grid grid-cols-3\">\n <div className=\"col-span-2 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Referral Programs</h2>\n {\n programs.map((program, i) => (\n <p key={i}>\n {get(program, 'name')} {get(program, 'provider.name') ? '(' + get(program, 'provider.name') + ')' : ''}\n </p>\n ))\n }\n </div>\n <div className=\"col-span-1 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Referral Network</h2>\n <p>{get(referral, 'network.name')}</p>\n </div>\n {newLanguageDashboard && referral.isOON && (\n <div className=\"bg-alert-yellow border border-solid border-canary-yellow rounded p-3 ml-3 col-span-full mt-10\">\n <p className=\"text-brand-blue\">\n These programs aren't accepting referrals in Unite Us.\n We'll create an off-platform case where you can document communication with or services provided by the program.\n </p>\n </div>\n )}\n {get(referral, 'paymentAuthForm') && isAuthRequired && (\n <div className=\"col-span-3 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Authorization Request</h2>\n <ReferralAuthorizationRequestSummary\n authorizationRequest={get(referral, 'paymentAuthForm')}\n feeScheduleProgram={get(referral, 'programs[0].fee_schedule_program')}\n />\n </div>\n )}\n <div className=\"col-span-2 mt-10 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">{newLanguageDashboard ? 'Description' : 'Referral Description'}</h2>\n <p>{get(referral, 'description')}</p>\n </div>\n {get(referral, 'opened_date') && (\n <div className=\"col-span-1 mt-10 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">{newLanguageDashboard ? 'Case Open Date' : 'Open Date'}</h2>\n <p>{formatShortDate2FromTimestamp(get(referral, 'opened_date'), true)}</p>\n </div>\n )}\n {featureFlagClientNeeds && get(referral, 'client_need.length') && (\n <div className=\"col-span-1 mt-10 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Associated Need{get(referral, 'client_need.length') > 1 ? 's' : ''}</h2>\n {get(referral, 'client_need', []).map((needId, needIndex) => (\n <p key={needIndex}>\n {getClientNeedName(needId)}\n </p>\n ))}\n </div>\n )}\n {get(referral, 'primaryWorker.full_name') && (\n <div className=\"col-span-3 mt-10 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Primary Worker</h2>\n <p>{get(referral, 'primaryWorker.full_name')}</p>\n </div>\n )}\n <div className=\"col-span-3 mt-16 p-2\">\n <h2 className=\"uppercase font-semibold mb-1 text-sm text-text-blue\">Attached Documents</h2>\n {!isEmpty(get(referral, 'attachedDocuments')) && (\n <DocumentsListView documents={get(referral, 'attachedDocuments')} />\n )}\n {!isEmpty(getDisplayAttachments(referral)) && (\n <div className=\"file-upload-dropzone mb-3 mt-5\">\n <FilePreviewWrapper existingFiles={getDisplayAttachments(referral)} />\n </div>\n )}\n {isEmpty(getDisplayAttachments(referral)) && isEmpty(get(referral, 'attachedDocuments')) && (\n <p>No documents attached</p>\n )}\n </div>\n <div className=\"col-span-3 bg-light-pale-blue rounded mt-6 p-6 flex\">\n <Icon icon=\"ExclamationCircle\" color=\"#182A44\" className=\"mt-px mr-4\" />\n <p>{READY_TO_SUMBIT_INFO_TEXT}</p>\n </div>\n </div>\n </div>\n </div>\n ) : null\n }\n </div>\n )\n })\n )}\n\n {!isEmpty(referrals) && (\n <div className=\"pb-6\">\n <NavButtons\n onBackClick={() => navigate(-1)}\n onForwardClick={handleSubmit}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Confirm & Submit\"\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n disabled={disableSubmit || isSavingDraft}\n isForwardReferralPath={isForwardReferralPath}\n isSavingDraft={isSavingDraft}\n />\n </div>\n )}\n </div>\n </CreateReferralContainer>\n )}\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -29,7 +29,7 @@ export default function SuccessReferralRedesign(_ref) {
29
29
  return /*#__PURE__*/_jsxs("div", {
30
30
  className: "flex flex-col items-center justify-center",
31
31
  children: [/*#__PURE__*/_jsx("h1", {
32
- className: "text-4xl mb-10 text-center",
32
+ className: `text-4xl mb-10 text-center`,
33
33
  children: windowMessage()
34
34
  }), referralStatusRedesign(referralsResultDetail, referrals), !isUnlistedReferral && /*#__PURE__*/_jsxs("div", {
35
35
  className: "w-3/4 p-8 mb-15 border border-solid border-table-border-color bg-white",
@@ -49,7 +49,7 @@ export default function SuccessReferralRedesign(_ref) {
49
49
  }), clientProfile]
50
50
  })]
51
51
  }), /*#__PURE__*/_jsx(ShareDrawer, {
52
- employeeId: currentEmployee === null || currentEmployee === void 0 ? void 0 : currentEmployee.id,
52
+ employeeId: currentEmployee?.id,
53
53
  coreApi: coreApi,
54
54
  SHARES_URL: sharesUrl,
55
55
  show: shareDrawerOpen,
@@ -1 +1 @@
1
- {"version":3,"file":"SuccessReferralRedesign.js","names":["Button","referralStatusRedesign","REFERRAL_STATUS","jsx","_jsx","jsxs","_jsxs","SuccessReferralRedesign","_ref","referralsResultDetail","referrals","windowMessage","isUnlistedReferral","successfullySentStatus","setShareDrawerOpen","shareDrawerOpen","currentEmployee","coreApi","sharesUrl","providerId","initialAddresses","selectedProgramsWithName","saveShareEvent","ShareDrawer","clientProfile","iconShare","name","color","position","className","children","id","icon","onClick","primary","label","disabled","FAILED","employeeId","SHARES_URL","show","onClose","onShare","_ref2","shareMethod","language","resourceType","resources"],"sources":["../../../src/pages/review/SuccessReferralRedesign.jsx"],"sourcesContent":["import { Button } from '@unite-us/app-components';\nimport referralStatusRedesign from './referralStatusRedesign';\nimport { REFERRAL_STATUS } from './constants';\n\nexport default function SuccessReferralRedesign({\n referralsResultDetail,\n referrals,\n windowMessage,\n isUnlistedReferral,\n successfullySentStatus,\n setShareDrawerOpen,\n shareDrawerOpen,\n currentEmployee,\n coreApi,\n sharesUrl,\n providerId,\n initialAddresses,\n selectedProgramsWithName,\n saveShareEvent,\n ShareDrawer,\n clientProfile,\n}) {\n const iconShare = { name: 'Forward', color: 'white', position: 'right' };\n\n return (\n <div className='flex flex-col items-center justify-center'>\n <h1 className={`text-4xl mb-10 text-center`}>{windowMessage()}</h1>\n {referralStatusRedesign(referralsResultDetail, referrals)}\n\n {!isUnlistedReferral &&\n <div className='w-3/4 p-8 mb-15 border border-solid border-table-border-color bg-white'>\n <h1 className='capitalize font-black text-grey'>Other Actions</h1>\n <div className=\"flex items-center gap-4 mt-4\">\n <Button\n id=\"share\"\n icon={iconShare}\n onClick={() => setShareDrawerOpen(true)}\n primary\n className=\"font-semibold bg-current-blue normal-case w-64\"\n label=\"Share Resources\"\n disabled={successfullySentStatus === REFERRAL_STATUS.FAILED}\n />\n {clientProfile}\n </div>\n </div>\n }\n\n <ShareDrawer\n employeeId={currentEmployee?.id}\n coreApi={coreApi}\n SHARES_URL={sharesUrl}\n show={shareDrawerOpen}\n onClose={() => setShareDrawerOpen(false)}\n onShare={({ shareMethod, language }) => saveShareEvent(shareMethod, language)}\n resourceType=\"program\"\n resources={selectedProgramsWithName}\n providerId={providerId}\n initialAddresses={initialAddresses}\n />\n </div>\n );\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,0BAA0B;AACjD,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,SAASC,eAAe,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE9C,eAAe,SAASC,uBAAuBA,CAAAC,IAAA,EAiB5C;EAAA,IAjB6C;IAC9CC,qBAAqB;IACrBC,SAAS;IACTC,aAAa;IACbC,kBAAkB;IAClBC,sBAAsB;IACtBC,kBAAkB;IAClBC,eAAe;IACfC,eAAe;IACfC,OAAO;IACPC,SAAS;IACTC,UAAU;IACVC,gBAAgB;IAChBC,wBAAwB;IACxBC,cAAc;IACdC,WAAW;IACXC;EACF,CAAC,GAAAhB,IAAA;EACC,MAAMiB,SAAS,GAAG;IAAEC,IAAI,EAAE,SAAS;IAAEC,KAAK,EAAE,OAAO;IAAEC,QAAQ,EAAE;EAAQ,CAAC;EAExE,oBACEtB,KAAA;IAAKuB,SAAS,EAAC,2CAA2C;IAAAC,QAAA,gBACxD1B,IAAA;MAAIyB,SAAS,8BAA+B;MAAAC,QAAA,EAAEnB,aAAa,CAAC;IAAC,CAAK,CAAC,EAClEV,sBAAsB,CAACQ,qBAAqB,EAAEC,SAAS,CAAC,EAExD,CAACE,kBAAkB,iBAClBN,KAAA;MAAKuB,SAAS,EAAC,wEAAwE;MAAAC,QAAA,gBACrF1B,IAAA;QAAIyB,SAAS,EAAC,iCAAiC;QAAAC,QAAA,EAAC;MAAa,CAAI,CAAC,eAClExB,KAAA;QAAKuB,SAAS,EAAC,8BAA8B;QAAAC,QAAA,gBAC3C1B,IAAA,CAACJ,MAAM;UACL+B,EAAE,EAAC,OAAO;UACVC,IAAI,EAAEP,SAAU;UAChBQ,OAAO,EAAEA,CAAA,KAAMnB,kBAAkB,CAAC,IAAI,CAAE;UACxCoB,OAAO;UACPL,SAAS,EAAC,gDAAgD;UAC1DM,KAAK,EAAC,iBAAiB;UACvBC,QAAQ,EAAEvB,sBAAsB,KAAKX,eAAe,CAACmC;QAAO,CAC7D,CAAC,EACCb,aAAa;MAAA,CACb,CAAC;IAAA,CACH,CAAC,eAGRpB,IAAA,CAACmB,WAAW;MACVe,UAAU,EAAEtB,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEe,EAAG;MAChCd,OAAO,EAAEA,OAAQ;MACjBsB,UAAU,EAAErB,SAAU;MACtBsB,IAAI,EAAEzB,eAAgB;MACtB0B,OAAO,EAAEA,CAAA,KAAM3B,kBAAkB,CAAC,KAAK,CAAE;MACzC4B,OAAO,EAAEC,KAAA;QAAA,IAAC;UAAEC,WAAW;UAAEC;QAAS,CAAC,GAAAF,KAAA;QAAA,OAAKrB,cAAc,CAACsB,WAAW,EAAEC,QAAQ,CAAC;MAAA,CAAC;MAC9EC,YAAY,EAAC,SAAS;MACtBC,SAAS,EAAE1B,wBAAyB;MACpCF,UAAU,EAAEA,UAAW;MACvBC,gBAAgB,EAAEA;IAAiB,CACpC,CAAC;EAAA,CACC,CAAC;AAEV","ignoreList":[]}
1
+ {"version":3,"file":"SuccessReferralRedesign.js","names":["Button","referralStatusRedesign","REFERRAL_STATUS","jsx","_jsx","jsxs","_jsxs","SuccessReferralRedesign","_ref","referralsResultDetail","referrals","windowMessage","isUnlistedReferral","successfullySentStatus","setShareDrawerOpen","shareDrawerOpen","currentEmployee","coreApi","sharesUrl","providerId","initialAddresses","selectedProgramsWithName","saveShareEvent","ShareDrawer","clientProfile","iconShare","name","color","position","className","children","id","icon","onClick","primary","label","disabled","FAILED","employeeId","SHARES_URL","show","onClose","onShare","_ref2","shareMethod","language","resourceType","resources"],"sources":["../../../src/pages/review/SuccessReferralRedesign.jsx"],"sourcesContent":["import { Button } from '@unite-us/app-components';\nimport referralStatusRedesign from './referralStatusRedesign';\nimport { REFERRAL_STATUS } from './constants';\n\nexport default function SuccessReferralRedesign({\n referralsResultDetail,\n referrals,\n windowMessage,\n isUnlistedReferral,\n successfullySentStatus,\n setShareDrawerOpen,\n shareDrawerOpen,\n currentEmployee,\n coreApi,\n sharesUrl,\n providerId,\n initialAddresses,\n selectedProgramsWithName,\n saveShareEvent,\n ShareDrawer,\n clientProfile,\n}) {\n const iconShare = { name: 'Forward', color: 'white', position: 'right' };\n\n return (\n <div className='flex flex-col items-center justify-center'>\n <h1 className={`text-4xl mb-10 text-center`}>{windowMessage()}</h1>\n {referralStatusRedesign(referralsResultDetail, referrals)}\n\n {!isUnlistedReferral &&\n <div className='w-3/4 p-8 mb-15 border border-solid border-table-border-color bg-white'>\n <h1 className='capitalize font-black text-grey'>Other Actions</h1>\n <div className=\"flex items-center gap-4 mt-4\">\n <Button\n id=\"share\"\n icon={iconShare}\n onClick={() => setShareDrawerOpen(true)}\n primary\n className=\"font-semibold bg-current-blue normal-case w-64\"\n label=\"Share Resources\"\n disabled={successfullySentStatus === REFERRAL_STATUS.FAILED}\n />\n {clientProfile}\n </div>\n </div>\n }\n\n <ShareDrawer\n employeeId={currentEmployee?.id}\n coreApi={coreApi}\n SHARES_URL={sharesUrl}\n show={shareDrawerOpen}\n onClose={() => setShareDrawerOpen(false)}\n onShare={({ shareMethod, language }) => saveShareEvent(shareMethod, language)}\n resourceType=\"program\"\n resources={selectedProgramsWithName}\n providerId={providerId}\n initialAddresses={initialAddresses}\n />\n </div>\n );\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,0BAA0B;AACjD,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,SAASC,eAAe,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE9C,eAAe,SAASC,uBAAuBA,CAAAC,IAAA,EAiB5C;EAAA,IAjB6C;IAC9CC,qBAAqB;IACrBC,SAAS;IACTC,aAAa;IACbC,kBAAkB;IAClBC,sBAAsB;IACtBC,kBAAkB;IAClBC,eAAe;IACfC,eAAe;IACfC,OAAO;IACPC,SAAS;IACTC,UAAU;IACVC,gBAAgB;IAChBC,wBAAwB;IACxBC,cAAc;IACdC,WAAW;IACXC;EACF,CAAC,GAAAhB,IAAA;EACC,MAAMiB,SAAS,GAAG;IAAEC,IAAI,EAAE,SAAS;IAAEC,KAAK,EAAE,OAAO;IAAEC,QAAQ,EAAE;EAAQ,CAAC;EAExE,oBACEtB,KAAA;IAAKuB,SAAS,EAAC,2CAA2C;IAAAC,QAAA,gBACxD1B,IAAA;MAAIyB,SAAS,EAAE,4BAA6B;MAAAC,QAAA,EAAEnB,aAAa,CAAC;IAAC,CAAK,CAAC,EAClEV,sBAAsB,CAACQ,qBAAqB,EAAEC,SAAS,CAAC,EAExD,CAACE,kBAAkB,iBAClBN,KAAA;MAAKuB,SAAS,EAAC,wEAAwE;MAAAC,QAAA,gBACrF1B,IAAA;QAAIyB,SAAS,EAAC,iCAAiC;QAAAC,QAAA,EAAC;MAAa,CAAI,CAAC,eAClExB,KAAA;QAAKuB,SAAS,EAAC,8BAA8B;QAAAC,QAAA,gBAC3C1B,IAAA,CAACJ,MAAM;UACL+B,EAAE,EAAC,OAAO;UACVC,IAAI,EAAEP,SAAU;UAChBQ,OAAO,EAAEA,CAAA,KAAMnB,kBAAkB,CAAC,IAAI,CAAE;UACxCoB,OAAO;UACPL,SAAS,EAAC,gDAAgD;UAC1DM,KAAK,EAAC,iBAAiB;UACvBC,QAAQ,EAAEvB,sBAAsB,KAAKX,eAAe,CAACmC;QAAO,CAC7D,CAAC,EACCb,aAAa;MAAA,CACb,CAAC;IAAA,CACH,CAAC,eAGRpB,IAAA,CAACmB,WAAW;MACVe,UAAU,EAAEtB,eAAe,EAAEe,EAAG;MAChCd,OAAO,EAAEA,OAAQ;MACjBsB,UAAU,EAAErB,SAAU;MACtBsB,IAAI,EAAEzB,eAAgB;MACtB0B,OAAO,EAAEA,CAAA,KAAM3B,kBAAkB,CAAC,KAAK,CAAE;MACzC4B,OAAO,EAAEC,KAAA;QAAA,IAAC;UAAEC,WAAW;UAAEC;QAAS,CAAC,GAAAF,KAAA;QAAA,OAAKrB,cAAc,CAACsB,WAAW,EAAEC,QAAQ,CAAC;MAAA,CAAC;MAC9EC,YAAY,EAAC,SAAS;MACtBC,SAAS,EAAE1B,wBAAyB;MACpCF,UAAU,EAAEA,UAAW;MACvBC,gBAAgB,EAAEA;IAAiB,CACpC,CAAC;EAAA,CACC,CAAC;AAEV","ignoreList":[]}
@@ -1,6 +1,3 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
1
  import { screen } from "@testing-library/react";
5
2
  import { render, waitFor } from "../../../__testUtils__/test-utils";
6
3
  import { person } from "../../../__testUtils__/mockData/mockPeople";
@@ -14,7 +11,8 @@ import { newResourceList, newShareEvent, updatedResourceList } from "./data";
14
11
  import { CALLBACKS } from '../../../api/config';
15
12
  import { OFF_PLATFORM_REFERRALS_ONLY, NEXT_STEPS } from '../../builder/constants';
16
13
  import { jsx as _jsx } from "react/jsx-runtime";
17
- jest.mock("../../../api/config", () => _objectSpread(_objectSpread({}, jest.requireActual('../../../api/config')), {}, {
14
+ jest.mock("../../../api/config", () => ({
15
+ ...jest.requireActual('../../../api/config'),
18
16
  INITIAL_ADDRESSES: {},
19
17
  APP_ENVIRONMENT: {
20
18
  sharesUrl: 'localhost:8080/test',
@@ -63,19 +61,21 @@ const mockPatchResourceListsCall = () => {
63
61
  };
64
62
  const renderReferralsSent = function () {
65
63
  let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
66
- return render(/*#__PURE__*/_jsx(ReferralsSent, _objectSpread({
64
+ return render(/*#__PURE__*/_jsx(ReferralsSent, {
67
65
  referrals: referrals,
68
66
  isSuccessfullyForwarded: true,
69
- referralsResultDetail: referralsResultDetailMock
70
- }, props)), {
71
- appContextProviderProps: _objectSpread({
67
+ referralsResultDetail: referralsResultDetailMock,
68
+ ...props
69
+ }), {
70
+ appContextProviderProps: {
72
71
  initialAddresses: {},
73
72
  person,
74
73
  referrals,
75
74
  currentProvider: mockAppReferralsProps.appState.currentProvider,
76
75
  currentEmployee: mockAppReferralsProps.appState.currentEmployee,
77
- source: 'app-client'
78
- }, props.appContextProviderProps)
76
+ source: 'app-client',
77
+ ...props.appContextProviderProps
78
+ }
79
79
  });
80
80
  };
81
81
  const originalWindowOpen = window.open;
@@ -232,9 +232,9 @@ describe('ReferralsSent Page', () => {
232
232
  renderReferralsSent({
233
233
  referrals: unlistedReferrals
234
234
  });
235
- await screen.findByText("- ".concat(NEXT_STEPS[2]));
236
- expect(screen.queryByText("- ".concat(NEXT_STEPS[0]))).not.toBeInTheDocument();
237
- expect(screen.queryByText("- ".concat(NEXT_STEPS[1]))).not.toBeInTheDocument();
235
+ await screen.findByText(`- ${NEXT_STEPS[2]}`);
236
+ expect(screen.queryByText(`- ${NEXT_STEPS[0]}`)).not.toBeInTheDocument();
237
+ expect(screen.queryByText(`- ${NEXT_STEPS[1]}`)).not.toBeInTheDocument();
238
238
  });
239
239
  it('shows all next steps when at least one program is not unlisted', async () => {
240
240
  const mixedReferrals = [{
@@ -255,9 +255,9 @@ describe('ReferralsSent Page', () => {
255
255
  renderReferralsSent({
256
256
  referrals: mixedReferrals
257
257
  });
258
- await screen.findByText("- ".concat(NEXT_STEPS[0]));
259
- await screen.findByText("- ".concat(NEXT_STEPS[1]));
260
- await screen.findByText("- ".concat(NEXT_STEPS[2]));
258
+ await screen.findByText(`- ${NEXT_STEPS[0]}`);
259
+ await screen.findByText(`- ${NEXT_STEPS[1]}`);
260
+ await screen.findByText(`- ${NEXT_STEPS[2]}`);
261
261
  });
262
262
  it('creates a share event for each successfully sent referral with correct referralId', async () => {
263
263
  mockResourceListsCall();
@@ -1 +1 @@
1
- {"version":3,"file":"ReferralsSent.test.js","names":["screen","render","waitFor","person","mockAppReferralsProps","referrals","referralsResultDetailMock","ReferralsSent","userEvent","server","waitForRequest","rest","newResourceList","newShareEvent","updatedResourceList","CALLBACKS","OFF_PLATFORM_REFERRALS_ONLY","NEXT_STEPS","jsx","_jsx","jest","mock","_objectSpread","requireActual","INITIAL_ADDRESSES","APP_ENVIRONMENT","sharesUrl","providerId","notify","success","fn","error","warning","info","mockResourceListsCall","use","post","req","res","ctx","status","json","data","id","type","attributes","sent_to_ehr","mockShareEventsCall","mockPatchResourceListsCall","patch","once","renderReferralsSent","props","arguments","length","undefined","isSuccessfullyForwarded","referralsResultDetail","appContextProviderProps","initialAddresses","currentProvider","appState","currentEmployee","source","originalWindowOpen","window","open","beforeEach","clearAllMocks","afterEach","resetHandlers","afterAll","describe","it","index","sent","referralId","attachmentStatus","attachmentErrors","operation","name","message","expect","findByText","toBeInTheDocument","getByText","setupShareFlow","shareResourcesButton","findByRole","click","print","findByDisplayValue","printButton","pendingResourceListCall","pendingShareEventCall","resourceListCall","shareEventCall","body","toEqual","resourceListId","toHaveBeenCalledTimes","not","toHaveBeenCalled","unlistedReferrals","programs","service","queryByRole","mixedReferrals","receiving_referrals","shareButton","toBeEnabled","concat","queryByText","pendingShareEventCall1","shareEventCall1","shareEventCall2","shared_via_id","toBe","failedResultDetail","disabled","mixedResultDetail"],"sources":["../../../../src/pages/review/__tests__/ReferralsSent.test.js"],"sourcesContent":["import { screen } from \"@testing-library/react\";\nimport { render, waitFor } from \"../../../__testUtils__/test-utils\";\nimport { person } from \"../../../__testUtils__/mockData/mockPeople\";\nimport mockAppReferralsProps from \"../../../__testUtils__/mockData/components/mockAppReferrals\";\nimport { referrals, referralsResultDetailMock } from \"./data\";\nimport ReferralsSent from \"../ReferralsSent\";\nimport userEvent from '@testing-library/user-event';\nimport { server, waitForRequest } from \"../../../__testUtils__/mockServer/server\";\nimport { rest } from \"msw\";\nimport { newResourceList, newShareEvent, updatedResourceList } from \"./data\";\nimport { CALLBACKS } from '../../../api/config';\nimport { OFF_PLATFORM_REFERRALS_ONLY, NEXT_STEPS } from '../../builder/constants';\n\njest.mock(\"../../../api/config\", () => ({\n ...jest.requireActual('../../../api/config'),\n INITIAL_ADDRESSES: {},\n APP_ENVIRONMENT: { sharesUrl: 'localhost:8080/test', providerId: \"test-provider-id\"},\n CALLBACKS: {\n notify: {\n success: jest.fn(),\n error: jest.fn(),\n warning: jest.fn(),\n info: jest.fn()\n }\n }\n}));\n\nconst mockResourceListsCall = () => {\n server.use(rest.post('*/resource_lists', (req, res, ctx) => {\n return res(\n ctx.status(201),\n ctx.json({\n data: {\n id: 'test-resource-list-id',\n type: 'resource_list',\n attributes: {\n sent_to_ehr: true,\n }\n },\n }),\n );\n }));\n}\n\nconst mockShareEventsCall = () => {\n server.use(rest.post('*/share_events', (req, res, ctx) => res(\n ctx.status(201),\n ctx.json({\n data: {\n id: 'test-share-event-id',\n type: 'share_event',\n },\n }),\n )));\n}\n\nconst mockPatchResourceListsCall = () => {\n server.use(rest.patch('*/resource_lists/*', (req, res, ctx) => res.once(\n ctx.status(201),\n ctx.json({\n data: {\n id: 'test-resource-list-id',\n type: 'resource_list',\n attributes: {\n sent_to_ehr: true,\n }\n },\n }),\n )));\n}\n\nconst renderReferralsSent = (props = {}) => {\n return render(\n <ReferralsSent \n referrals={referrals}\n isSuccessfullyForwarded={true}\n referralsResultDetail={referralsResultDetailMock}\n {...props}\n />, {\n appContextProviderProps: {\n initialAddresses: {},\n person,\n referrals,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: mockAppReferralsProps.appState.currentEmployee,\n source: 'app-client',\n ...props.appContextProviderProps\n }\n }\n );\n}\n\nconst originalWindowOpen = window.open;\n\nbeforeEach(() => {\n window.open = jest.fn();\n jest.clearAllMocks();\n});\n\nafterEach(() => {\n server.resetHandlers();\n});\n\nafterAll(() => { \n window.open = originalWindowOpen; \n});\n\ndescribe('ReferralsSent Page', () => {\n it('shows an attachment warning while preserving referral success', async () => {\n renderReferralsSent({\n referralsResultDetail: [{\n id: '1', index: 0, sent: true, referralId: 'referral-id-1', error: null,\n attachmentStatus: 'partial',\n attachmentErrors: [{ operation: 'upload', name: 'document.pdf', message: 'Upload failed' }],\n }],\n });\n\n expect(await screen.findByText('Referral successfully created.')).toBeInTheDocument();\n expect(screen.getByText('Referral created, but some attachments could not be uploaded. Open the referral to upload them again.')).toBeInTheDocument();\n });\n\n describe('Shares', () => {\n const setupShareFlow = async () => {\n const shareResourcesButton = await screen.findByRole('button', { name: /share resources/i });\n userEvent.click(shareResourcesButton);\n \n const print = await screen.findByDisplayValue(/print/i);\n userEvent.click(print);\n \n const printButton = await screen.findByRole('button', { name: /print/i });\n userEvent.click(printButton);\n }\n\n it('creates a new resource list when one does not exist', async () => {\n mockResourceListsCall();\n mockShareEventsCall();\n renderReferralsSent();\n\n const pendingResourceListCall = waitForRequest('POST', '/v1/resource_lists');\n const pendingShareEventCall = waitForRequest('POST', '/v1/share_events');\n\n await setupShareFlow();\n\n const [resourceListCall] = await pendingResourceListCall;\n const [shareEventCall] = await pendingShareEventCall;\n\n expect(resourceListCall.body.data).toEqual(newResourceList);\n expect(shareEventCall.body.data).toEqual(newShareEvent);\n });\n\n it('creates a share event and updates existing resource list', async () => {\n mockShareEventsCall();\n mockPatchResourceListsCall();\n\n renderReferralsSent({\n appContextProviderProps: {\n resourceListId: 'test-resource-list-id'\n }\n });\n\n const pendingShareEventCall = waitForRequest('POST', '/v1/share_events');\n const pendingResourceListCall = waitForRequest('PATCH', '/v1/resource_lists/test-resource-list-id');\n\n await setupShareFlow();\n\n const [shareEventCall] = await pendingShareEventCall;\n const [resourceListCall] = await pendingResourceListCall;\n\n expect(shareEventCall.body.data).toEqual(newShareEvent);\n expect(resourceListCall.body.data).toEqual(updatedResourceList);\n });\n\n it('shows success toast when sent_to_ehr is true', async () => {\n mockResourceListsCall();\n mockShareEventsCall();\n renderReferralsSent();\n\n await setupShareFlow();\n\n await waitFor(() => {\n expect(CALLBACKS.notify.success).toHaveBeenCalledTimes(1);\n });\n });\n\n it('does not show success toast when sent_to_ehr is false', async () => {\n mockResourceListsCall();\n mockShareEventsCall();\n renderReferralsSent();\n\n await setupShareFlow();\n\n await waitFor(() => {\n expect(CALLBACKS.notify.success).not.toHaveBeenCalled();\n });\n });\n\n it('hide share button when all programs are unlisted', async () => {\n const unlistedReferrals = [\n {\n programs: [\n { id: 'unlisted_program1', name: 'Unlisted Program 1', status: OFF_PLATFORM_REFERRALS_ONLY }\n ],\n service: { id: 'service-1', name: 'Service 1' }\n }\n ];\n\n renderReferralsSent({ referrals: unlistedReferrals });\n \n await waitFor(() => {\n expect(screen.queryByRole('button', { name: /share resources/i })).not.toBeInTheDocument();\n });\n });\n\n it('enables share button when at least one program is not unlisted', async () => {\n const mixedReferrals = [\n {\n programs: [\n { id: 'unlisted_program1', name: 'Unlisted Program 1', status: OFF_PLATFORM_REFERRALS_ONLY },\n { id: 'regular-program-1', name: 'Regular Program 1', receiving_referrals: true }\n ],\n service: { id: 'service-1', name: 'Service 1' }\n }\n ];\n\n renderReferralsSent({ referrals: mixedReferrals });\n \n const shareButton = await screen.findByRole('button', { name: /share resources/i });\n expect(shareButton).toBeEnabled();\n });\n\n it('shows only off-platform info in next steps when all programs are unlisted', async () => {\n const unlistedReferrals = [\n {\n programs: [\n { id: 'unlisted_program1', name: 'Unlisted Program 1', status: OFF_PLATFORM_REFERRALS_ONLY },\n { id: 'unlisted_program2', name: 'Unlisted Program 2', status: OFF_PLATFORM_REFERRALS_ONLY }\n ],\n service: { id: 'service-1', name: 'Service 1' }\n }\n ];\n\n renderReferralsSent({ referrals: unlistedReferrals });\n\n await screen.findByText(`- ${NEXT_STEPS[2]}`);\n expect(screen.queryByText(`- ${NEXT_STEPS[0]}`)).not.toBeInTheDocument();\n expect(screen.queryByText(`- ${NEXT_STEPS[1]}`)).not.toBeInTheDocument();\n });\n\n it('shows all next steps when at least one program is not unlisted', async () => {\n const mixedReferrals = [\n {\n programs: [\n { id: 'unlisted_program1', name: 'Unlisted Program 1', status: OFF_PLATFORM_REFERRALS_ONLY },\n { id: 'regular-program-1', name: 'Regular Program 1', receiving_referrals: true }\n ],\n service: { id: 'service-1', name: 'Service 1' }\n }\n ];\n\n renderReferralsSent({ referrals: mixedReferrals });\n\n await screen.findByText(`- ${NEXT_STEPS[0]}`);\n await screen.findByText(`- ${NEXT_STEPS[1]}`);\n await screen.findByText(`- ${NEXT_STEPS[2]}`);\n });\n\n it('creates a share event for each successfully sent referral with correct referralId', async () => {\n mockResourceListsCall();\n mockShareEventsCall();\n\n renderReferralsSent();\n\n const pendingShareEventCall1 = waitForRequest('POST', '/v1/share_events');\n\n await setupShareFlow();\n\n const [shareEventCall1, shareEventCall2] = await pendingShareEventCall1;\n\n expect(shareEventCall1.body.data.attributes.shared_via_id).toBe('referral-id-1');\n expect(shareEventCall2.body.data.attributes.shared_via_id).toBe('referral-id-2');\n });\n\n it('does not create share events when no referrals were successfully sent', async () => {\n mockResourceListsCall();\n\n const failedResultDetail = [\n { id: '1', index: 0, sent: false, referralId: '', error: 'network error' },\n ];\n\n renderReferralsSent({\n referralsResultDetail: failedResultDetail,\n });\n\n expect(await screen.findByRole('button', { name: /share resources/i, disabled: true })).toBeInTheDocument();\n });\n\n it('only creates share events for sent referrals, skipping failed ones', async () => {\n mockResourceListsCall();\n mockShareEventsCall();\n\n const mixedResultDetail = [\n { id: '1', index: 0, sent: true, referralId: 'referral-id-1', error: null },\n { id: '2', index: 1, sent: false, referralId: '', error: 'creation failed' },\n ];\n\n renderReferralsSent({\n referralsResultDetail: mixedResultDetail,\n });\n\n const pendingShareEventCall = waitForRequest('POST', '/v1/share_events');\n\n await setupShareFlow();\n\n const [shareEventCall] = await pendingShareEventCall;\n\n expect(shareEventCall.body.data.attributes.shared_via_id).toBe('referral-id-1');\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ReferralsSent.test.js","names":["screen","render","waitFor","person","mockAppReferralsProps","referrals","referralsResultDetailMock","ReferralsSent","userEvent","server","waitForRequest","rest","newResourceList","newShareEvent","updatedResourceList","CALLBACKS","OFF_PLATFORM_REFERRALS_ONLY","NEXT_STEPS","jsx","_jsx","jest","mock","requireActual","INITIAL_ADDRESSES","APP_ENVIRONMENT","sharesUrl","providerId","notify","success","fn","error","warning","info","mockResourceListsCall","use","post","req","res","ctx","status","json","data","id","type","attributes","sent_to_ehr","mockShareEventsCall","mockPatchResourceListsCall","patch","once","renderReferralsSent","props","arguments","length","undefined","isSuccessfullyForwarded","referralsResultDetail","appContextProviderProps","initialAddresses","currentProvider","appState","currentEmployee","source","originalWindowOpen","window","open","beforeEach","clearAllMocks","afterEach","resetHandlers","afterAll","describe","it","index","sent","referralId","attachmentStatus","attachmentErrors","operation","name","message","expect","findByText","toBeInTheDocument","getByText","setupShareFlow","shareResourcesButton","findByRole","click","print","findByDisplayValue","printButton","pendingResourceListCall","pendingShareEventCall","resourceListCall","shareEventCall","body","toEqual","resourceListId","toHaveBeenCalledTimes","not","toHaveBeenCalled","unlistedReferrals","programs","service","queryByRole","mixedReferrals","receiving_referrals","shareButton","toBeEnabled","queryByText","pendingShareEventCall1","shareEventCall1","shareEventCall2","shared_via_id","toBe","failedResultDetail","disabled","mixedResultDetail"],"sources":["../../../../src/pages/review/__tests__/ReferralsSent.test.js"],"sourcesContent":["import { screen } from \"@testing-library/react\";\nimport { render, waitFor } from \"../../../__testUtils__/test-utils\";\nimport { person } from \"../../../__testUtils__/mockData/mockPeople\";\nimport mockAppReferralsProps from \"../../../__testUtils__/mockData/components/mockAppReferrals\";\nimport { referrals, referralsResultDetailMock } from \"./data\";\nimport ReferralsSent from \"../ReferralsSent\";\nimport userEvent from '@testing-library/user-event';\nimport { server, waitForRequest } from \"../../../__testUtils__/mockServer/server\";\nimport { rest } from \"msw\";\nimport { newResourceList, newShareEvent, updatedResourceList } from \"./data\";\nimport { CALLBACKS } from '../../../api/config';\nimport { OFF_PLATFORM_REFERRALS_ONLY, NEXT_STEPS } from '../../builder/constants';\n\njest.mock(\"../../../api/config\", () => ({\n ...jest.requireActual('../../../api/config'),\n INITIAL_ADDRESSES: {},\n APP_ENVIRONMENT: { sharesUrl: 'localhost:8080/test', providerId: \"test-provider-id\"},\n CALLBACKS: {\n notify: {\n success: jest.fn(),\n error: jest.fn(),\n warning: jest.fn(),\n info: jest.fn()\n }\n }\n}));\n\nconst mockResourceListsCall = () => {\n server.use(rest.post('*/resource_lists', (req, res, ctx) => {\n return res(\n ctx.status(201),\n ctx.json({\n data: {\n id: 'test-resource-list-id',\n type: 'resource_list',\n attributes: {\n sent_to_ehr: true,\n }\n },\n }),\n );\n }));\n}\n\nconst mockShareEventsCall = () => {\n server.use(rest.post('*/share_events', (req, res, ctx) => res(\n ctx.status(201),\n ctx.json({\n data: {\n id: 'test-share-event-id',\n type: 'share_event',\n },\n }),\n )));\n}\n\nconst mockPatchResourceListsCall = () => {\n server.use(rest.patch('*/resource_lists/*', (req, res, ctx) => res.once(\n ctx.status(201),\n ctx.json({\n data: {\n id: 'test-resource-list-id',\n type: 'resource_list',\n attributes: {\n sent_to_ehr: true,\n }\n },\n }),\n )));\n}\n\nconst renderReferralsSent = (props = {}) => {\n return render(\n <ReferralsSent \n referrals={referrals}\n isSuccessfullyForwarded={true}\n referralsResultDetail={referralsResultDetailMock}\n {...props}\n />, {\n appContextProviderProps: {\n initialAddresses: {},\n person,\n referrals,\n currentProvider: mockAppReferralsProps.appState.currentProvider,\n currentEmployee: mockAppReferralsProps.appState.currentEmployee,\n source: 'app-client',\n ...props.appContextProviderProps\n }\n }\n );\n}\n\nconst originalWindowOpen = window.open;\n\nbeforeEach(() => {\n window.open = jest.fn();\n jest.clearAllMocks();\n});\n\nafterEach(() => {\n server.resetHandlers();\n});\n\nafterAll(() => { \n window.open = originalWindowOpen; \n});\n\ndescribe('ReferralsSent Page', () => {\n it('shows an attachment warning while preserving referral success', async () => {\n renderReferralsSent({\n referralsResultDetail: [{\n id: '1', index: 0, sent: true, referralId: 'referral-id-1', error: null,\n attachmentStatus: 'partial',\n attachmentErrors: [{ operation: 'upload', name: 'document.pdf', message: 'Upload failed' }],\n }],\n });\n\n expect(await screen.findByText('Referral successfully created.')).toBeInTheDocument();\n expect(screen.getByText('Referral created, but some attachments could not be uploaded. Open the referral to upload them again.')).toBeInTheDocument();\n });\n\n describe('Shares', () => {\n const setupShareFlow = async () => {\n const shareResourcesButton = await screen.findByRole('button', { name: /share resources/i });\n userEvent.click(shareResourcesButton);\n \n const print = await screen.findByDisplayValue(/print/i);\n userEvent.click(print);\n \n const printButton = await screen.findByRole('button', { name: /print/i });\n userEvent.click(printButton);\n }\n\n it('creates a new resource list when one does not exist', async () => {\n mockResourceListsCall();\n mockShareEventsCall();\n renderReferralsSent();\n\n const pendingResourceListCall = waitForRequest('POST', '/v1/resource_lists');\n const pendingShareEventCall = waitForRequest('POST', '/v1/share_events');\n\n await setupShareFlow();\n\n const [resourceListCall] = await pendingResourceListCall;\n const [shareEventCall] = await pendingShareEventCall;\n\n expect(resourceListCall.body.data).toEqual(newResourceList);\n expect(shareEventCall.body.data).toEqual(newShareEvent);\n });\n\n it('creates a share event and updates existing resource list', async () => {\n mockShareEventsCall();\n mockPatchResourceListsCall();\n\n renderReferralsSent({\n appContextProviderProps: {\n resourceListId: 'test-resource-list-id'\n }\n });\n\n const pendingShareEventCall = waitForRequest('POST', '/v1/share_events');\n const pendingResourceListCall = waitForRequest('PATCH', '/v1/resource_lists/test-resource-list-id');\n\n await setupShareFlow();\n\n const [shareEventCall] = await pendingShareEventCall;\n const [resourceListCall] = await pendingResourceListCall;\n\n expect(shareEventCall.body.data).toEqual(newShareEvent);\n expect(resourceListCall.body.data).toEqual(updatedResourceList);\n });\n\n it('shows success toast when sent_to_ehr is true', async () => {\n mockResourceListsCall();\n mockShareEventsCall();\n renderReferralsSent();\n\n await setupShareFlow();\n\n await waitFor(() => {\n expect(CALLBACKS.notify.success).toHaveBeenCalledTimes(1);\n });\n });\n\n it('does not show success toast when sent_to_ehr is false', async () => {\n mockResourceListsCall();\n mockShareEventsCall();\n renderReferralsSent();\n\n await setupShareFlow();\n\n await waitFor(() => {\n expect(CALLBACKS.notify.success).not.toHaveBeenCalled();\n });\n });\n\n it('hide share button when all programs are unlisted', async () => {\n const unlistedReferrals = [\n {\n programs: [\n { id: 'unlisted_program1', name: 'Unlisted Program 1', status: OFF_PLATFORM_REFERRALS_ONLY }\n ],\n service: { id: 'service-1', name: 'Service 1' }\n }\n ];\n\n renderReferralsSent({ referrals: unlistedReferrals });\n \n await waitFor(() => {\n expect(screen.queryByRole('button', { name: /share resources/i })).not.toBeInTheDocument();\n });\n });\n\n it('enables share button when at least one program is not unlisted', async () => {\n const mixedReferrals = [\n {\n programs: [\n { id: 'unlisted_program1', name: 'Unlisted Program 1', status: OFF_PLATFORM_REFERRALS_ONLY },\n { id: 'regular-program-1', name: 'Regular Program 1', receiving_referrals: true }\n ],\n service: { id: 'service-1', name: 'Service 1' }\n }\n ];\n\n renderReferralsSent({ referrals: mixedReferrals });\n \n const shareButton = await screen.findByRole('button', { name: /share resources/i });\n expect(shareButton).toBeEnabled();\n });\n\n it('shows only off-platform info in next steps when all programs are unlisted', async () => {\n const unlistedReferrals = [\n {\n programs: [\n { id: 'unlisted_program1', name: 'Unlisted Program 1', status: OFF_PLATFORM_REFERRALS_ONLY },\n { id: 'unlisted_program2', name: 'Unlisted Program 2', status: OFF_PLATFORM_REFERRALS_ONLY }\n ],\n service: { id: 'service-1', name: 'Service 1' }\n }\n ];\n\n renderReferralsSent({ referrals: unlistedReferrals });\n\n await screen.findByText(`- ${NEXT_STEPS[2]}`);\n expect(screen.queryByText(`- ${NEXT_STEPS[0]}`)).not.toBeInTheDocument();\n expect(screen.queryByText(`- ${NEXT_STEPS[1]}`)).not.toBeInTheDocument();\n });\n\n it('shows all next steps when at least one program is not unlisted', async () => {\n const mixedReferrals = [\n {\n programs: [\n { id: 'unlisted_program1', name: 'Unlisted Program 1', status: OFF_PLATFORM_REFERRALS_ONLY },\n { id: 'regular-program-1', name: 'Regular Program 1', receiving_referrals: true }\n ],\n service: { id: 'service-1', name: 'Service 1' }\n }\n ];\n\n renderReferralsSent({ referrals: mixedReferrals });\n\n await screen.findByText(`- ${NEXT_STEPS[0]}`);\n await screen.findByText(`- ${NEXT_STEPS[1]}`);\n await screen.findByText(`- ${NEXT_STEPS[2]}`);\n });\n\n it('creates a share event for each successfully sent referral with correct referralId', async () => {\n mockResourceListsCall();\n mockShareEventsCall();\n\n renderReferralsSent();\n\n const pendingShareEventCall1 = waitForRequest('POST', '/v1/share_events');\n\n await setupShareFlow();\n\n const [shareEventCall1, shareEventCall2] = await pendingShareEventCall1;\n\n expect(shareEventCall1.body.data.attributes.shared_via_id).toBe('referral-id-1');\n expect(shareEventCall2.body.data.attributes.shared_via_id).toBe('referral-id-2');\n });\n\n it('does not create share events when no referrals were successfully sent', async () => {\n mockResourceListsCall();\n\n const failedResultDetail = [\n { id: '1', index: 0, sent: false, referralId: '', error: 'network error' },\n ];\n\n renderReferralsSent({\n referralsResultDetail: failedResultDetail,\n });\n\n expect(await screen.findByRole('button', { name: /share resources/i, disabled: true })).toBeInTheDocument();\n });\n\n it('only creates share events for sent referrals, skipping failed ones', async () => {\n mockResourceListsCall();\n mockShareEventsCall();\n\n const mixedResultDetail = [\n { id: '1', index: 0, sent: true, referralId: 'referral-id-1', error: null },\n { id: '2', index: 1, sent: false, referralId: '', error: 'creation failed' },\n ];\n\n renderReferralsSent({\n referralsResultDetail: mixedResultDetail,\n });\n\n const pendingShareEventCall = waitForRequest('POST', '/v1/share_events');\n\n await setupShareFlow();\n\n const [shareEventCall] = await pendingShareEventCall;\n\n expect(shareEventCall.body.data.attributes.shared_via_id).toBe('referral-id-1');\n });\n });\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,wBAAwB;AAC/C,SAASC,MAAM,EAAEC,OAAO,QAAQ,mCAAmC;AACnE,SAASC,MAAM,QAAQ,4CAA4C;AACnE,OAAOC,qBAAqB,MAAM,6DAA6D;AAC/F,SAASC,SAAS,EAAEC,yBAAyB,QAAQ,QAAQ;AAC7D,OAAOC,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,SAAS,MAAM,6BAA6B;AACnD,SAASC,MAAM,EAAEC,cAAc,QAAQ,0CAA0C;AACjF,SAASC,IAAI,QAAQ,KAAK;AAC1B,SAASC,eAAe,EAAEC,aAAa,EAAEC,mBAAmB,QAAQ,QAAQ;AAC5E,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,SAASC,2BAA2B,EAAEC,UAAU,QAAQ,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAElFC,IAAI,CAACC,IAAI,CAAC,qBAAqB,EAAE,OAAO;EACtC,GAAGD,IAAI,CAACE,aAAa,CAAC,qBAAqB,CAAC;EAC5CC,iBAAiB,EAAE,CAAC,CAAC;EACrBC,eAAe,EAAE;IAAEC,SAAS,EAAE,qBAAqB;IAAEC,UAAU,EAAE;EAAkB,CAAC;EACpFX,SAAS,EAAE;IACTY,MAAM,EAAE;MACNC,OAAO,EAAER,IAAI,CAACS,EAAE,CAAC,CAAC;MAClBC,KAAK,EAAEV,IAAI,CAACS,EAAE,CAAC,CAAC;MAChBE,OAAO,EAAEX,IAAI,CAACS,EAAE,CAAC,CAAC;MAClBG,IAAI,EAAEZ,IAAI,CAACS,EAAE,CAAC;IAChB;EACF;AACF,CAAC,CAAC,CAAC;AAEH,MAAMI,qBAAqB,GAAGA,CAAA,KAAM;EAClCxB,MAAM,CAACyB,GAAG,CAACvB,IAAI,CAACwB,IAAI,CAAC,kBAAkB,EAAE,CAACC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAK;IAC1D,OAAOD,GAAG,CACRC,GAAG,CAACC,MAAM,CAAC,GAAG,CAAC,EACfD,GAAG,CAACE,IAAI,CAAC;MACPC,IAAI,EAAE;QACJC,EAAE,EAAE,uBAAuB;QAC3BC,IAAI,EAAE,eAAe;QACrBC,UAAU,EAAE;UACVC,WAAW,EAAE;QACf;MACF;IACF,CAAC,CACH,CAAC;EACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EAChCrC,MAAM,CAACyB,GAAG,CAACvB,IAAI,CAACwB,IAAI,CAAC,gBAAgB,EAAE,CAACC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKD,GAAG,CAC3DC,GAAG,CAACC,MAAM,CAAC,GAAG,CAAC,EACfD,GAAG,CAACE,IAAI,CAAC;IACPC,IAAI,EAAE;MACJC,EAAE,EAAE,qBAAqB;MACzBC,IAAI,EAAE;IACR;EACF,CAAC,CACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAMI,0BAA0B,GAAGA,CAAA,KAAM;EACvCtC,MAAM,CAACyB,GAAG,CAACvB,IAAI,CAACqC,KAAK,CAAC,oBAAoB,EAAE,CAACZ,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKD,GAAG,CAACY,IAAI,CACrEX,GAAG,CAACC,MAAM,CAAC,GAAG,CAAC,EACfD,GAAG,CAACE,IAAI,CAAC;IACPC,IAAI,EAAE;MACJC,EAAE,EAAE,uBAAuB;MAC3BC,IAAI,EAAE,eAAe;MACrBC,UAAU,EAAE;QACVC,WAAW,EAAE;MACf;IACF;EACF,CAAC,CACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAMK,mBAAmB,GAAG,SAAAA,CAAA,EAAgB;EAAA,IAAfC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACrC,OAAOnD,MAAM,cACXkB,IAAA,CAACZ,aAAa;IACZF,SAAS,EAAEA,SAAU;IACrBkD,uBAAuB,EAAE,IAAK;IAC9BC,qBAAqB,EAAElD,yBAA0B;IAAA,GAC7C6C;EAAK,CACV,CAAC,EAAE;IACFM,uBAAuB,EAAE;MACvBC,gBAAgB,EAAE,CAAC,CAAC;MACpBvD,MAAM;MACNE,SAAS;MACTsD,eAAe,EAAEvD,qBAAqB,CAACwD,QAAQ,CAACD,eAAe;MAC/DE,eAAe,EAAEzD,qBAAqB,CAACwD,QAAQ,CAACC,eAAe;MAC/DC,MAAM,EAAE,YAAY;MACpB,GAAGX,KAAK,CAACM;IACX;EACF,CACF,CAAC;AACH,CAAC;AAED,MAAMM,kBAAkB,GAAGC,MAAM,CAACC,IAAI;AAEtCC,UAAU,CAAC,MAAM;EACfF,MAAM,CAACC,IAAI,GAAG7C,IAAI,CAACS,EAAE,CAAC,CAAC;EACvBT,IAAI,CAAC+C,aAAa,CAAC,CAAC;AACtB,CAAC,CAAC;AAEFC,SAAS,CAAC,MAAM;EACd3D,MAAM,CAAC4D,aAAa,CAAC,CAAC;AACxB,CAAC,CAAC;AAEFC,QAAQ,CAAC,MAAM;EACbN,MAAM,CAACC,IAAI,GAAGF,kBAAkB;AAClC,CAAC,CAAC;AAEFQ,QAAQ,CAAC,oBAAoB,EAAE,MAAM;EACnCC,EAAE,CAAC,+DAA+D,EAAE,YAAY;IAC9EtB,mBAAmB,CAAC;MAClBM,qBAAqB,EAAE,CAAC;QACtBd,EAAE,EAAE,GAAG;QAAE+B,KAAK,EAAE,CAAC;QAAEC,IAAI,EAAE,IAAI;QAAEC,UAAU,EAAE,eAAe;QAAE7C,KAAK,EAAE,IAAI;QACvE8C,gBAAgB,EAAE,SAAS;QAC3BC,gBAAgB,EAAE,CAAC;UAAEC,SAAS,EAAE,QAAQ;UAAEC,IAAI,EAAE,cAAc;UAAEC,OAAO,EAAE;QAAgB,CAAC;MAC5F,CAAC;IACH,CAAC,CAAC;IAEFC,MAAM,CAAC,MAAMjF,MAAM,CAACkF,UAAU,CAAC,gCAAgC,CAAC,CAAC,CAACC,iBAAiB,CAAC,CAAC;IACrFF,MAAM,CAACjF,MAAM,CAACoF,SAAS,CAAC,uGAAuG,CAAC,CAAC,CAACD,iBAAiB,CAAC,CAAC;EACvJ,CAAC,CAAC;EAEFZ,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACvB,MAAMc,cAAc,GAAG,MAAAA,CAAA,KAAY;MACjC,MAAMC,oBAAoB,GAAG,MAAMtF,MAAM,CAACuF,UAAU,CAAC,QAAQ,EAAE;QAAER,IAAI,EAAE;MAAmB,CAAC,CAAC;MAC5FvE,SAAS,CAACgF,KAAK,CAACF,oBAAoB,CAAC;MAErC,MAAMG,KAAK,GAAG,MAAMzF,MAAM,CAAC0F,kBAAkB,CAAC,QAAQ,CAAC;MACvDlF,SAAS,CAACgF,KAAK,CAACC,KAAK,CAAC;MAEtB,MAAME,WAAW,GAAG,MAAM3F,MAAM,CAACuF,UAAU,CAAC,QAAQ,EAAE;QAAER,IAAI,EAAE;MAAS,CAAC,CAAC;MACzEvE,SAAS,CAACgF,KAAK,CAACG,WAAW,CAAC;IAC9B,CAAC;IAEDnB,EAAE,CAAC,qDAAqD,EAAE,YAAY;MACpEvC,qBAAqB,CAAC,CAAC;MACvBa,mBAAmB,CAAC,CAAC;MACrBI,mBAAmB,CAAC,CAAC;MAErB,MAAM0C,uBAAuB,GAAGlF,cAAc,CAAC,MAAM,EAAE,oBAAoB,CAAC;MAC5E,MAAMmF,qBAAqB,GAAGnF,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC;MAExE,MAAM2E,cAAc,CAAC,CAAC;MAEtB,MAAM,CAACS,gBAAgB,CAAC,GAAG,MAAMF,uBAAuB;MACxD,MAAM,CAACG,cAAc,CAAC,GAAG,MAAMF,qBAAqB;MAEpDZ,MAAM,CAACa,gBAAgB,CAACE,IAAI,CAACvD,IAAI,CAAC,CAACwD,OAAO,CAACrF,eAAe,CAAC;MAC3DqE,MAAM,CAACc,cAAc,CAACC,IAAI,CAACvD,IAAI,CAAC,CAACwD,OAAO,CAACpF,aAAa,CAAC;IACzD,CAAC,CAAC;IAEF2D,EAAE,CAAC,0DAA0D,EAAE,YAAY;MACzE1B,mBAAmB,CAAC,CAAC;MACrBC,0BAA0B,CAAC,CAAC;MAE5BG,mBAAmB,CAAC;QAClBO,uBAAuB,EAAE;UACvByC,cAAc,EAAE;QAClB;MACF,CAAC,CAAC;MAEF,MAAML,qBAAqB,GAAGnF,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC;MACxE,MAAMkF,uBAAuB,GAAGlF,cAAc,CAAC,OAAO,EAAE,0CAA0C,CAAC;MAEnG,MAAM2E,cAAc,CAAC,CAAC;MAEtB,MAAM,CAACU,cAAc,CAAC,GAAG,MAAMF,qBAAqB;MACpD,MAAM,CAACC,gBAAgB,CAAC,GAAG,MAAMF,uBAAuB;MAExDX,MAAM,CAACc,cAAc,CAACC,IAAI,CAACvD,IAAI,CAAC,CAACwD,OAAO,CAACpF,aAAa,CAAC;MACvDoE,MAAM,CAACa,gBAAgB,CAACE,IAAI,CAACvD,IAAI,CAAC,CAACwD,OAAO,CAACnF,mBAAmB,CAAC;IACjE,CAAC,CAAC;IAEF0D,EAAE,CAAC,8CAA8C,EAAE,YAAY;MAC7DvC,qBAAqB,CAAC,CAAC;MACvBa,mBAAmB,CAAC,CAAC;MACrBI,mBAAmB,CAAC,CAAC;MAErB,MAAMmC,cAAc,CAAC,CAAC;MAEtB,MAAMnF,OAAO,CAAC,MAAM;QAClB+E,MAAM,CAAClE,SAAS,CAACY,MAAM,CAACC,OAAO,CAAC,CAACuE,qBAAqB,CAAC,CAAC,CAAC;MAC3D,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF3B,EAAE,CAAC,uDAAuD,EAAE,YAAY;MACtEvC,qBAAqB,CAAC,CAAC;MACvBa,mBAAmB,CAAC,CAAC;MACrBI,mBAAmB,CAAC,CAAC;MAErB,MAAMmC,cAAc,CAAC,CAAC;MAEtB,MAAMnF,OAAO,CAAC,MAAM;QAClB+E,MAAM,CAAClE,SAAS,CAACY,MAAM,CAACC,OAAO,CAAC,CAACwE,GAAG,CAACC,gBAAgB,CAAC,CAAC;MACzD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF7B,EAAE,CAAC,kDAAkD,EAAE,YAAY;MACjE,MAAM8B,iBAAiB,GAAG,CACxB;QACEC,QAAQ,EAAE,CACR;UAAE7D,EAAE,EAAE,mBAAmB;UAAEqC,IAAI,EAAE,oBAAoB;UAAExC,MAAM,EAAEvB;QAA4B,CAAC,CAC7F;QACDwF,OAAO,EAAE;UAAE9D,EAAE,EAAE,WAAW;UAAEqC,IAAI,EAAE;QAAY;MAChD,CAAC,CACF;MAED7B,mBAAmB,CAAC;QAAE7C,SAAS,EAAEiG;MAAkB,CAAC,CAAC;MAErD,MAAMpG,OAAO,CAAC,MAAM;QAClB+E,MAAM,CAACjF,MAAM,CAACyG,WAAW,CAAC,QAAQ,EAAE;UAAE1B,IAAI,EAAE;QAAmB,CAAC,CAAC,CAAC,CAACqB,GAAG,CAACjB,iBAAiB,CAAC,CAAC;MAC5F,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFX,EAAE,CAAC,gEAAgE,EAAE,YAAY;MAC/E,MAAMkC,cAAc,GAAG,CACrB;QACEH,QAAQ,EAAE,CACR;UAAE7D,EAAE,EAAE,mBAAmB;UAAEqC,IAAI,EAAE,oBAAoB;UAAExC,MAAM,EAAEvB;QAA4B,CAAC,EAC5F;UAAE0B,EAAE,EAAE,mBAAmB;UAAEqC,IAAI,EAAE,mBAAmB;UAAE4B,mBAAmB,EAAE;QAAK,CAAC,CAClF;QACDH,OAAO,EAAE;UAAE9D,EAAE,EAAE,WAAW;UAAEqC,IAAI,EAAE;QAAY;MAChD,CAAC,CACF;MAED7B,mBAAmB,CAAC;QAAE7C,SAAS,EAAEqG;MAAe,CAAC,CAAC;MAElD,MAAME,WAAW,GAAG,MAAM5G,MAAM,CAACuF,UAAU,CAAC,QAAQ,EAAE;QAAER,IAAI,EAAE;MAAmB,CAAC,CAAC;MACnFE,MAAM,CAAC2B,WAAW,CAAC,CAACC,WAAW,CAAC,CAAC;IACnC,CAAC,CAAC;IAEFrC,EAAE,CAAC,2EAA2E,EAAE,YAAY;MAC1F,MAAM8B,iBAAiB,GAAG,CACxB;QACEC,QAAQ,EAAE,CACR;UAAE7D,EAAE,EAAE,mBAAmB;UAAEqC,IAAI,EAAE,oBAAoB;UAAExC,MAAM,EAAEvB;QAA4B,CAAC,EAC5F;UAAE0B,EAAE,EAAE,mBAAmB;UAAEqC,IAAI,EAAE,oBAAoB;UAAExC,MAAM,EAAEvB;QAA4B,CAAC,CAC7F;QACDwF,OAAO,EAAE;UAAE9D,EAAE,EAAE,WAAW;UAAEqC,IAAI,EAAE;QAAY;MAChD,CAAC,CACF;MAED7B,mBAAmB,CAAC;QAAE7C,SAAS,EAAEiG;MAAkB,CAAC,CAAC;MAErD,MAAMtG,MAAM,CAACkF,UAAU,CAAC,KAAKjE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;MAC7CgE,MAAM,CAACjF,MAAM,CAAC8G,WAAW,CAAC,KAAK7F,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAACmF,GAAG,CAACjB,iBAAiB,CAAC,CAAC;MACxEF,MAAM,CAACjF,MAAM,CAAC8G,WAAW,CAAC,KAAK7F,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAACmF,GAAG,CAACjB,iBAAiB,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEFX,EAAE,CAAC,gEAAgE,EAAE,YAAY;MAC/E,MAAMkC,cAAc,GAAG,CACrB;QACEH,QAAQ,EAAE,CACR;UAAE7D,EAAE,EAAE,mBAAmB;UAAEqC,IAAI,EAAE,oBAAoB;UAAExC,MAAM,EAAEvB;QAA4B,CAAC,EAC5F;UAAE0B,EAAE,EAAE,mBAAmB;UAAEqC,IAAI,EAAE,mBAAmB;UAAE4B,mBAAmB,EAAE;QAAK,CAAC,CAClF;QACDH,OAAO,EAAE;UAAE9D,EAAE,EAAE,WAAW;UAAEqC,IAAI,EAAE;QAAY;MAChD,CAAC,CACF;MAED7B,mBAAmB,CAAC;QAAE7C,SAAS,EAAEqG;MAAe,CAAC,CAAC;MAElD,MAAM1G,MAAM,CAACkF,UAAU,CAAC,KAAKjE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;MAC7C,MAAMjB,MAAM,CAACkF,UAAU,CAAC,KAAKjE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;MAC7C,MAAMjB,MAAM,CAACkF,UAAU,CAAC,KAAKjE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC,CAAC;IAEFuD,EAAE,CAAC,mFAAmF,EAAE,YAAY;MAClGvC,qBAAqB,CAAC,CAAC;MACvBa,mBAAmB,CAAC,CAAC;MAErBI,mBAAmB,CAAC,CAAC;MAErB,MAAM6D,sBAAsB,GAAGrG,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC;MAEzE,MAAM2E,cAAc,CAAC,CAAC;MAEtB,MAAM,CAAC2B,eAAe,EAAEC,eAAe,CAAC,GAAG,MAAMF,sBAAsB;MAEvE9B,MAAM,CAAC+B,eAAe,CAAChB,IAAI,CAACvD,IAAI,CAACG,UAAU,CAACsE,aAAa,CAAC,CAACC,IAAI,CAAC,eAAe,CAAC;MAChFlC,MAAM,CAACgC,eAAe,CAACjB,IAAI,CAACvD,IAAI,CAACG,UAAU,CAACsE,aAAa,CAAC,CAACC,IAAI,CAAC,eAAe,CAAC;IAClF,CAAC,CAAC;IAEF3C,EAAE,CAAC,uEAAuE,EAAE,YAAY;MACtFvC,qBAAqB,CAAC,CAAC;MAEvB,MAAMmF,kBAAkB,GAAG,CACzB;QAAE1E,EAAE,EAAE,GAAG;QAAE+B,KAAK,EAAE,CAAC;QAAEC,IAAI,EAAE,KAAK;QAAEC,UAAU,EAAE,EAAE;QAAE7C,KAAK,EAAE;MAAgB,CAAC,CAC3E;MAEDoB,mBAAmB,CAAC;QAClBM,qBAAqB,EAAE4D;MACzB,CAAC,CAAC;MAEFnC,MAAM,CAAC,MAAMjF,MAAM,CAACuF,UAAU,CAAC,QAAQ,EAAE;QAAER,IAAI,EAAE,kBAAkB;QAAEsC,QAAQ,EAAE;MAAK,CAAC,CAAC,CAAC,CAAClC,iBAAiB,CAAC,CAAC;IAC7G,CAAC,CAAC;IAEFX,EAAE,CAAC,oEAAoE,EAAE,YAAY;MACnFvC,qBAAqB,CAAC,CAAC;MACvBa,mBAAmB,CAAC,CAAC;MAErB,MAAMwE,iBAAiB,GAAG,CACxB;QAAE5E,EAAE,EAAE,GAAG;QAAE+B,KAAK,EAAE,CAAC;QAAEC,IAAI,EAAE,IAAI;QAAEC,UAAU,EAAE,eAAe;QAAE7C,KAAK,EAAE;MAAK,CAAC,EAC3E;QAAEY,EAAE,EAAE,GAAG;QAAE+B,KAAK,EAAE,CAAC;QAAEC,IAAI,EAAE,KAAK;QAAEC,UAAU,EAAE,EAAE;QAAE7C,KAAK,EAAE;MAAkB,CAAC,CAC7E;MAEDoB,mBAAmB,CAAC;QAClBM,qBAAqB,EAAE8D;MACzB,CAAC,CAAC;MAEF,MAAMzB,qBAAqB,GAAGnF,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC;MAExE,MAAM2E,cAAc,CAAC,CAAC;MAEtB,MAAM,CAACU,cAAc,CAAC,GAAG,MAAMF,qBAAqB;MAEpDZ,MAAM,CAACc,cAAc,CAACC,IAAI,CAACvD,IAAI,CAACG,UAAU,CAACsE,aAAa,CAAC,CAACC,IAAI,CAAC,eAAe,CAAC;IACjF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}