@fluid-app/portal-sdk 0.1.253 → 0.1.255

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 (211) hide show
  1. package/dist/{AddressAutocompleteInput-Dy5sL54V.mjs → AddressAutocompleteInput-Dg-75n-K.mjs} +9 -12
  2. package/dist/AddressAutocompleteInput-Dg-75n-K.mjs.map +1 -0
  3. package/dist/{AddressAutocompleteInput-eO2ZMNvX.cjs → AddressAutocompleteInput-W2jWPYoJ.cjs} +26 -11
  4. package/dist/AddressAutocompleteInput-W2jWPYoJ.cjs.map +1 -0
  5. package/dist/{ContactsScreen-9gyQNZY-.cjs → ContactsScreen-BC5P7RD1.cjs} +2 -2
  6. package/dist/{ContactsScreen-B9I61v6-.cjs → ContactsScreen-BTBszjeo.cjs} +22 -22
  7. package/dist/{ContactsScreen-B9I61v6-.cjs.map → ContactsScreen-BTBszjeo.cjs.map} +1 -1
  8. package/dist/{ContactsScreen-gMBovFil.mjs → ContactsScreen-CYl6fWtE.mjs} +22 -22
  9. package/dist/{ContactsScreen-gMBovFil.mjs.map → ContactsScreen-CYl6fWtE.mjs.map} +1 -1
  10. package/dist/{FluidProvider-Can6hW1d.mjs → FluidProvider-B58aBJhk.mjs} +4 -5
  11. package/dist/{FluidProvider-Can6hW1d.mjs.map → FluidProvider-B58aBJhk.mjs.map} +1 -1
  12. package/dist/{FluidProvider-BLri8EGR.cjs → FluidProvider-IFbNov8P.cjs} +3 -10
  13. package/dist/{FluidProvider-BLri8EGR.cjs.map → FluidProvider-IFbNov8P.cjs.map} +1 -1
  14. package/dist/{MessagingScreen-CTjDMhpI.mjs → MessagingScreen-BU7xPuff.mjs} +2 -2
  15. package/dist/{MessagingScreen-CLnVhFC5.cjs → MessagingScreen-BohdQMST.cjs} +2 -2
  16. package/dist/{MessagingScreen-BqmMhGDq.mjs → MessagingScreen-CKE4KsvW.mjs} +2 -2
  17. package/dist/{MessagingScreen-BqmMhGDq.mjs.map → MessagingScreen-CKE4KsvW.mjs.map} +1 -1
  18. package/dist/{MessagingScreen-CLcsshRX.cjs → MessagingScreen-CrTcbztO.cjs} +2 -2
  19. package/dist/{MessagingScreen-CLcsshRX.cjs.map → MessagingScreen-CrTcbztO.cjs.map} +1 -1
  20. package/dist/{ProfileScreen-6nDSJ8F0.mjs → ProfileScreen-D42NNNqT.mjs} +3 -3
  21. package/dist/{ProfileScreen-DvWpS_uG.mjs → ProfileScreen-Dvq3SfmI.mjs} +3 -3
  22. package/dist/{ProfileScreen-DvWpS_uG.mjs.map → ProfileScreen-Dvq3SfmI.mjs.map} +1 -1
  23. package/dist/{ProfileScreen-Ckh4xGkq.cjs → ProfileScreen-LL3z9-cx.cjs} +3 -3
  24. package/dist/{ProfileScreen-Ckh4xGkq.cjs.map → ProfileScreen-LL3z9-cx.cjs.map} +1 -1
  25. package/dist/{ProfileScreen-0fVNXPBY.cjs → ProfileScreen-dU8ZM8eY.cjs} +3 -3
  26. package/dist/{ShopScreen-Cdxvxph7.cjs → ShopScreen-C4z4aB8f.cjs} +3 -3
  27. package/dist/{ShopScreen-Cdxvxph7.cjs.map → ShopScreen-C4z4aB8f.cjs.map} +1 -1
  28. package/dist/{ShopScreen-C5IVlT_r.cjs → ShopScreen-CrRI83Xk.cjs} +3 -3
  29. package/dist/{ShopScreen-CvefnY1H.mjs → ShopScreen-DXzBm27P.mjs} +3 -3
  30. package/dist/{ShopScreen-CvefnY1H.mjs.map → ShopScreen-DXzBm27P.mjs.map} +1 -1
  31. package/dist/{ShopScreen-Dyy0Yi2Q.mjs → ShopScreen-kuA8cWVc.mjs} +3 -3
  32. package/dist/{SubscriptionsScreen-ByoOMsky.cjs → SubscriptionsScreen-Bm8Ncl1e.cjs} +624 -166
  33. package/dist/SubscriptionsScreen-Bm8Ncl1e.cjs.map +1 -0
  34. package/dist/{SubscriptionsScreen-Y4UgpC1Y.mjs → SubscriptionsScreen-CsNE6gik.mjs} +627 -169
  35. package/dist/SubscriptionsScreen-CsNE6gik.mjs.map +1 -0
  36. package/dist/{SubscriptionsScreen-GCZYPM8-.cjs → SubscriptionsScreen-ztgglvXe.cjs} +2 -2
  37. package/dist/de-C_Zyp0-8.mjs +55 -0
  38. package/dist/de-C_Zyp0-8.mjs.map +1 -0
  39. package/dist/de-DeRNmEET.cjs +61 -0
  40. package/dist/de-DeRNmEET.cjs.map +1 -0
  41. package/dist/el-BD_oG0S8.cjs +61 -0
  42. package/dist/el-BD_oG0S8.cjs.map +1 -0
  43. package/dist/el-DR5yE3hc.mjs +55 -0
  44. package/dist/el-DR5yE3hc.mjs.map +1 -0
  45. package/dist/es-BBPaROwb.mjs +55 -0
  46. package/dist/es-BBPaROwb.mjs.map +1 -0
  47. package/dist/es-Bb_shBOb.cjs +61 -0
  48. package/dist/es-Bb_shBOb.cjs.map +1 -0
  49. package/dist/fr-BetvW17a.mjs +55 -0
  50. package/dist/fr-BetvW17a.mjs.map +1 -0
  51. package/dist/fr-Cah7_RPB.cjs +61 -0
  52. package/dist/fr-Cah7_RPB.cjs.map +1 -0
  53. package/dist/he-D3kODvf8.mjs +55 -0
  54. package/dist/he-D3kODvf8.mjs.map +1 -0
  55. package/dist/he-gYOd_7Xx.cjs +61 -0
  56. package/dist/he-gYOd_7Xx.cjs.map +1 -0
  57. package/dist/hu-C68EBfmm.mjs +55 -0
  58. package/dist/hu-C68EBfmm.mjs.map +1 -0
  59. package/dist/hu-Cn5739bo.cjs +61 -0
  60. package/dist/hu-Cn5739bo.cjs.map +1 -0
  61. package/dist/id-BH2K_Gbr.cjs +61 -0
  62. package/dist/id-BH2K_Gbr.cjs.map +1 -0
  63. package/dist/id-Bt8m325E.mjs +55 -0
  64. package/dist/id-Bt8m325E.mjs.map +1 -0
  65. package/dist/index.cjs +22 -58
  66. package/dist/index.cjs.map +1 -1
  67. package/dist/index.mjs +23 -59
  68. package/dist/index.mjs.map +1 -1
  69. package/dist/it-BqtPjHii.cjs +61 -0
  70. package/dist/it-BqtPjHii.cjs.map +1 -0
  71. package/dist/it-WF3n2-Dh.mjs +55 -0
  72. package/dist/it-WF3n2-Dh.mjs.map +1 -0
  73. package/dist/ja-D6Gu5dFq.cjs +61 -0
  74. package/dist/ja-D6Gu5dFq.cjs.map +1 -0
  75. package/dist/ja-DwJ0vZjy.mjs +55 -0
  76. package/dist/ja-DwJ0vZjy.mjs.map +1 -0
  77. package/dist/ko-BdbrLr2D.mjs +55 -0
  78. package/dist/ko-BdbrLr2D.mjs.map +1 -0
  79. package/dist/ko-Dl2fBpWC.cjs +61 -0
  80. package/dist/ko-Dl2fBpWC.cjs.map +1 -0
  81. package/dist/nl-CA5o2t0S.cjs +61 -0
  82. package/dist/nl-CA5o2t0S.cjs.map +1 -0
  83. package/dist/nl-CUiqH5zZ.mjs +55 -0
  84. package/dist/nl-CUiqH5zZ.mjs.map +1 -0
  85. package/dist/pl-IbyEkNiD.mjs +55 -0
  86. package/dist/pl-IbyEkNiD.mjs.map +1 -0
  87. package/dist/pl-WlQv3-yq.cjs +61 -0
  88. package/dist/pl-WlQv3-yq.cjs.map +1 -0
  89. package/dist/pt-BhhvO4Qw.mjs +55 -0
  90. package/dist/pt-BhhvO4Qw.mjs.map +1 -0
  91. package/dist/pt-Cuoe77sP.cjs +61 -0
  92. package/dist/pt-Cuoe77sP.cjs.map +1 -0
  93. package/dist/ro-DIrwj2Mc.cjs +61 -0
  94. package/dist/ro-DIrwj2Mc.cjs.map +1 -0
  95. package/dist/ro-GgbW8Cux.mjs +55 -0
  96. package/dist/ro-GgbW8Cux.mjs.map +1 -0
  97. package/dist/ru-BC9x5NIp.mjs +55 -0
  98. package/dist/ru-BC9x5NIp.mjs.map +1 -0
  99. package/dist/ru-DCHj3W_N.cjs +61 -0
  100. package/dist/ru-DCHj3W_N.cjs.map +1 -0
  101. package/dist/{static-dict-adapter-Bxrw9FK5.cjs → static-dict-adapter-BLfRl80i.cjs} +1 -2
  102. package/dist/static-dict-adapter-BLfRl80i.cjs.map +1 -0
  103. package/dist/{static-dict-adapter-Bc5RtEkZ.mjs → static-dict-adapter-CdbsRyE-.mjs} +1 -2
  104. package/dist/static-dict-adapter-CdbsRyE-.mjs.map +1 -0
  105. package/dist/th-C2DeNJoD.mjs +55 -0
  106. package/dist/th-C2DeNJoD.mjs.map +1 -0
  107. package/dist/th-CebgyxgZ.cjs +61 -0
  108. package/dist/th-CebgyxgZ.cjs.map +1 -0
  109. package/dist/tl-CxY_bq4K.mjs +55 -0
  110. package/dist/tl-CxY_bq4K.mjs.map +1 -0
  111. package/dist/tl-DlFV8z30.cjs +61 -0
  112. package/dist/tl-DlFV8z30.cjs.map +1 -0
  113. package/dist/tr-Dj-KyRbz.cjs +61 -0
  114. package/dist/tr-Dj-KyRbz.cjs.map +1 -0
  115. package/dist/tr-DjrNAJD7.mjs +55 -0
  116. package/dist/tr-DjrNAJD7.mjs.map +1 -0
  117. package/dist/zh_CN-BE-GTtuO.mjs +55 -0
  118. package/dist/zh_CN-BE-GTtuO.mjs.map +1 -0
  119. package/dist/zh_CN-s2Jm_Dbu.cjs +61 -0
  120. package/dist/zh_CN-s2Jm_Dbu.cjs.map +1 -0
  121. package/dist/zh_TW-CR1xJCr6.mjs +55 -0
  122. package/dist/zh_TW-CR1xJCr6.mjs.map +1 -0
  123. package/dist/zh_TW-t10xPnCU.cjs +61 -0
  124. package/dist/zh_TW-t10xPnCU.cjs.map +1 -0
  125. package/package.json +14 -14
  126. package/dist/AddressAutocompleteInput-Dy5sL54V.mjs.map +0 -1
  127. package/dist/AddressAutocompleteInput-eO2ZMNvX.cjs.map +0 -1
  128. package/dist/SubscriptionsScreen-ByoOMsky.cjs.map +0 -1
  129. package/dist/SubscriptionsScreen-Y4UgpC1Y.mjs.map +0 -1
  130. package/dist/de-69v-QMl3.mjs +0 -6
  131. package/dist/de-69v-QMl3.mjs.map +0 -1
  132. package/dist/de-CvBkoR8P.cjs +0 -12
  133. package/dist/de-CvBkoR8P.cjs.map +0 -1
  134. package/dist/el-CP3qYmjt.cjs +0 -12
  135. package/dist/el-CP3qYmjt.cjs.map +0 -1
  136. package/dist/el-moRf_431.mjs +0 -6
  137. package/dist/el-moRf_431.mjs.map +0 -1
  138. package/dist/es-BAjIJqb8.mjs +0 -6
  139. package/dist/es-BAjIJqb8.mjs.map +0 -1
  140. package/dist/es-DdHDXWW1.cjs +0 -12
  141. package/dist/es-DdHDXWW1.cjs.map +0 -1
  142. package/dist/fr-B6rL2HtM.mjs +0 -6
  143. package/dist/fr-B6rL2HtM.mjs.map +0 -1
  144. package/dist/fr-wZG7Wsps.cjs +0 -12
  145. package/dist/fr-wZG7Wsps.cjs.map +0 -1
  146. package/dist/he-B5y3gSwp.mjs +0 -6
  147. package/dist/he-B5y3gSwp.mjs.map +0 -1
  148. package/dist/he-C_xAhEyE.cjs +0 -12
  149. package/dist/he-C_xAhEyE.cjs.map +0 -1
  150. package/dist/hu-BYzcu3lh.mjs +0 -6
  151. package/dist/hu-BYzcu3lh.mjs.map +0 -1
  152. package/dist/hu-CttQPNpi.cjs +0 -12
  153. package/dist/hu-CttQPNpi.cjs.map +0 -1
  154. package/dist/id-D_R-JS-K.mjs +0 -6
  155. package/dist/id-D_R-JS-K.mjs.map +0 -1
  156. package/dist/id-iykEHp5z.cjs +0 -12
  157. package/dist/id-iykEHp5z.cjs.map +0 -1
  158. package/dist/it-BM8H-5lK.mjs +0 -6
  159. package/dist/it-BM8H-5lK.mjs.map +0 -1
  160. package/dist/it-aOan3LJA.cjs +0 -12
  161. package/dist/it-aOan3LJA.cjs.map +0 -1
  162. package/dist/ja-DJwh8O25.cjs +0 -12
  163. package/dist/ja-DJwh8O25.cjs.map +0 -1
  164. package/dist/ja-uq5fuZ2n.mjs +0 -6
  165. package/dist/ja-uq5fuZ2n.mjs.map +0 -1
  166. package/dist/ko-BrOveybS.cjs +0 -12
  167. package/dist/ko-BrOveybS.cjs.map +0 -1
  168. package/dist/ko-DCZTj-Cn.mjs +0 -6
  169. package/dist/ko-DCZTj-Cn.mjs.map +0 -1
  170. package/dist/nl-BOJJj-wO.mjs +0 -6
  171. package/dist/nl-BOJJj-wO.mjs.map +0 -1
  172. package/dist/nl-CwVoaQ7l.cjs +0 -12
  173. package/dist/nl-CwVoaQ7l.cjs.map +0 -1
  174. package/dist/pl-Cjublhfj.mjs +0 -6
  175. package/dist/pl-Cjublhfj.mjs.map +0 -1
  176. package/dist/pl-CxlPZSW0.cjs +0 -12
  177. package/dist/pl-CxlPZSW0.cjs.map +0 -1
  178. package/dist/pt-DIdr0upI.cjs +0 -12
  179. package/dist/pt-DIdr0upI.cjs.map +0 -1
  180. package/dist/pt-Dj1-G3ee.mjs +0 -6
  181. package/dist/pt-Dj1-G3ee.mjs.map +0 -1
  182. package/dist/ro-94vihNFf.mjs +0 -6
  183. package/dist/ro-94vihNFf.mjs.map +0 -1
  184. package/dist/ro-B_Do9sPB.cjs +0 -12
  185. package/dist/ro-B_Do9sPB.cjs.map +0 -1
  186. package/dist/ru-CeRancbh.cjs +0 -12
  187. package/dist/ru-CeRancbh.cjs.map +0 -1
  188. package/dist/ru-DoATiIwu.mjs +0 -6
  189. package/dist/ru-DoATiIwu.mjs.map +0 -1
  190. package/dist/static-dict-adapter-Bc5RtEkZ.mjs.map +0 -1
  191. package/dist/static-dict-adapter-Bxrw9FK5.cjs.map +0 -1
  192. package/dist/th-B43cNBU0.cjs +0 -12
  193. package/dist/th-B43cNBU0.cjs.map +0 -1
  194. package/dist/th-YR02xDFQ.mjs +0 -6
  195. package/dist/th-YR02xDFQ.mjs.map +0 -1
  196. package/dist/tl-CHqst9js.cjs +0 -12
  197. package/dist/tl-CHqst9js.cjs.map +0 -1
  198. package/dist/tl-RXmEp0_X.mjs +0 -6
  199. package/dist/tl-RXmEp0_X.mjs.map +0 -1
  200. package/dist/tr-BuEAVG9I.mjs +0 -6
  201. package/dist/tr-BuEAVG9I.mjs.map +0 -1
  202. package/dist/tr-DYe4JMxj.cjs +0 -12
  203. package/dist/tr-DYe4JMxj.cjs.map +0 -1
  204. package/dist/zh_CN-CUeI99z0.cjs +0 -12
  205. package/dist/zh_CN-CUeI99z0.cjs.map +0 -1
  206. package/dist/zh_CN-NCLMiB-i.mjs +0 -6
  207. package/dist/zh_CN-NCLMiB-i.mjs.map +0 -1
  208. package/dist/zh_TW-CgTn_SV4.cjs +0 -12
  209. package/dist/zh_TW-CgTn_SV4.cjs.map +0 -1
  210. package/dist/zh_TW-CtEmIukX.mjs +0 -6
  211. package/dist/zh_TW-CtEmIukX.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import "./FluidProvider-Can6hW1d.mjs";
1
+ import "./FluidProvider-B58aBJhk.mjs";
2
2
  import "./ScreenRenderer-YOmW7J80.mjs";
3
3
  import "./account-api-context-BIZ_aibJ.mjs";
4
4
  import "./store-api-context-C1lXT_3d.mjs";
@@ -40,8 +40,8 @@ import "./TableWidget-BpJ_Cq6L.mjs";
40
40
  import "./ToDoWidget-BxjuO6zx.mjs";
41
41
  import "./VideoWidget-DSPDdiYr.mjs";
42
42
  import "./ScreenHeaderContext-kG_zh0zW.mjs";
43
- import "./AddressAutocompleteInput-Dy5sL54V.mjs";
43
+ import "./AddressAutocompleteInput-Dg-75n-K.mjs";
44
44
  import "./sortable.esm-C-MnF_6h.mjs";
45
45
  import "./components-C556hFhF.mjs";
46
- import { n as profileScreenPropertySchema, t as ProfileScreen } from "./ProfileScreen-DvWpS_uG.mjs";
46
+ import { n as profileScreenPropertySchema, t as ProfileScreen } from "./ProfileScreen-Dvq3SfmI.mjs";
47
47
  export { ProfileScreen, profileScreenPropertySchema };
@@ -1,4 +1,4 @@
1
- import { R as useLanguagesApi, n as useFluidContext } from "./FluidProvider-Can6hW1d.mjs";
1
+ import { L as useLanguagesApi, n as useFluidContext } from "./FluidProvider-B58aBJhk.mjs";
2
2
  import { n as useAccountApi } from "./account-api-context-BIZ_aibJ.mjs";
3
3
  import { i as usePayApi } from "./api-context-3GmfqvIB.mjs";
4
4
  import { n as useCountriesApi } from "./countries-api-context-CMh13cfX.mjs";
@@ -6,7 +6,7 @@ import { Fn as useZodForm, b as fluidToast, dn as Breadcrumb, fn as BreadcrumbIt
6
6
  import { r as useScreenHeaderBreadcrumbs } from "./ScreenHeaderContext-kG_zh0zW.mjs";
7
7
  import { n as payKeys, r as storeKeys, t as accountKeys } from "./query-keys-xJy_fapN.mjs";
8
8
  import { t as useAccount } from "./use-account-CBMPhhs7.mjs";
9
- import { a as AddressFormDialog, c as MySiteProfileSocialSection, d as Profile, g as ProfileUIProvider, h as FluidPayCoreProvider, i as CreditCardFormDialog, l as mySiteProfileSchema, n as createFluidPayApiAdapter, o as MySiteProfileSaveButton, r as mapToFluidPayPaymentMethod, s as MySiteProfileSection, t as AddressAutocompleteInput, u as socialFields } from "./AddressAutocompleteInput-Dy5sL54V.mjs";
9
+ import { a as AddressFormDialog, c as MySiteProfileSocialSection, d as Profile, i as CreditCardFormDialog, l as mySiteProfileSchema, n as createFluidPayApiAdapter, o as MySiteProfileSaveButton, r as mapToFluidPayPaymentMethod, s as MySiteProfileSection, t as AddressAutocompleteInput, u as socialFields, v as FluidPayCoreProvider, y as ProfileUIProvider } from "./AddressAutocompleteInput-Dg-75n-K.mjs";
10
10
  import { w as usePortalUpdateSettings, y as usePortalMySiteProfile } from "./sortable.esm-C-MnF_6h.mjs";
11
11
  import { a as MySiteLinkCard } from "./components-C556hFhF.mjs";
12
12
  import { useCallback, useMemo } from "react";
@@ -562,4 +562,4 @@ const profileScreenPropertySchema = {
562
562
  //#endregion
563
563
  export { profileScreenPropertySchema as n, ProfileScreen as t };
564
564
 
565
- //# sourceMappingURL=ProfileScreen-DvWpS_uG.mjs.map
565
+ //# sourceMappingURL=ProfileScreen-Dvq3SfmI.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileScreen-DvWpS_uG.mjs","names":[],"sources":["../src/screens/ProfileContentScreen.tsx","../src/screens/ProfileScreen.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useZodForm } from \"@fluid-app/ui-primitives\";\nimport { ProfileUIProvider } from \"@fluid-app/profile-core\";\nimport type { Language, PointsLedger } from \"@fluid-app/profile-core\";\nimport {\n Profile,\n AddressFormDialog,\n CreditCardFormDialog,\n MySiteProfileSection,\n MySiteProfileSocialSection,\n MySiteProfileSaveButton,\n mySiteProfileSchema,\n socialFields,\n} from \"@fluid-app/profile-ui\";\nimport type { MySiteProfileFormData } from \"@fluid-app/profile-ui\";\nimport type {\n UserFormData,\n EditPaymentMethodFormData,\n} from \"@fluid-app/profile-ui\";\nimport {\n FluidPayCoreProvider,\n type fluidPay,\n type State,\n} from \"@fluid-app/fluid-pay-core\";\nimport type {\n PayAddress,\n UpdatePaymentMethodBody,\n} from \"@fluid-app/portal-core/pay-types\";\nimport {\n createFluidPayApiAdapter,\n mapToFluidPayPaymentMethod,\n} from \"../adapters/fluid-pay-api-adapter\";\nimport type { AccountRep } from \"@fluid-app/portal-core/account-types\";\nimport { useAccountApi } from \"@fluid-app/portal-core/account-api-context\";\nimport { usePayApi } from \"@fluid-app/portal-core/pay-api-context\";\nimport {\n usePortalMySiteProfile,\n usePortalUpdateSettings,\n} from \"@fluid-app/mysite-ui/portal/hooks/use-mysite-portal\";\nimport { MySiteLinkCard } from \"@fluid-app/mysite-ui/portal/components\";\nimport { useCountriesApi } from \"@fluid-app/store-core/countries-api-context\";\nimport { useLanguagesApi } from \"@fluid-app/store-core/languages-api-context\";\nimport { AddressAutocompleteInput } from \"@fluid-app/address-autocomplete/components/AddressAutocompleteInput\";\nimport { accountKeys, payKeys, storeKeys } from \"../account/query-keys\";\nimport { useAccount } from \"../hooks/use-account\";\n\ninterface ProfileContentScreenProps {\n onToast: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n countryIso: string;\n}\n\nconst translations: Record<string, string> = {\n edit_profile: \"Edit Profile\",\n first_name: \"First Name\",\n last_name: \"Last Name\",\n phone_number: \"Phone Number\",\n language: \"Language\",\n first_name_is_required: \"First name is required\",\n last_name_is_required: \"Last name is required\",\n language_is_required: \"Language is required\",\n saving: \"Saving...\",\n save_changes: \"Save Changes\",\n select_an_option: \"Select an option\",\n points_history: \"Points History\",\n points_available: \"Points Available\",\n points_awarded: \"Points Awarded\",\n points_redeemed: \"Points Redeemed\",\n transaction: \"Transaction\",\n no_points_history_found: \"No points history found\",\n shipping_addresses: \"Shipping Addresses\",\n add_an_address: \"Add an Address\",\n delete_address: \"Delete Address\",\n delete_address_message:\n \"Are you sure you want to delete this address? This action cannot be undone.\",\n delete: \"Delete\",\n add_address: \"Add Address\",\n edit_address: \"Edit Address\",\n set_as_default_address: \"Set as default address\",\n save_address: \"Save Address\",\n card_number: \"Card Number\",\n expiration_date: \"Expiration (MM / YY)\",\n cvc: \"CVC\",\n cardholder_name: \"Cardholder Name\",\n add_credit_card: \"Add Credit Card\",\n save_card: \"Save Card\",\n securing: \"Loading secure form...\",\n payment_methods: \"Payment Methods\",\n add_payment_method: \"Add Payment Method\",\n delete_credit_card: \"Delete Credit Card\",\n delete_credit_card_message:\n \"Are you sure you want to delete this payment method? This action cannot be undone.\",\n edit_card: \"Card Details\",\n billing_address: \"Billing Address\",\n country: \"Country\",\n name: \"Name\",\n address_line_1: \"Address Line 1\",\n address_line_2: \"Address Line 2\",\n city: \"City\",\n state: \"State\",\n province: \"Province\",\n zip_code: \"Zip Code\",\n postal_code: \"Postal Code\",\n select_state: \"Select state\",\n set_as_default_payment_method: \"Set as default payment method\",\n cancel: \"Cancel\",\n save: \"Save\",\n close: \"Close\",\n edit: \"Edit\",\n default: \"Default\",\n card_expires: \"Expires\",\n no_billing_address: \"No billing address on file\",\n default_payment_method_updated: \"Payment method updated\",\n failed_to_set_default_payment_method: \"Failed to update payment method\",\n};\n\nfunction t(key: string): string {\n if (translations[key]) return translations[key];\n return key\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n}\n\nfunction adaptPointsLedger(\n entry: import(\"@fluid-app/portal-core/pay-types\").PointsLedgerEntry,\n): PointsLedger {\n const meta = entry.metadata as {\n transaction_type?: string | null;\n source?: {\n name: string;\n email?: string;\n reason?: string;\n user_id?: number;\n } | null;\n } | null;\n return {\n id: entry.id,\n amount: entry.amount,\n company_id: 0,\n created_at: entry.created_at,\n customer_id: 0,\n metadata: {\n transaction_type: meta?.transaction_type ?? undefined,\n source: meta?.source ?? undefined,\n },\n total_balance: entry.total_balance,\n updated_at: entry.created_at,\n };\n}\n\nfunction mapAccountToCustomerAccount(\n raw: AccountRep,\n): fluidPay.CustomerAccount {\n return {\n fluid_pay_account: {\n id: raw.id,\n email: raw.email,\n address_count: 0,\n payment_methods_count: 0,\n language_iso: null,\n },\n customer: {\n id: raw.id,\n active: true,\n active_subscriptions_count: 0,\n display_total_spent: \"0\",\n email: raw.email,\n first_name: raw.first_name,\n full_name: `${raw.first_name} ${raw.last_name}`.trim(),\n inactive_subscriptions_count: 0,\n is_rep: raw.member_type === \"rep\",\n phone: raw.phone,\n orders_count: 0,\n },\n };\n}\n\nfunction composeAddressName(\n firstName: string,\n lastName: string,\n): string | null {\n const combined = `${firstName} ${lastName}`.trim();\n return combined.length > 0 ? combined : null;\n}\n\nfunction mapToFluidPayAddress(raw: PayAddress): fluidPay.CustomerAddress {\n return {\n id: raw.id,\n address1: raw.street1,\n address2: raw.street2,\n city: raw.city,\n country_code: raw.country,\n default: raw.default,\n name: raw.name,\n postal_code: raw.zip,\n state: raw.state,\n subdivision_code: null,\n };\n}\n\ntype SocialFieldKey = (typeof socialFields)[number][\"name\"];\n\nfunction mapAccountToMySiteFormValues(\n account: AccountRep | undefined,\n): MySiteProfileFormData {\n const social = account?.social_links ?? {};\n const result = { bio: account?.bio ?? \"\" } as MySiteProfileFormData;\n for (const { name } of socialFields) {\n result[name] = social[name] ?? \"\";\n }\n return result;\n}\n\nfunction mapFormToSocialLinks(\n data: MySiteProfileFormData,\n): Record<SocialFieldKey, string> {\n const result = {} as Record<SocialFieldKey, string>;\n for (const { name } of socialFields) {\n result[name] = data[name] ?? \"\";\n }\n return result;\n}\n\nexport function ProfileContentScreen({\n onToast,\n countryIso: _countryIso,\n}: ProfileContentScreenProps): React.JSX.Element {\n const payApi = usePayApi();\n const accountApi = useAccountApi();\n const queryClient = useQueryClient();\n const fluidPayShim = useMemo(\n () => createFluidPayApiAdapter(payApi),\n [payApi],\n );\n\n const { data: mySiteProfile } = usePortalMySiteProfile();\n const updateMySiteSettingsMutation = usePortalUpdateSettings();\n\n const mySiteUrl = mySiteProfile?.mysite_url ?? \"\";\n const mySiteDisplayUrl = mySiteUrl\n ? mySiteUrl.replace(/^https?:\\/\\//, \"\")\n : \"\";\n\n const handleUpdateSlug = useCallback(\n async (slug: string) => {\n await updateMySiteSettingsMutation.mutateAsync({ slug });\n },\n [updateMySiteSettingsMutation],\n );\n\n // Reuse the app-wide useAccount() cache entry shared with AppShell/PageRouter.\n const {\n data: accountRep,\n isLoading: isLoadingAccount,\n isError: isAccountError,\n } = useAccount();\n\n const mySiteFormValues = useMemo(\n () => mapAccountToMySiteFormValues(accountRep),\n [accountRep],\n );\n\n const {\n control: mySiteControl,\n handleSubmit: handleMySiteSubmit,\n formState: { isDirty: isMySiteDirty },\n } = useZodForm<MySiteProfileFormData>(mySiteProfileSchema, {\n values: mySiteFormValues,\n });\n\n const updateMySiteProfileMutation = useMutation({\n mutationFn: (data: MySiteProfileFormData) =>\n accountApi.updateAccount({\n account: {\n bio: data.bio,\n social_links: mapFormToSocialLinks(data),\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated successfully\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const handleMySiteProfileSubmit = handleMySiteSubmit((data) => {\n updateMySiteProfileMutation.mutate(data);\n });\n const accountData = useMemo(\n () => (accountRep ? mapAccountToCustomerAccount(accountRep) : undefined),\n [accountRep],\n );\n\n const { data: addressesData, isLoading: isLoadingAddresses } = useQuery({\n queryKey: payKeys.addresses.list(),\n queryFn: async () => {\n const response = await payApi.fetchAddresses();\n return response.addresses.map(mapToFluidPayAddress);\n },\n enabled: true,\n });\n\n const { data: paymentMethodsData, isLoading: isLoadingPaymentMethods } =\n useQuery({\n queryKey: payKeys.paymentMethods.list(),\n queryFn: async () => {\n const response = await payApi.fetchPaymentMethods();\n return response.payment_methods.map(mapToFluidPayPaymentMethod);\n },\n enabled: true,\n });\n\n const countriesAdapter = useCountriesApi();\n const languagesAdapter = useLanguagesApi();\n\n const { data: countriesData } = useQuery({\n queryKey: storeKeys.countries(),\n queryFn: () => countriesAdapter.listCountries(),\n enabled: true,\n });\n\n const { data: languagesData } = useQuery({\n queryKey: storeKeys.languages(),\n queryFn: () => languagesAdapter.listLanguages(),\n enabled: true,\n });\n\n const {\n data: pointsLedgerData,\n isLoading: isLoadingPointsLedger,\n isError: isPointsLedgerError,\n } = useQuery({\n queryKey: payKeys.pointsLedgers.list(),\n queryFn: () => payApi.fetchPointsLedgers(),\n enabled: true,\n // BFF returns 403 when reward points are not enabled for the company.\n // Don't retry on 403 so the UI simply hides the points section.\n retry: (failureCount, error) => {\n if (\n error instanceof Error &&\n \"status\" in error &&\n (error as { status: number }).status === 403\n ) {\n return false;\n }\n return failureCount < 1;\n },\n });\n\n // Points are enabled if the fetch succeeded (non-403)\n const rewardPointsEnabled = !isPointsLedgerError && pointsLedgerData != null;\n\n const updateCustomerMutation = useMutation({\n mutationFn: async (data: UserFormData) => {\n await accountApi.updateAccount({\n account: {\n first_name: data.first_name,\n last_name: data.last_name,\n phone: data.phone_number,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const deleteAddressMutation = useMutation({\n mutationFn: (addressId: number) => payApi.deleteAddress(addressId),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n },\n onError: () => {\n onToast(\"Failed to delete address\", \"error\");\n },\n });\n\n const deletePaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) =>\n payApi.deletePaymentMethod(paymentMethodId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to delete payment method\", \"error\");\n },\n });\n\n const updatePaymentMethodMutation = useMutation({\n mutationFn: ({\n paymentMethodId,\n data,\n }: {\n paymentMethodId: number;\n data: EditPaymentMethodFormData;\n }) =>\n payApi.updatePaymentMethod(paymentMethodId, {\n payment_method: {\n default: data.set_as_default,\n billing_address: {\n name: data.billing_address.name,\n street1: data.billing_address.address1,\n street2: data.billing_address.address2 ?? null,\n city: data.billing_address.city,\n state: data.billing_address.state,\n zip: data.billing_address.zip,\n country: data.billing_address.country_code,\n },\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to update payment method\", \"error\");\n },\n });\n\n const makeDefaultPaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) => {\n const pm = (paymentMethodsData ?? []).find(\n (p) => p.id === paymentMethodId,\n );\n if (!pm) throw new Error(\"Payment method not found\");\n const body: UpdatePaymentMethodBody = {\n payment_method: { default: true },\n };\n if (pm.billing_address) {\n body.payment_method.billing_address = {\n name: pm.billing_address.name,\n street1: pm.billing_address.address1 ?? \"\",\n street2: pm.billing_address.address2 ?? null,\n city: pm.billing_address.city ?? \"\",\n state: pm.billing_address.state ?? \"\",\n zip: pm.billing_address.zip ?? \"\",\n country: pm.billing_address.country_code ?? \"\",\n };\n }\n return payApi.updatePaymentMethod(paymentMethodId, body);\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.paymentMethods.all });\n onToast(\"Default payment method updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default payment method\", \"error\");\n },\n });\n\n const makeDefaultAddressMutation = useMutation({\n mutationFn: (addressId: number) => {\n const addr = addresses.find((a) => a.id === addressId);\n if (!addr) throw new Error(\"Address not found\");\n return payApi.updateAddress(addressId, {\n address: {\n name: addr.name ?? null,\n street1: addr.address1,\n street2: addr.address2,\n city: addr.city,\n state: addr.state,\n zip: addr.postal_code,\n country: addr.country_code ?? \"\",\n default: true,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Default address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default address\", \"error\");\n },\n });\n\n const createAddressMutation = useMutation({\n mutationFn: (body: fluidPay.CreateAddressBody) =>\n payApi.createAddress({\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address created\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to create address\", \"error\");\n },\n });\n\n const updateAddressMutation = useMutation({\n mutationFn: ({\n addressId,\n body,\n }: {\n addressId: number;\n body: fluidPay.CreateAddressBody;\n }) =>\n payApi.updateAddress(addressId, {\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update address\", \"error\");\n },\n });\n\n const addCreditCardMutation = useMutation({\n mutationFn: (data: fluidPay.AddCreditCardData) =>\n payApi.createPaymentMethod({\n payment_method: {\n type: \"card\",\n token: data.payment_method.token,\n default: data.default_payment_method,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n onToast(\"Payment method added\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to add payment method\", \"error\");\n },\n });\n\n const addresses = addressesData ?? [];\n const paymentMethods = paymentMethodsData ?? [];\n\n const adaptedPointsLedger: PointsLedger[] =\n pointsLedgerData?.points_ledgers?.map(adaptPointsLedger) ?? [];\n\n const adaptedLanguages: Language[] = (languagesData?.languages ?? []).map(\n (l, i) => ({ id: i, name: l.name, iso: l.code }),\n );\n\n const countries = countriesData?.countries;\n\n const countryOptions = useMemo(\n () =>\n [...(countries ?? [])]\n .map((c) => ({ iso: c.code, name: c.name }))\n .sort((a, b) => a.name.localeCompare(b.name)),\n [countries],\n );\n\n const statesByCountry = useMemo(() => {\n const map = new Map<string, State[]>();\n for (const c of countries ?? []) {\n map.set(\n c.code,\n c.states.map((s) => ({ name: s.name, isoCode: s.code })),\n );\n }\n return map;\n }, [countries]);\n\n const fetchStatesFromCountries = useCallback(\n (countryCode: string): Promise<State[]> =>\n Promise.resolve(statesByCountry.get(countryCode) ?? []),\n [statesByCountry],\n );\n\n if (isAccountError && !isLoadingAccount) {\n return (\n <div className=\"px-4 py-8 sm:px-9\">\n <div className=\"text-muted-foreground text-center text-sm\">\n Unable to load account data. Please try again later.\n </div>\n </div>\n );\n }\n\n if (isLoadingAccount || !accountData) {\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <div className=\"space-y-4\">\n <div className=\"bg-muted h-16 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <FluidPayCoreProvider api={fluidPayShim}>\n <ProfileUIProvider t={t}>\n <Profile\n customerAccount={accountData}\n languages={adaptedLanguages}\n onUpdateCustomer={async (data) => {\n await updateCustomerMutation.mutateAsync(data);\n }}\n isUpdatingCustomer={updateCustomerMutation.isPending}\n // TODO: wire onChangeEmail to PATCH /v202506/users/:id/change_email\n // once portal self-service email change is designed\n // onChangeEmail={...}\n // pendingEmail={pendingEmail}\n rewardsPointsEnabled={rewardPointsEnabled}\n pointsLedger={adaptedPointsLedger}\n isLoadingPointsLedger={isLoadingPointsLedger}\n addresses={addresses}\n isLoadingAddresses={isLoadingAddresses}\n onDeleteAddress={async (addressId) => {\n await deleteAddressMutation.mutateAsync(addressId);\n }}\n isDeletingAddress={deleteAddressMutation.isPending}\n onMakeDefaultAddress={async (addressId) => {\n await makeDefaultAddressMutation.mutateAsync(addressId);\n }}\n paymentMethods={paymentMethods}\n isLoadingPaymentMethods={isLoadingPaymentMethods}\n onDeletePaymentMethod={async (paymentMethodId) => {\n await deletePaymentMethodMutation.mutateAsync(paymentMethodId);\n }}\n isDeletingPaymentMethod={deletePaymentMethodMutation.isPending}\n onMakeDefaultPaymentMethod={async (paymentMethodId) => {\n await makeDefaultPaymentMethodMutation.mutateAsync(\n paymentMethodId,\n );\n }}\n onUpdatePaymentMethod={async (paymentMethodId, data) => {\n await updatePaymentMethodMutation.mutateAsync({\n paymentMethodId,\n data,\n });\n }}\n isUpdatingPaymentMethod={updatePaymentMethodMutation.isPending}\n getBillingAddress={(paymentMethod) =>\n paymentMethod.billing_address ?? null\n }\n countries={countryOptions}\n renderAddressDialog={({ isOpen, onClose, selectedAddress }) => (\n <AddressFormDialog\n isOpen={isOpen}\n onClose={onClose}\n selectedAddress={selectedAddress}\n t={t}\n onSubmit={async (formData) => {\n if (selectedAddress) {\n await updateAddressMutation.mutateAsync({\n addressId: selectedAddress.id,\n body: formData,\n });\n } else {\n await createAddressMutation.mutateAsync(formData);\n }\n onClose();\n }}\n isSubmitting={\n createAddressMutation.isPending ||\n updateAddressMutation.isPending\n }\n countries={countryOptions}\n fetchStates={fetchStatesFromCountries}\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"postal_code\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n renderCreditCardDialog={({ isOpen, onClose }) => (\n <CreditCardFormDialog\n isOpen={isOpen}\n onClose={onClose}\n t={t}\n onSubmit={async (data) => {\n try {\n await addCreditCardMutation.mutateAsync(data);\n onClose();\n } catch {\n // onError surfaces the toast; swallow here so the dialog\n // doesn't see an unhandled rejection.\n }\n }}\n isSubmitting={addCreditCardMutation.isPending}\n countries={countryOptions}\n jwt=\"\"\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"zip\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n footer={\n <>\n <MySiteLinkCard\n mysiteUrl={mySiteUrl}\n displayUrl={mySiteDisplayUrl}\n onUpdateSlug={handleUpdateSlug}\n onToast={onToast}\n />\n <MySiteProfileSocialSection control={mySiteControl} />\n <MySiteProfileSaveButton\n isDirty={isMySiteDirty}\n isPending={updateMySiteProfileMutation.isPending}\n onSubmit={handleMySiteProfileSubmit}\n />\n </>\n }\n >\n <MySiteProfileSection\n avatarUrl={accountRep?.avatar_url}\n initial={accountRep?.first_name?.[0]?.toUpperCase() ?? \"U\"}\n control={mySiteControl}\n />\n </Profile>\n </ProfileUIProvider>\n </FluidPayCoreProvider>\n </div>\n );\n}\n","import { type ComponentProps, useMemo } from \"react\";\nimport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbPage,\n fluidToast,\n} from \"@fluid-app/ui-primitives\";\nimport { useScreenHeaderBreadcrumbs } from \"@fluid-app/portal-react/shell/ScreenHeaderContext\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n PaddingOptions,\n} from \"../types\";\nimport type { WidgetPropertySchema } from \"../registries/property-schema-types\";\nimport { useFluidContext } from \"../providers/FluidProvider\";\nimport { ProfileContentScreen } from \"./ProfileContentScreen\";\n\ntype ProfileScreenProps = ComponentProps<\"div\"> & {\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n onToast?: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n};\n\nfunction defaultToast(message: string, type: \"success\" | \"error\" | \"warning\") {\n fluidToast({ title: message, type });\n}\n\nexport function ProfileScreen({\n onToast,\n /* eslint-disable @typescript-eslint/no-unused-vars -- destructured to exclude from divProps spread */\n background,\n textColor,\n accentColor,\n padding,\n borderRadius,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...divProps\n}: ProfileScreenProps): React.JSX.Element {\n const { config } = useFluidContext();\n const effectiveToast = onToast ?? defaultToast;\n const countryIso = config.countryIso ?? \"US\";\n\n const headerBreadcrumbs = useMemo(\n () => (\n <Breadcrumb>\n <BreadcrumbList className=\"text-lg\">\n <BreadcrumbItem>\n <BreadcrumbPage className=\"font-semibold\">Profile</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n ),\n [],\n );\n useScreenHeaderBreadcrumbs(headerBreadcrumbs);\n\n return (\n <div {...divProps}>\n <ProfileContentScreen onToast={effectiveToast} countryIso={countryIso} />\n </div>\n );\n}\n\nexport const profileScreenPropertySchema: WidgetPropertySchema = {\n widgetType: \"ProfileScreen\",\n displayName: \"Profile Screen\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProfileScreen-Dvq3SfmI.mjs","names":[],"sources":["../src/screens/ProfileContentScreen.tsx","../src/screens/ProfileScreen.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useZodForm } from \"@fluid-app/ui-primitives\";\nimport { ProfileUIProvider } from \"@fluid-app/profile-core\";\nimport type { Language, PointsLedger } from \"@fluid-app/profile-core\";\nimport {\n Profile,\n AddressFormDialog,\n CreditCardFormDialog,\n MySiteProfileSection,\n MySiteProfileSocialSection,\n MySiteProfileSaveButton,\n mySiteProfileSchema,\n socialFields,\n} from \"@fluid-app/profile-ui\";\nimport type { MySiteProfileFormData } from \"@fluid-app/profile-ui\";\nimport type {\n UserFormData,\n EditPaymentMethodFormData,\n} from \"@fluid-app/profile-ui\";\nimport {\n FluidPayCoreProvider,\n type fluidPay,\n type State,\n} from \"@fluid-app/fluid-pay-core\";\nimport type {\n PayAddress,\n UpdatePaymentMethodBody,\n} from \"@fluid-app/portal-core/pay-types\";\nimport {\n createFluidPayApiAdapter,\n mapToFluidPayPaymentMethod,\n} from \"../adapters/fluid-pay-api-adapter\";\nimport type { AccountRep } from \"@fluid-app/portal-core/account-types\";\nimport { useAccountApi } from \"@fluid-app/portal-core/account-api-context\";\nimport { usePayApi } from \"@fluid-app/portal-core/pay-api-context\";\nimport {\n usePortalMySiteProfile,\n usePortalUpdateSettings,\n} from \"@fluid-app/mysite-ui/portal/hooks/use-mysite-portal\";\nimport { MySiteLinkCard } from \"@fluid-app/mysite-ui/portal/components\";\nimport { useCountriesApi } from \"@fluid-app/store-core/countries-api-context\";\nimport { useLanguagesApi } from \"@fluid-app/store-core/languages-api-context\";\nimport { AddressAutocompleteInput } from \"@fluid-app/address-autocomplete/components/AddressAutocompleteInput\";\nimport { accountKeys, payKeys, storeKeys } from \"../account/query-keys\";\nimport { useAccount } from \"../hooks/use-account\";\n\ninterface ProfileContentScreenProps {\n onToast: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n countryIso: string;\n}\n\nconst translations: Record<string, string> = {\n edit_profile: \"Edit Profile\",\n first_name: \"First Name\",\n last_name: \"Last Name\",\n phone_number: \"Phone Number\",\n language: \"Language\",\n first_name_is_required: \"First name is required\",\n last_name_is_required: \"Last name is required\",\n language_is_required: \"Language is required\",\n saving: \"Saving...\",\n save_changes: \"Save Changes\",\n select_an_option: \"Select an option\",\n points_history: \"Points History\",\n points_available: \"Points Available\",\n points_awarded: \"Points Awarded\",\n points_redeemed: \"Points Redeemed\",\n transaction: \"Transaction\",\n no_points_history_found: \"No points history found\",\n shipping_addresses: \"Shipping Addresses\",\n add_an_address: \"Add an Address\",\n delete_address: \"Delete Address\",\n delete_address_message:\n \"Are you sure you want to delete this address? This action cannot be undone.\",\n delete: \"Delete\",\n add_address: \"Add Address\",\n edit_address: \"Edit Address\",\n set_as_default_address: \"Set as default address\",\n save_address: \"Save Address\",\n card_number: \"Card Number\",\n expiration_date: \"Expiration (MM / YY)\",\n cvc: \"CVC\",\n cardholder_name: \"Cardholder Name\",\n add_credit_card: \"Add Credit Card\",\n save_card: \"Save Card\",\n securing: \"Loading secure form...\",\n payment_methods: \"Payment Methods\",\n add_payment_method: \"Add Payment Method\",\n delete_credit_card: \"Delete Credit Card\",\n delete_credit_card_message:\n \"Are you sure you want to delete this payment method? This action cannot be undone.\",\n edit_card: \"Card Details\",\n billing_address: \"Billing Address\",\n country: \"Country\",\n name: \"Name\",\n address_line_1: \"Address Line 1\",\n address_line_2: \"Address Line 2\",\n city: \"City\",\n state: \"State\",\n province: \"Province\",\n zip_code: \"Zip Code\",\n postal_code: \"Postal Code\",\n select_state: \"Select state\",\n set_as_default_payment_method: \"Set as default payment method\",\n cancel: \"Cancel\",\n save: \"Save\",\n close: \"Close\",\n edit: \"Edit\",\n default: \"Default\",\n card_expires: \"Expires\",\n no_billing_address: \"No billing address on file\",\n default_payment_method_updated: \"Payment method updated\",\n failed_to_set_default_payment_method: \"Failed to update payment method\",\n};\n\nfunction t(key: string): string {\n if (translations[key]) return translations[key];\n return key\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n}\n\nfunction adaptPointsLedger(\n entry: import(\"@fluid-app/portal-core/pay-types\").PointsLedgerEntry,\n): PointsLedger {\n const meta = entry.metadata as {\n transaction_type?: string | null;\n source?: {\n name: string;\n email?: string;\n reason?: string;\n user_id?: number;\n } | null;\n } | null;\n return {\n id: entry.id,\n amount: entry.amount,\n company_id: 0,\n created_at: entry.created_at,\n customer_id: 0,\n metadata: {\n transaction_type: meta?.transaction_type ?? undefined,\n source: meta?.source ?? undefined,\n },\n total_balance: entry.total_balance,\n updated_at: entry.created_at,\n };\n}\n\nfunction mapAccountToCustomerAccount(\n raw: AccountRep,\n): fluidPay.CustomerAccount {\n return {\n fluid_pay_account: {\n id: raw.id,\n email: raw.email,\n address_count: 0,\n payment_methods_count: 0,\n language_iso: null,\n },\n customer: {\n id: raw.id,\n active: true,\n active_subscriptions_count: 0,\n display_total_spent: \"0\",\n email: raw.email,\n first_name: raw.first_name,\n full_name: `${raw.first_name} ${raw.last_name}`.trim(),\n inactive_subscriptions_count: 0,\n is_rep: raw.member_type === \"rep\",\n phone: raw.phone,\n orders_count: 0,\n },\n };\n}\n\nfunction composeAddressName(\n firstName: string,\n lastName: string,\n): string | null {\n const combined = `${firstName} ${lastName}`.trim();\n return combined.length > 0 ? combined : null;\n}\n\nfunction mapToFluidPayAddress(raw: PayAddress): fluidPay.CustomerAddress {\n return {\n id: raw.id,\n address1: raw.street1,\n address2: raw.street2,\n city: raw.city,\n country_code: raw.country,\n default: raw.default,\n name: raw.name,\n postal_code: raw.zip,\n state: raw.state,\n subdivision_code: null,\n };\n}\n\ntype SocialFieldKey = (typeof socialFields)[number][\"name\"];\n\nfunction mapAccountToMySiteFormValues(\n account: AccountRep | undefined,\n): MySiteProfileFormData {\n const social = account?.social_links ?? {};\n const result = { bio: account?.bio ?? \"\" } as MySiteProfileFormData;\n for (const { name } of socialFields) {\n result[name] = social[name] ?? \"\";\n }\n return result;\n}\n\nfunction mapFormToSocialLinks(\n data: MySiteProfileFormData,\n): Record<SocialFieldKey, string> {\n const result = {} as Record<SocialFieldKey, string>;\n for (const { name } of socialFields) {\n result[name] = data[name] ?? \"\";\n }\n return result;\n}\n\nexport function ProfileContentScreen({\n onToast,\n countryIso: _countryIso,\n}: ProfileContentScreenProps): React.JSX.Element {\n const payApi = usePayApi();\n const accountApi = useAccountApi();\n const queryClient = useQueryClient();\n const fluidPayShim = useMemo(\n () => createFluidPayApiAdapter(payApi),\n [payApi],\n );\n\n const { data: mySiteProfile } = usePortalMySiteProfile();\n const updateMySiteSettingsMutation = usePortalUpdateSettings();\n\n const mySiteUrl = mySiteProfile?.mysite_url ?? \"\";\n const mySiteDisplayUrl = mySiteUrl\n ? mySiteUrl.replace(/^https?:\\/\\//, \"\")\n : \"\";\n\n const handleUpdateSlug = useCallback(\n async (slug: string) => {\n await updateMySiteSettingsMutation.mutateAsync({ slug });\n },\n [updateMySiteSettingsMutation],\n );\n\n // Reuse the app-wide useAccount() cache entry shared with AppShell/PageRouter.\n const {\n data: accountRep,\n isLoading: isLoadingAccount,\n isError: isAccountError,\n } = useAccount();\n\n const mySiteFormValues = useMemo(\n () => mapAccountToMySiteFormValues(accountRep),\n [accountRep],\n );\n\n const {\n control: mySiteControl,\n handleSubmit: handleMySiteSubmit,\n formState: { isDirty: isMySiteDirty },\n } = useZodForm<MySiteProfileFormData>(mySiteProfileSchema, {\n values: mySiteFormValues,\n });\n\n const updateMySiteProfileMutation = useMutation({\n mutationFn: (data: MySiteProfileFormData) =>\n accountApi.updateAccount({\n account: {\n bio: data.bio,\n social_links: mapFormToSocialLinks(data),\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated successfully\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const handleMySiteProfileSubmit = handleMySiteSubmit((data) => {\n updateMySiteProfileMutation.mutate(data);\n });\n const accountData = useMemo(\n () => (accountRep ? mapAccountToCustomerAccount(accountRep) : undefined),\n [accountRep],\n );\n\n const { data: addressesData, isLoading: isLoadingAddresses } = useQuery({\n queryKey: payKeys.addresses.list(),\n queryFn: async () => {\n const response = await payApi.fetchAddresses();\n return response.addresses.map(mapToFluidPayAddress);\n },\n enabled: true,\n });\n\n const { data: paymentMethodsData, isLoading: isLoadingPaymentMethods } =\n useQuery({\n queryKey: payKeys.paymentMethods.list(),\n queryFn: async () => {\n const response = await payApi.fetchPaymentMethods();\n return response.payment_methods.map(mapToFluidPayPaymentMethod);\n },\n enabled: true,\n });\n\n const countriesAdapter = useCountriesApi();\n const languagesAdapter = useLanguagesApi();\n\n const { data: countriesData } = useQuery({\n queryKey: storeKeys.countries(),\n queryFn: () => countriesAdapter.listCountries(),\n enabled: true,\n });\n\n const { data: languagesData } = useQuery({\n queryKey: storeKeys.languages(),\n queryFn: () => languagesAdapter.listLanguages(),\n enabled: true,\n });\n\n const {\n data: pointsLedgerData,\n isLoading: isLoadingPointsLedger,\n isError: isPointsLedgerError,\n } = useQuery({\n queryKey: payKeys.pointsLedgers.list(),\n queryFn: () => payApi.fetchPointsLedgers(),\n enabled: true,\n // BFF returns 403 when reward points are not enabled for the company.\n // Don't retry on 403 so the UI simply hides the points section.\n retry: (failureCount, error) => {\n if (\n error instanceof Error &&\n \"status\" in error &&\n (error as { status: number }).status === 403\n ) {\n return false;\n }\n return failureCount < 1;\n },\n });\n\n // Points are enabled if the fetch succeeded (non-403)\n const rewardPointsEnabled = !isPointsLedgerError && pointsLedgerData != null;\n\n const updateCustomerMutation = useMutation({\n mutationFn: async (data: UserFormData) => {\n await accountApi.updateAccount({\n account: {\n first_name: data.first_name,\n last_name: data.last_name,\n phone: data.phone_number,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const deleteAddressMutation = useMutation({\n mutationFn: (addressId: number) => payApi.deleteAddress(addressId),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n },\n onError: () => {\n onToast(\"Failed to delete address\", \"error\");\n },\n });\n\n const deletePaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) =>\n payApi.deletePaymentMethod(paymentMethodId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to delete payment method\", \"error\");\n },\n });\n\n const updatePaymentMethodMutation = useMutation({\n mutationFn: ({\n paymentMethodId,\n data,\n }: {\n paymentMethodId: number;\n data: EditPaymentMethodFormData;\n }) =>\n payApi.updatePaymentMethod(paymentMethodId, {\n payment_method: {\n default: data.set_as_default,\n billing_address: {\n name: data.billing_address.name,\n street1: data.billing_address.address1,\n street2: data.billing_address.address2 ?? null,\n city: data.billing_address.city,\n state: data.billing_address.state,\n zip: data.billing_address.zip,\n country: data.billing_address.country_code,\n },\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to update payment method\", \"error\");\n },\n });\n\n const makeDefaultPaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) => {\n const pm = (paymentMethodsData ?? []).find(\n (p) => p.id === paymentMethodId,\n );\n if (!pm) throw new Error(\"Payment method not found\");\n const body: UpdatePaymentMethodBody = {\n payment_method: { default: true },\n };\n if (pm.billing_address) {\n body.payment_method.billing_address = {\n name: pm.billing_address.name,\n street1: pm.billing_address.address1 ?? \"\",\n street2: pm.billing_address.address2 ?? null,\n city: pm.billing_address.city ?? \"\",\n state: pm.billing_address.state ?? \"\",\n zip: pm.billing_address.zip ?? \"\",\n country: pm.billing_address.country_code ?? \"\",\n };\n }\n return payApi.updatePaymentMethod(paymentMethodId, body);\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.paymentMethods.all });\n onToast(\"Default payment method updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default payment method\", \"error\");\n },\n });\n\n const makeDefaultAddressMutation = useMutation({\n mutationFn: (addressId: number) => {\n const addr = addresses.find((a) => a.id === addressId);\n if (!addr) throw new Error(\"Address not found\");\n return payApi.updateAddress(addressId, {\n address: {\n name: addr.name ?? null,\n street1: addr.address1,\n street2: addr.address2,\n city: addr.city,\n state: addr.state,\n zip: addr.postal_code,\n country: addr.country_code ?? \"\",\n default: true,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Default address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default address\", \"error\");\n },\n });\n\n const createAddressMutation = useMutation({\n mutationFn: (body: fluidPay.CreateAddressBody) =>\n payApi.createAddress({\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address created\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to create address\", \"error\");\n },\n });\n\n const updateAddressMutation = useMutation({\n mutationFn: ({\n addressId,\n body,\n }: {\n addressId: number;\n body: fluidPay.CreateAddressBody;\n }) =>\n payApi.updateAddress(addressId, {\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update address\", \"error\");\n },\n });\n\n const addCreditCardMutation = useMutation({\n mutationFn: (data: fluidPay.AddCreditCardData) =>\n payApi.createPaymentMethod({\n payment_method: {\n type: \"card\",\n token: data.payment_method.token,\n default: data.default_payment_method,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n onToast(\"Payment method added\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to add payment method\", \"error\");\n },\n });\n\n const addresses = addressesData ?? [];\n const paymentMethods = paymentMethodsData ?? [];\n\n const adaptedPointsLedger: PointsLedger[] =\n pointsLedgerData?.points_ledgers?.map(adaptPointsLedger) ?? [];\n\n const adaptedLanguages: Language[] = (languagesData?.languages ?? []).map(\n (l, i) => ({ id: i, name: l.name, iso: l.code }),\n );\n\n const countries = countriesData?.countries;\n\n const countryOptions = useMemo(\n () =>\n [...(countries ?? [])]\n .map((c) => ({ iso: c.code, name: c.name }))\n .sort((a, b) => a.name.localeCompare(b.name)),\n [countries],\n );\n\n const statesByCountry = useMemo(() => {\n const map = new Map<string, State[]>();\n for (const c of countries ?? []) {\n map.set(\n c.code,\n c.states.map((s) => ({ name: s.name, isoCode: s.code })),\n );\n }\n return map;\n }, [countries]);\n\n const fetchStatesFromCountries = useCallback(\n (countryCode: string): Promise<State[]> =>\n Promise.resolve(statesByCountry.get(countryCode) ?? []),\n [statesByCountry],\n );\n\n if (isAccountError && !isLoadingAccount) {\n return (\n <div className=\"px-4 py-8 sm:px-9\">\n <div className=\"text-muted-foreground text-center text-sm\">\n Unable to load account data. Please try again later.\n </div>\n </div>\n );\n }\n\n if (isLoadingAccount || !accountData) {\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <div className=\"space-y-4\">\n <div className=\"bg-muted h-16 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <FluidPayCoreProvider api={fluidPayShim}>\n <ProfileUIProvider t={t}>\n <Profile\n customerAccount={accountData}\n languages={adaptedLanguages}\n onUpdateCustomer={async (data) => {\n await updateCustomerMutation.mutateAsync(data);\n }}\n isUpdatingCustomer={updateCustomerMutation.isPending}\n // TODO: wire onChangeEmail to PATCH /v202506/users/:id/change_email\n // once portal self-service email change is designed\n // onChangeEmail={...}\n // pendingEmail={pendingEmail}\n rewardsPointsEnabled={rewardPointsEnabled}\n pointsLedger={adaptedPointsLedger}\n isLoadingPointsLedger={isLoadingPointsLedger}\n addresses={addresses}\n isLoadingAddresses={isLoadingAddresses}\n onDeleteAddress={async (addressId) => {\n await deleteAddressMutation.mutateAsync(addressId);\n }}\n isDeletingAddress={deleteAddressMutation.isPending}\n onMakeDefaultAddress={async (addressId) => {\n await makeDefaultAddressMutation.mutateAsync(addressId);\n }}\n paymentMethods={paymentMethods}\n isLoadingPaymentMethods={isLoadingPaymentMethods}\n onDeletePaymentMethod={async (paymentMethodId) => {\n await deletePaymentMethodMutation.mutateAsync(paymentMethodId);\n }}\n isDeletingPaymentMethod={deletePaymentMethodMutation.isPending}\n onMakeDefaultPaymentMethod={async (paymentMethodId) => {\n await makeDefaultPaymentMethodMutation.mutateAsync(\n paymentMethodId,\n );\n }}\n onUpdatePaymentMethod={async (paymentMethodId, data) => {\n await updatePaymentMethodMutation.mutateAsync({\n paymentMethodId,\n data,\n });\n }}\n isUpdatingPaymentMethod={updatePaymentMethodMutation.isPending}\n getBillingAddress={(paymentMethod) =>\n paymentMethod.billing_address ?? null\n }\n countries={countryOptions}\n renderAddressDialog={({ isOpen, onClose, selectedAddress }) => (\n <AddressFormDialog\n isOpen={isOpen}\n onClose={onClose}\n selectedAddress={selectedAddress}\n t={t}\n onSubmit={async (formData) => {\n if (selectedAddress) {\n await updateAddressMutation.mutateAsync({\n addressId: selectedAddress.id,\n body: formData,\n });\n } else {\n await createAddressMutation.mutateAsync(formData);\n }\n onClose();\n }}\n isSubmitting={\n createAddressMutation.isPending ||\n updateAddressMutation.isPending\n }\n countries={countryOptions}\n fetchStates={fetchStatesFromCountries}\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"postal_code\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n renderCreditCardDialog={({ isOpen, onClose }) => (\n <CreditCardFormDialog\n isOpen={isOpen}\n onClose={onClose}\n t={t}\n onSubmit={async (data) => {\n try {\n await addCreditCardMutation.mutateAsync(data);\n onClose();\n } catch {\n // onError surfaces the toast; swallow here so the dialog\n // doesn't see an unhandled rejection.\n }\n }}\n isSubmitting={addCreditCardMutation.isPending}\n countries={countryOptions}\n jwt=\"\"\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"zip\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n footer={\n <>\n <MySiteLinkCard\n mysiteUrl={mySiteUrl}\n displayUrl={mySiteDisplayUrl}\n onUpdateSlug={handleUpdateSlug}\n onToast={onToast}\n />\n <MySiteProfileSocialSection control={mySiteControl} />\n <MySiteProfileSaveButton\n isDirty={isMySiteDirty}\n isPending={updateMySiteProfileMutation.isPending}\n onSubmit={handleMySiteProfileSubmit}\n />\n </>\n }\n >\n <MySiteProfileSection\n avatarUrl={accountRep?.avatar_url}\n initial={accountRep?.first_name?.[0]?.toUpperCase() ?? \"U\"}\n control={mySiteControl}\n />\n </Profile>\n </ProfileUIProvider>\n </FluidPayCoreProvider>\n </div>\n );\n}\n","import { type ComponentProps, useMemo } from \"react\";\nimport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbPage,\n fluidToast,\n} from \"@fluid-app/ui-primitives\";\nimport { useScreenHeaderBreadcrumbs } from \"@fluid-app/portal-react/shell/ScreenHeaderContext\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n PaddingOptions,\n} from \"../types\";\nimport type { WidgetPropertySchema } from \"../registries/property-schema-types\";\nimport { useFluidContext } from \"../providers/FluidProvider\";\nimport { ProfileContentScreen } from \"./ProfileContentScreen\";\n\ntype ProfileScreenProps = ComponentProps<\"div\"> & {\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n onToast?: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n};\n\nfunction defaultToast(message: string, type: \"success\" | \"error\" | \"warning\") {\n fluidToast({ title: message, type });\n}\n\nexport function ProfileScreen({\n onToast,\n /* eslint-disable @typescript-eslint/no-unused-vars -- destructured to exclude from divProps spread */\n background,\n textColor,\n accentColor,\n padding,\n borderRadius,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...divProps\n}: ProfileScreenProps): React.JSX.Element {\n const { config } = useFluidContext();\n const effectiveToast = onToast ?? defaultToast;\n const countryIso = config.countryIso ?? \"US\";\n\n const headerBreadcrumbs = useMemo(\n () => (\n <Breadcrumb>\n <BreadcrumbList className=\"text-lg\">\n <BreadcrumbItem>\n <BreadcrumbPage className=\"font-semibold\">Profile</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n ),\n [],\n );\n useScreenHeaderBreadcrumbs(headerBreadcrumbs);\n\n return (\n <div {...divProps}>\n <ProfileContentScreen onToast={effectiveToast} countryIso={countryIso} />\n </div>\n );\n}\n\nexport const profileScreenPropertySchema: WidgetPropertySchema = {\n widgetType: \"ProfileScreen\",\n displayName: \"Profile Screen\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  require("./chunk-9hOWP6kD.cjs");
2
- const require_FluidProvider = require("./FluidProvider-BLri8EGR.cjs");
2
+ const require_FluidProvider = require("./FluidProvider-IFbNov8P.cjs");
3
3
  const require_account_api_context = require("./account-api-context-DZP9IiGg.cjs");
4
4
  const require_api_context = require("./api-context-BkBvyFVK.cjs");
5
5
  const require_countries_api_context = require("./countries-api-context-C0C0K9gJ.cjs");
@@ -7,7 +7,7 @@ const require_src = require("./src-xGZGQSPj.cjs");
7
7
  const require_ScreenHeaderContext = require("./ScreenHeaderContext-JDIUM84f.cjs");
8
8
  const require_query_keys = require("./query-keys-BpEJqQUB.cjs");
9
9
  const require_use_account = require("./use-account-BfU-TydK.cjs");
10
- const require_AddressAutocompleteInput = require("./AddressAutocompleteInput-eO2ZMNvX.cjs");
10
+ const require_AddressAutocompleteInput = require("./AddressAutocompleteInput-W2jWPYoJ.cjs");
11
11
  const require_dist = require("./dist-DXtRwmpl.cjs");
12
12
  const require_components = require("./components-ByF_YWtD.cjs");
13
13
  let react = require("react");
@@ -574,4 +574,4 @@ Object.defineProperty(exports, "profileScreenPropertySchema", {
574
574
  }
575
575
  });
576
576
 
577
- //# sourceMappingURL=ProfileScreen-Ckh4xGkq.cjs.map
577
+ //# sourceMappingURL=ProfileScreen-LL3z9-cx.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileScreen-Ckh4xGkq.cjs","names":["socialFields","usePayApi","useAccountApi","createFluidPayApiAdapter","usePortalMySiteProfile","usePortalUpdateSettings","useAccount","useZodForm","mySiteProfileSchema","accountKeys","payKeys","mapToFluidPayPaymentMethod","useCountriesApi","useLanguagesApi","storeKeys","FluidPayCoreProvider","ProfileUIProvider","Profile","AddressFormDialog","AddressAutocompleteInput","CreditCardFormDialog","MySiteLinkCard","MySiteProfileSocialSection","MySiteProfileSaveButton","MySiteProfileSection","useFluidContext","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbPage"],"sources":["../src/screens/ProfileContentScreen.tsx","../src/screens/ProfileScreen.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useZodForm } from \"@fluid-app/ui-primitives\";\nimport { ProfileUIProvider } from \"@fluid-app/profile-core\";\nimport type { Language, PointsLedger } from \"@fluid-app/profile-core\";\nimport {\n Profile,\n AddressFormDialog,\n CreditCardFormDialog,\n MySiteProfileSection,\n MySiteProfileSocialSection,\n MySiteProfileSaveButton,\n mySiteProfileSchema,\n socialFields,\n} from \"@fluid-app/profile-ui\";\nimport type { MySiteProfileFormData } from \"@fluid-app/profile-ui\";\nimport type {\n UserFormData,\n EditPaymentMethodFormData,\n} from \"@fluid-app/profile-ui\";\nimport {\n FluidPayCoreProvider,\n type fluidPay,\n type State,\n} from \"@fluid-app/fluid-pay-core\";\nimport type {\n PayAddress,\n UpdatePaymentMethodBody,\n} from \"@fluid-app/portal-core/pay-types\";\nimport {\n createFluidPayApiAdapter,\n mapToFluidPayPaymentMethod,\n} from \"../adapters/fluid-pay-api-adapter\";\nimport type { AccountRep } from \"@fluid-app/portal-core/account-types\";\nimport { useAccountApi } from \"@fluid-app/portal-core/account-api-context\";\nimport { usePayApi } from \"@fluid-app/portal-core/pay-api-context\";\nimport {\n usePortalMySiteProfile,\n usePortalUpdateSettings,\n} from \"@fluid-app/mysite-ui/portal/hooks/use-mysite-portal\";\nimport { MySiteLinkCard } from \"@fluid-app/mysite-ui/portal/components\";\nimport { useCountriesApi } from \"@fluid-app/store-core/countries-api-context\";\nimport { useLanguagesApi } from \"@fluid-app/store-core/languages-api-context\";\nimport { AddressAutocompleteInput } from \"@fluid-app/address-autocomplete/components/AddressAutocompleteInput\";\nimport { accountKeys, payKeys, storeKeys } from \"../account/query-keys\";\nimport { useAccount } from \"../hooks/use-account\";\n\ninterface ProfileContentScreenProps {\n onToast: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n countryIso: string;\n}\n\nconst translations: Record<string, string> = {\n edit_profile: \"Edit Profile\",\n first_name: \"First Name\",\n last_name: \"Last Name\",\n phone_number: \"Phone Number\",\n language: \"Language\",\n first_name_is_required: \"First name is required\",\n last_name_is_required: \"Last name is required\",\n language_is_required: \"Language is required\",\n saving: \"Saving...\",\n save_changes: \"Save Changes\",\n select_an_option: \"Select an option\",\n points_history: \"Points History\",\n points_available: \"Points Available\",\n points_awarded: \"Points Awarded\",\n points_redeemed: \"Points Redeemed\",\n transaction: \"Transaction\",\n no_points_history_found: \"No points history found\",\n shipping_addresses: \"Shipping Addresses\",\n add_an_address: \"Add an Address\",\n delete_address: \"Delete Address\",\n delete_address_message:\n \"Are you sure you want to delete this address? This action cannot be undone.\",\n delete: \"Delete\",\n add_address: \"Add Address\",\n edit_address: \"Edit Address\",\n set_as_default_address: \"Set as default address\",\n save_address: \"Save Address\",\n card_number: \"Card Number\",\n expiration_date: \"Expiration (MM / YY)\",\n cvc: \"CVC\",\n cardholder_name: \"Cardholder Name\",\n add_credit_card: \"Add Credit Card\",\n save_card: \"Save Card\",\n securing: \"Loading secure form...\",\n payment_methods: \"Payment Methods\",\n add_payment_method: \"Add Payment Method\",\n delete_credit_card: \"Delete Credit Card\",\n delete_credit_card_message:\n \"Are you sure you want to delete this payment method? This action cannot be undone.\",\n edit_card: \"Card Details\",\n billing_address: \"Billing Address\",\n country: \"Country\",\n name: \"Name\",\n address_line_1: \"Address Line 1\",\n address_line_2: \"Address Line 2\",\n city: \"City\",\n state: \"State\",\n province: \"Province\",\n zip_code: \"Zip Code\",\n postal_code: \"Postal Code\",\n select_state: \"Select state\",\n set_as_default_payment_method: \"Set as default payment method\",\n cancel: \"Cancel\",\n save: \"Save\",\n close: \"Close\",\n edit: \"Edit\",\n default: \"Default\",\n card_expires: \"Expires\",\n no_billing_address: \"No billing address on file\",\n default_payment_method_updated: \"Payment method updated\",\n failed_to_set_default_payment_method: \"Failed to update payment method\",\n};\n\nfunction t(key: string): string {\n if (translations[key]) return translations[key];\n return key\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n}\n\nfunction adaptPointsLedger(\n entry: import(\"@fluid-app/portal-core/pay-types\").PointsLedgerEntry,\n): PointsLedger {\n const meta = entry.metadata as {\n transaction_type?: string | null;\n source?: {\n name: string;\n email?: string;\n reason?: string;\n user_id?: number;\n } | null;\n } | null;\n return {\n id: entry.id,\n amount: entry.amount,\n company_id: 0,\n created_at: entry.created_at,\n customer_id: 0,\n metadata: {\n transaction_type: meta?.transaction_type ?? undefined,\n source: meta?.source ?? undefined,\n },\n total_balance: entry.total_balance,\n updated_at: entry.created_at,\n };\n}\n\nfunction mapAccountToCustomerAccount(\n raw: AccountRep,\n): fluidPay.CustomerAccount {\n return {\n fluid_pay_account: {\n id: raw.id,\n email: raw.email,\n address_count: 0,\n payment_methods_count: 0,\n language_iso: null,\n },\n customer: {\n id: raw.id,\n active: true,\n active_subscriptions_count: 0,\n display_total_spent: \"0\",\n email: raw.email,\n first_name: raw.first_name,\n full_name: `${raw.first_name} ${raw.last_name}`.trim(),\n inactive_subscriptions_count: 0,\n is_rep: raw.member_type === \"rep\",\n phone: raw.phone,\n orders_count: 0,\n },\n };\n}\n\nfunction composeAddressName(\n firstName: string,\n lastName: string,\n): string | null {\n const combined = `${firstName} ${lastName}`.trim();\n return combined.length > 0 ? combined : null;\n}\n\nfunction mapToFluidPayAddress(raw: PayAddress): fluidPay.CustomerAddress {\n return {\n id: raw.id,\n address1: raw.street1,\n address2: raw.street2,\n city: raw.city,\n country_code: raw.country,\n default: raw.default,\n name: raw.name,\n postal_code: raw.zip,\n state: raw.state,\n subdivision_code: null,\n };\n}\n\ntype SocialFieldKey = (typeof socialFields)[number][\"name\"];\n\nfunction mapAccountToMySiteFormValues(\n account: AccountRep | undefined,\n): MySiteProfileFormData {\n const social = account?.social_links ?? {};\n const result = { bio: account?.bio ?? \"\" } as MySiteProfileFormData;\n for (const { name } of socialFields) {\n result[name] = social[name] ?? \"\";\n }\n return result;\n}\n\nfunction mapFormToSocialLinks(\n data: MySiteProfileFormData,\n): Record<SocialFieldKey, string> {\n const result = {} as Record<SocialFieldKey, string>;\n for (const { name } of socialFields) {\n result[name] = data[name] ?? \"\";\n }\n return result;\n}\n\nexport function ProfileContentScreen({\n onToast,\n countryIso: _countryIso,\n}: ProfileContentScreenProps): React.JSX.Element {\n const payApi = usePayApi();\n const accountApi = useAccountApi();\n const queryClient = useQueryClient();\n const fluidPayShim = useMemo(\n () => createFluidPayApiAdapter(payApi),\n [payApi],\n );\n\n const { data: mySiteProfile } = usePortalMySiteProfile();\n const updateMySiteSettingsMutation = usePortalUpdateSettings();\n\n const mySiteUrl = mySiteProfile?.mysite_url ?? \"\";\n const mySiteDisplayUrl = mySiteUrl\n ? mySiteUrl.replace(/^https?:\\/\\//, \"\")\n : \"\";\n\n const handleUpdateSlug = useCallback(\n async (slug: string) => {\n await updateMySiteSettingsMutation.mutateAsync({ slug });\n },\n [updateMySiteSettingsMutation],\n );\n\n // Reuse the app-wide useAccount() cache entry shared with AppShell/PageRouter.\n const {\n data: accountRep,\n isLoading: isLoadingAccount,\n isError: isAccountError,\n } = useAccount();\n\n const mySiteFormValues = useMemo(\n () => mapAccountToMySiteFormValues(accountRep),\n [accountRep],\n );\n\n const {\n control: mySiteControl,\n handleSubmit: handleMySiteSubmit,\n formState: { isDirty: isMySiteDirty },\n } = useZodForm<MySiteProfileFormData>(mySiteProfileSchema, {\n values: mySiteFormValues,\n });\n\n const updateMySiteProfileMutation = useMutation({\n mutationFn: (data: MySiteProfileFormData) =>\n accountApi.updateAccount({\n account: {\n bio: data.bio,\n social_links: mapFormToSocialLinks(data),\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated successfully\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const handleMySiteProfileSubmit = handleMySiteSubmit((data) => {\n updateMySiteProfileMutation.mutate(data);\n });\n const accountData = useMemo(\n () => (accountRep ? mapAccountToCustomerAccount(accountRep) : undefined),\n [accountRep],\n );\n\n const { data: addressesData, isLoading: isLoadingAddresses } = useQuery({\n queryKey: payKeys.addresses.list(),\n queryFn: async () => {\n const response = await payApi.fetchAddresses();\n return response.addresses.map(mapToFluidPayAddress);\n },\n enabled: true,\n });\n\n const { data: paymentMethodsData, isLoading: isLoadingPaymentMethods } =\n useQuery({\n queryKey: payKeys.paymentMethods.list(),\n queryFn: async () => {\n const response = await payApi.fetchPaymentMethods();\n return response.payment_methods.map(mapToFluidPayPaymentMethod);\n },\n enabled: true,\n });\n\n const countriesAdapter = useCountriesApi();\n const languagesAdapter = useLanguagesApi();\n\n const { data: countriesData } = useQuery({\n queryKey: storeKeys.countries(),\n queryFn: () => countriesAdapter.listCountries(),\n enabled: true,\n });\n\n const { data: languagesData } = useQuery({\n queryKey: storeKeys.languages(),\n queryFn: () => languagesAdapter.listLanguages(),\n enabled: true,\n });\n\n const {\n data: pointsLedgerData,\n isLoading: isLoadingPointsLedger,\n isError: isPointsLedgerError,\n } = useQuery({\n queryKey: payKeys.pointsLedgers.list(),\n queryFn: () => payApi.fetchPointsLedgers(),\n enabled: true,\n // BFF returns 403 when reward points are not enabled for the company.\n // Don't retry on 403 so the UI simply hides the points section.\n retry: (failureCount, error) => {\n if (\n error instanceof Error &&\n \"status\" in error &&\n (error as { status: number }).status === 403\n ) {\n return false;\n }\n return failureCount < 1;\n },\n });\n\n // Points are enabled if the fetch succeeded (non-403)\n const rewardPointsEnabled = !isPointsLedgerError && pointsLedgerData != null;\n\n const updateCustomerMutation = useMutation({\n mutationFn: async (data: UserFormData) => {\n await accountApi.updateAccount({\n account: {\n first_name: data.first_name,\n last_name: data.last_name,\n phone: data.phone_number,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const deleteAddressMutation = useMutation({\n mutationFn: (addressId: number) => payApi.deleteAddress(addressId),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n },\n onError: () => {\n onToast(\"Failed to delete address\", \"error\");\n },\n });\n\n const deletePaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) =>\n payApi.deletePaymentMethod(paymentMethodId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to delete payment method\", \"error\");\n },\n });\n\n const updatePaymentMethodMutation = useMutation({\n mutationFn: ({\n paymentMethodId,\n data,\n }: {\n paymentMethodId: number;\n data: EditPaymentMethodFormData;\n }) =>\n payApi.updatePaymentMethod(paymentMethodId, {\n payment_method: {\n default: data.set_as_default,\n billing_address: {\n name: data.billing_address.name,\n street1: data.billing_address.address1,\n street2: data.billing_address.address2 ?? null,\n city: data.billing_address.city,\n state: data.billing_address.state,\n zip: data.billing_address.zip,\n country: data.billing_address.country_code,\n },\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to update payment method\", \"error\");\n },\n });\n\n const makeDefaultPaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) => {\n const pm = (paymentMethodsData ?? []).find(\n (p) => p.id === paymentMethodId,\n );\n if (!pm) throw new Error(\"Payment method not found\");\n const body: UpdatePaymentMethodBody = {\n payment_method: { default: true },\n };\n if (pm.billing_address) {\n body.payment_method.billing_address = {\n name: pm.billing_address.name,\n street1: pm.billing_address.address1 ?? \"\",\n street2: pm.billing_address.address2 ?? null,\n city: pm.billing_address.city ?? \"\",\n state: pm.billing_address.state ?? \"\",\n zip: pm.billing_address.zip ?? \"\",\n country: pm.billing_address.country_code ?? \"\",\n };\n }\n return payApi.updatePaymentMethod(paymentMethodId, body);\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.paymentMethods.all });\n onToast(\"Default payment method updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default payment method\", \"error\");\n },\n });\n\n const makeDefaultAddressMutation = useMutation({\n mutationFn: (addressId: number) => {\n const addr = addresses.find((a) => a.id === addressId);\n if (!addr) throw new Error(\"Address not found\");\n return payApi.updateAddress(addressId, {\n address: {\n name: addr.name ?? null,\n street1: addr.address1,\n street2: addr.address2,\n city: addr.city,\n state: addr.state,\n zip: addr.postal_code,\n country: addr.country_code ?? \"\",\n default: true,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Default address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default address\", \"error\");\n },\n });\n\n const createAddressMutation = useMutation({\n mutationFn: (body: fluidPay.CreateAddressBody) =>\n payApi.createAddress({\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address created\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to create address\", \"error\");\n },\n });\n\n const updateAddressMutation = useMutation({\n mutationFn: ({\n addressId,\n body,\n }: {\n addressId: number;\n body: fluidPay.CreateAddressBody;\n }) =>\n payApi.updateAddress(addressId, {\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update address\", \"error\");\n },\n });\n\n const addCreditCardMutation = useMutation({\n mutationFn: (data: fluidPay.AddCreditCardData) =>\n payApi.createPaymentMethod({\n payment_method: {\n type: \"card\",\n token: data.payment_method.token,\n default: data.default_payment_method,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n onToast(\"Payment method added\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to add payment method\", \"error\");\n },\n });\n\n const addresses = addressesData ?? [];\n const paymentMethods = paymentMethodsData ?? [];\n\n const adaptedPointsLedger: PointsLedger[] =\n pointsLedgerData?.points_ledgers?.map(adaptPointsLedger) ?? [];\n\n const adaptedLanguages: Language[] = (languagesData?.languages ?? []).map(\n (l, i) => ({ id: i, name: l.name, iso: l.code }),\n );\n\n const countries = countriesData?.countries;\n\n const countryOptions = useMemo(\n () =>\n [...(countries ?? [])]\n .map((c) => ({ iso: c.code, name: c.name }))\n .sort((a, b) => a.name.localeCompare(b.name)),\n [countries],\n );\n\n const statesByCountry = useMemo(() => {\n const map = new Map<string, State[]>();\n for (const c of countries ?? []) {\n map.set(\n c.code,\n c.states.map((s) => ({ name: s.name, isoCode: s.code })),\n );\n }\n return map;\n }, [countries]);\n\n const fetchStatesFromCountries = useCallback(\n (countryCode: string): Promise<State[]> =>\n Promise.resolve(statesByCountry.get(countryCode) ?? []),\n [statesByCountry],\n );\n\n if (isAccountError && !isLoadingAccount) {\n return (\n <div className=\"px-4 py-8 sm:px-9\">\n <div className=\"text-muted-foreground text-center text-sm\">\n Unable to load account data. Please try again later.\n </div>\n </div>\n );\n }\n\n if (isLoadingAccount || !accountData) {\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <div className=\"space-y-4\">\n <div className=\"bg-muted h-16 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <FluidPayCoreProvider api={fluidPayShim}>\n <ProfileUIProvider t={t}>\n <Profile\n customerAccount={accountData}\n languages={adaptedLanguages}\n onUpdateCustomer={async (data) => {\n await updateCustomerMutation.mutateAsync(data);\n }}\n isUpdatingCustomer={updateCustomerMutation.isPending}\n // TODO: wire onChangeEmail to PATCH /v202506/users/:id/change_email\n // once portal self-service email change is designed\n // onChangeEmail={...}\n // pendingEmail={pendingEmail}\n rewardsPointsEnabled={rewardPointsEnabled}\n pointsLedger={adaptedPointsLedger}\n isLoadingPointsLedger={isLoadingPointsLedger}\n addresses={addresses}\n isLoadingAddresses={isLoadingAddresses}\n onDeleteAddress={async (addressId) => {\n await deleteAddressMutation.mutateAsync(addressId);\n }}\n isDeletingAddress={deleteAddressMutation.isPending}\n onMakeDefaultAddress={async (addressId) => {\n await makeDefaultAddressMutation.mutateAsync(addressId);\n }}\n paymentMethods={paymentMethods}\n isLoadingPaymentMethods={isLoadingPaymentMethods}\n onDeletePaymentMethod={async (paymentMethodId) => {\n await deletePaymentMethodMutation.mutateAsync(paymentMethodId);\n }}\n isDeletingPaymentMethod={deletePaymentMethodMutation.isPending}\n onMakeDefaultPaymentMethod={async (paymentMethodId) => {\n await makeDefaultPaymentMethodMutation.mutateAsync(\n paymentMethodId,\n );\n }}\n onUpdatePaymentMethod={async (paymentMethodId, data) => {\n await updatePaymentMethodMutation.mutateAsync({\n paymentMethodId,\n data,\n });\n }}\n isUpdatingPaymentMethod={updatePaymentMethodMutation.isPending}\n getBillingAddress={(paymentMethod) =>\n paymentMethod.billing_address ?? null\n }\n countries={countryOptions}\n renderAddressDialog={({ isOpen, onClose, selectedAddress }) => (\n <AddressFormDialog\n isOpen={isOpen}\n onClose={onClose}\n selectedAddress={selectedAddress}\n t={t}\n onSubmit={async (formData) => {\n if (selectedAddress) {\n await updateAddressMutation.mutateAsync({\n addressId: selectedAddress.id,\n body: formData,\n });\n } else {\n await createAddressMutation.mutateAsync(formData);\n }\n onClose();\n }}\n isSubmitting={\n createAddressMutation.isPending ||\n updateAddressMutation.isPending\n }\n countries={countryOptions}\n fetchStates={fetchStatesFromCountries}\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"postal_code\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n renderCreditCardDialog={({ isOpen, onClose }) => (\n <CreditCardFormDialog\n isOpen={isOpen}\n onClose={onClose}\n t={t}\n onSubmit={async (data) => {\n try {\n await addCreditCardMutation.mutateAsync(data);\n onClose();\n } catch {\n // onError surfaces the toast; swallow here so the dialog\n // doesn't see an unhandled rejection.\n }\n }}\n isSubmitting={addCreditCardMutation.isPending}\n countries={countryOptions}\n jwt=\"\"\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"zip\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n footer={\n <>\n <MySiteLinkCard\n mysiteUrl={mySiteUrl}\n displayUrl={mySiteDisplayUrl}\n onUpdateSlug={handleUpdateSlug}\n onToast={onToast}\n />\n <MySiteProfileSocialSection control={mySiteControl} />\n <MySiteProfileSaveButton\n isDirty={isMySiteDirty}\n isPending={updateMySiteProfileMutation.isPending}\n onSubmit={handleMySiteProfileSubmit}\n />\n </>\n }\n >\n <MySiteProfileSection\n avatarUrl={accountRep?.avatar_url}\n initial={accountRep?.first_name?.[0]?.toUpperCase() ?? \"U\"}\n control={mySiteControl}\n />\n </Profile>\n </ProfileUIProvider>\n </FluidPayCoreProvider>\n </div>\n );\n}\n","import { type ComponentProps, useMemo } from \"react\";\nimport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbPage,\n fluidToast,\n} from \"@fluid-app/ui-primitives\";\nimport { useScreenHeaderBreadcrumbs } from \"@fluid-app/portal-react/shell/ScreenHeaderContext\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n PaddingOptions,\n} from \"../types\";\nimport type { WidgetPropertySchema } from \"../registries/property-schema-types\";\nimport { useFluidContext } from \"../providers/FluidProvider\";\nimport { ProfileContentScreen } from \"./ProfileContentScreen\";\n\ntype ProfileScreenProps = ComponentProps<\"div\"> & {\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n onToast?: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n};\n\nfunction defaultToast(message: string, type: \"success\" | \"error\" | \"warning\") {\n fluidToast({ title: message, type });\n}\n\nexport function ProfileScreen({\n onToast,\n /* eslint-disable @typescript-eslint/no-unused-vars -- destructured to exclude from divProps spread */\n background,\n textColor,\n accentColor,\n padding,\n borderRadius,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...divProps\n}: ProfileScreenProps): React.JSX.Element {\n const { config } = useFluidContext();\n const effectiveToast = onToast ?? defaultToast;\n const countryIso = config.countryIso ?? \"US\";\n\n const headerBreadcrumbs = useMemo(\n () => (\n <Breadcrumb>\n <BreadcrumbList className=\"text-lg\">\n <BreadcrumbItem>\n <BreadcrumbPage className=\"font-semibold\">Profile</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n ),\n [],\n );\n useScreenHeaderBreadcrumbs(headerBreadcrumbs);\n\n return (\n <div {...divProps}>\n <ProfileContentScreen onToast={effectiveToast} countryIso={countryIso} />\n </div>\n );\n}\n\nexport const profileScreenPropertySchema: WidgetPropertySchema = {\n widgetType: \"ProfileScreen\",\n displayName: \"Profile Screen\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProfileScreen-LL3z9-cx.cjs","names":["socialFields","usePayApi","useAccountApi","createFluidPayApiAdapter","usePortalMySiteProfile","usePortalUpdateSettings","useAccount","useZodForm","mySiteProfileSchema","accountKeys","payKeys","mapToFluidPayPaymentMethod","useCountriesApi","useLanguagesApi","storeKeys","FluidPayCoreProvider","ProfileUIProvider","Profile","AddressFormDialog","AddressAutocompleteInput","CreditCardFormDialog","MySiteLinkCard","MySiteProfileSocialSection","MySiteProfileSaveButton","MySiteProfileSection","useFluidContext","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbPage"],"sources":["../src/screens/ProfileContentScreen.tsx","../src/screens/ProfileScreen.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useZodForm } from \"@fluid-app/ui-primitives\";\nimport { ProfileUIProvider } from \"@fluid-app/profile-core\";\nimport type { Language, PointsLedger } from \"@fluid-app/profile-core\";\nimport {\n Profile,\n AddressFormDialog,\n CreditCardFormDialog,\n MySiteProfileSection,\n MySiteProfileSocialSection,\n MySiteProfileSaveButton,\n mySiteProfileSchema,\n socialFields,\n} from \"@fluid-app/profile-ui\";\nimport type { MySiteProfileFormData } from \"@fluid-app/profile-ui\";\nimport type {\n UserFormData,\n EditPaymentMethodFormData,\n} from \"@fluid-app/profile-ui\";\nimport {\n FluidPayCoreProvider,\n type fluidPay,\n type State,\n} from \"@fluid-app/fluid-pay-core\";\nimport type {\n PayAddress,\n UpdatePaymentMethodBody,\n} from \"@fluid-app/portal-core/pay-types\";\nimport {\n createFluidPayApiAdapter,\n mapToFluidPayPaymentMethod,\n} from \"../adapters/fluid-pay-api-adapter\";\nimport type { AccountRep } from \"@fluid-app/portal-core/account-types\";\nimport { useAccountApi } from \"@fluid-app/portal-core/account-api-context\";\nimport { usePayApi } from \"@fluid-app/portal-core/pay-api-context\";\nimport {\n usePortalMySiteProfile,\n usePortalUpdateSettings,\n} from \"@fluid-app/mysite-ui/portal/hooks/use-mysite-portal\";\nimport { MySiteLinkCard } from \"@fluid-app/mysite-ui/portal/components\";\nimport { useCountriesApi } from \"@fluid-app/store-core/countries-api-context\";\nimport { useLanguagesApi } from \"@fluid-app/store-core/languages-api-context\";\nimport { AddressAutocompleteInput } from \"@fluid-app/address-autocomplete/components/AddressAutocompleteInput\";\nimport { accountKeys, payKeys, storeKeys } from \"../account/query-keys\";\nimport { useAccount } from \"../hooks/use-account\";\n\ninterface ProfileContentScreenProps {\n onToast: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n countryIso: string;\n}\n\nconst translations: Record<string, string> = {\n edit_profile: \"Edit Profile\",\n first_name: \"First Name\",\n last_name: \"Last Name\",\n phone_number: \"Phone Number\",\n language: \"Language\",\n first_name_is_required: \"First name is required\",\n last_name_is_required: \"Last name is required\",\n language_is_required: \"Language is required\",\n saving: \"Saving...\",\n save_changes: \"Save Changes\",\n select_an_option: \"Select an option\",\n points_history: \"Points History\",\n points_available: \"Points Available\",\n points_awarded: \"Points Awarded\",\n points_redeemed: \"Points Redeemed\",\n transaction: \"Transaction\",\n no_points_history_found: \"No points history found\",\n shipping_addresses: \"Shipping Addresses\",\n add_an_address: \"Add an Address\",\n delete_address: \"Delete Address\",\n delete_address_message:\n \"Are you sure you want to delete this address? This action cannot be undone.\",\n delete: \"Delete\",\n add_address: \"Add Address\",\n edit_address: \"Edit Address\",\n set_as_default_address: \"Set as default address\",\n save_address: \"Save Address\",\n card_number: \"Card Number\",\n expiration_date: \"Expiration (MM / YY)\",\n cvc: \"CVC\",\n cardholder_name: \"Cardholder Name\",\n add_credit_card: \"Add Credit Card\",\n save_card: \"Save Card\",\n securing: \"Loading secure form...\",\n payment_methods: \"Payment Methods\",\n add_payment_method: \"Add Payment Method\",\n delete_credit_card: \"Delete Credit Card\",\n delete_credit_card_message:\n \"Are you sure you want to delete this payment method? This action cannot be undone.\",\n edit_card: \"Card Details\",\n billing_address: \"Billing Address\",\n country: \"Country\",\n name: \"Name\",\n address_line_1: \"Address Line 1\",\n address_line_2: \"Address Line 2\",\n city: \"City\",\n state: \"State\",\n province: \"Province\",\n zip_code: \"Zip Code\",\n postal_code: \"Postal Code\",\n select_state: \"Select state\",\n set_as_default_payment_method: \"Set as default payment method\",\n cancel: \"Cancel\",\n save: \"Save\",\n close: \"Close\",\n edit: \"Edit\",\n default: \"Default\",\n card_expires: \"Expires\",\n no_billing_address: \"No billing address on file\",\n default_payment_method_updated: \"Payment method updated\",\n failed_to_set_default_payment_method: \"Failed to update payment method\",\n};\n\nfunction t(key: string): string {\n if (translations[key]) return translations[key];\n return key\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n}\n\nfunction adaptPointsLedger(\n entry: import(\"@fluid-app/portal-core/pay-types\").PointsLedgerEntry,\n): PointsLedger {\n const meta = entry.metadata as {\n transaction_type?: string | null;\n source?: {\n name: string;\n email?: string;\n reason?: string;\n user_id?: number;\n } | null;\n } | null;\n return {\n id: entry.id,\n amount: entry.amount,\n company_id: 0,\n created_at: entry.created_at,\n customer_id: 0,\n metadata: {\n transaction_type: meta?.transaction_type ?? undefined,\n source: meta?.source ?? undefined,\n },\n total_balance: entry.total_balance,\n updated_at: entry.created_at,\n };\n}\n\nfunction mapAccountToCustomerAccount(\n raw: AccountRep,\n): fluidPay.CustomerAccount {\n return {\n fluid_pay_account: {\n id: raw.id,\n email: raw.email,\n address_count: 0,\n payment_methods_count: 0,\n language_iso: null,\n },\n customer: {\n id: raw.id,\n active: true,\n active_subscriptions_count: 0,\n display_total_spent: \"0\",\n email: raw.email,\n first_name: raw.first_name,\n full_name: `${raw.first_name} ${raw.last_name}`.trim(),\n inactive_subscriptions_count: 0,\n is_rep: raw.member_type === \"rep\",\n phone: raw.phone,\n orders_count: 0,\n },\n };\n}\n\nfunction composeAddressName(\n firstName: string,\n lastName: string,\n): string | null {\n const combined = `${firstName} ${lastName}`.trim();\n return combined.length > 0 ? combined : null;\n}\n\nfunction mapToFluidPayAddress(raw: PayAddress): fluidPay.CustomerAddress {\n return {\n id: raw.id,\n address1: raw.street1,\n address2: raw.street2,\n city: raw.city,\n country_code: raw.country,\n default: raw.default,\n name: raw.name,\n postal_code: raw.zip,\n state: raw.state,\n subdivision_code: null,\n };\n}\n\ntype SocialFieldKey = (typeof socialFields)[number][\"name\"];\n\nfunction mapAccountToMySiteFormValues(\n account: AccountRep | undefined,\n): MySiteProfileFormData {\n const social = account?.social_links ?? {};\n const result = { bio: account?.bio ?? \"\" } as MySiteProfileFormData;\n for (const { name } of socialFields) {\n result[name] = social[name] ?? \"\";\n }\n return result;\n}\n\nfunction mapFormToSocialLinks(\n data: MySiteProfileFormData,\n): Record<SocialFieldKey, string> {\n const result = {} as Record<SocialFieldKey, string>;\n for (const { name } of socialFields) {\n result[name] = data[name] ?? \"\";\n }\n return result;\n}\n\nexport function ProfileContentScreen({\n onToast,\n countryIso: _countryIso,\n}: ProfileContentScreenProps): React.JSX.Element {\n const payApi = usePayApi();\n const accountApi = useAccountApi();\n const queryClient = useQueryClient();\n const fluidPayShim = useMemo(\n () => createFluidPayApiAdapter(payApi),\n [payApi],\n );\n\n const { data: mySiteProfile } = usePortalMySiteProfile();\n const updateMySiteSettingsMutation = usePortalUpdateSettings();\n\n const mySiteUrl = mySiteProfile?.mysite_url ?? \"\";\n const mySiteDisplayUrl = mySiteUrl\n ? mySiteUrl.replace(/^https?:\\/\\//, \"\")\n : \"\";\n\n const handleUpdateSlug = useCallback(\n async (slug: string) => {\n await updateMySiteSettingsMutation.mutateAsync({ slug });\n },\n [updateMySiteSettingsMutation],\n );\n\n // Reuse the app-wide useAccount() cache entry shared with AppShell/PageRouter.\n const {\n data: accountRep,\n isLoading: isLoadingAccount,\n isError: isAccountError,\n } = useAccount();\n\n const mySiteFormValues = useMemo(\n () => mapAccountToMySiteFormValues(accountRep),\n [accountRep],\n );\n\n const {\n control: mySiteControl,\n handleSubmit: handleMySiteSubmit,\n formState: { isDirty: isMySiteDirty },\n } = useZodForm<MySiteProfileFormData>(mySiteProfileSchema, {\n values: mySiteFormValues,\n });\n\n const updateMySiteProfileMutation = useMutation({\n mutationFn: (data: MySiteProfileFormData) =>\n accountApi.updateAccount({\n account: {\n bio: data.bio,\n social_links: mapFormToSocialLinks(data),\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated successfully\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const handleMySiteProfileSubmit = handleMySiteSubmit((data) => {\n updateMySiteProfileMutation.mutate(data);\n });\n const accountData = useMemo(\n () => (accountRep ? mapAccountToCustomerAccount(accountRep) : undefined),\n [accountRep],\n );\n\n const { data: addressesData, isLoading: isLoadingAddresses } = useQuery({\n queryKey: payKeys.addresses.list(),\n queryFn: async () => {\n const response = await payApi.fetchAddresses();\n return response.addresses.map(mapToFluidPayAddress);\n },\n enabled: true,\n });\n\n const { data: paymentMethodsData, isLoading: isLoadingPaymentMethods } =\n useQuery({\n queryKey: payKeys.paymentMethods.list(),\n queryFn: async () => {\n const response = await payApi.fetchPaymentMethods();\n return response.payment_methods.map(mapToFluidPayPaymentMethod);\n },\n enabled: true,\n });\n\n const countriesAdapter = useCountriesApi();\n const languagesAdapter = useLanguagesApi();\n\n const { data: countriesData } = useQuery({\n queryKey: storeKeys.countries(),\n queryFn: () => countriesAdapter.listCountries(),\n enabled: true,\n });\n\n const { data: languagesData } = useQuery({\n queryKey: storeKeys.languages(),\n queryFn: () => languagesAdapter.listLanguages(),\n enabled: true,\n });\n\n const {\n data: pointsLedgerData,\n isLoading: isLoadingPointsLedger,\n isError: isPointsLedgerError,\n } = useQuery({\n queryKey: payKeys.pointsLedgers.list(),\n queryFn: () => payApi.fetchPointsLedgers(),\n enabled: true,\n // BFF returns 403 when reward points are not enabled for the company.\n // Don't retry on 403 so the UI simply hides the points section.\n retry: (failureCount, error) => {\n if (\n error instanceof Error &&\n \"status\" in error &&\n (error as { status: number }).status === 403\n ) {\n return false;\n }\n return failureCount < 1;\n },\n });\n\n // Points are enabled if the fetch succeeded (non-403)\n const rewardPointsEnabled = !isPointsLedgerError && pointsLedgerData != null;\n\n const updateCustomerMutation = useMutation({\n mutationFn: async (data: UserFormData) => {\n await accountApi.updateAccount({\n account: {\n first_name: data.first_name,\n last_name: data.last_name,\n phone: data.phone_number,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const deleteAddressMutation = useMutation({\n mutationFn: (addressId: number) => payApi.deleteAddress(addressId),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n },\n onError: () => {\n onToast(\"Failed to delete address\", \"error\");\n },\n });\n\n const deletePaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) =>\n payApi.deletePaymentMethod(paymentMethodId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to delete payment method\", \"error\");\n },\n });\n\n const updatePaymentMethodMutation = useMutation({\n mutationFn: ({\n paymentMethodId,\n data,\n }: {\n paymentMethodId: number;\n data: EditPaymentMethodFormData;\n }) =>\n payApi.updatePaymentMethod(paymentMethodId, {\n payment_method: {\n default: data.set_as_default,\n billing_address: {\n name: data.billing_address.name,\n street1: data.billing_address.address1,\n street2: data.billing_address.address2 ?? null,\n city: data.billing_address.city,\n state: data.billing_address.state,\n zip: data.billing_address.zip,\n country: data.billing_address.country_code,\n },\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to update payment method\", \"error\");\n },\n });\n\n const makeDefaultPaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) => {\n const pm = (paymentMethodsData ?? []).find(\n (p) => p.id === paymentMethodId,\n );\n if (!pm) throw new Error(\"Payment method not found\");\n const body: UpdatePaymentMethodBody = {\n payment_method: { default: true },\n };\n if (pm.billing_address) {\n body.payment_method.billing_address = {\n name: pm.billing_address.name,\n street1: pm.billing_address.address1 ?? \"\",\n street2: pm.billing_address.address2 ?? null,\n city: pm.billing_address.city ?? \"\",\n state: pm.billing_address.state ?? \"\",\n zip: pm.billing_address.zip ?? \"\",\n country: pm.billing_address.country_code ?? \"\",\n };\n }\n return payApi.updatePaymentMethod(paymentMethodId, body);\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.paymentMethods.all });\n onToast(\"Default payment method updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default payment method\", \"error\");\n },\n });\n\n const makeDefaultAddressMutation = useMutation({\n mutationFn: (addressId: number) => {\n const addr = addresses.find((a) => a.id === addressId);\n if (!addr) throw new Error(\"Address not found\");\n return payApi.updateAddress(addressId, {\n address: {\n name: addr.name ?? null,\n street1: addr.address1,\n street2: addr.address2,\n city: addr.city,\n state: addr.state,\n zip: addr.postal_code,\n country: addr.country_code ?? \"\",\n default: true,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Default address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default address\", \"error\");\n },\n });\n\n const createAddressMutation = useMutation({\n mutationFn: (body: fluidPay.CreateAddressBody) =>\n payApi.createAddress({\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address created\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to create address\", \"error\");\n },\n });\n\n const updateAddressMutation = useMutation({\n mutationFn: ({\n addressId,\n body,\n }: {\n addressId: number;\n body: fluidPay.CreateAddressBody;\n }) =>\n payApi.updateAddress(addressId, {\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update address\", \"error\");\n },\n });\n\n const addCreditCardMutation = useMutation({\n mutationFn: (data: fluidPay.AddCreditCardData) =>\n payApi.createPaymentMethod({\n payment_method: {\n type: \"card\",\n token: data.payment_method.token,\n default: data.default_payment_method,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n onToast(\"Payment method added\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to add payment method\", \"error\");\n },\n });\n\n const addresses = addressesData ?? [];\n const paymentMethods = paymentMethodsData ?? [];\n\n const adaptedPointsLedger: PointsLedger[] =\n pointsLedgerData?.points_ledgers?.map(adaptPointsLedger) ?? [];\n\n const adaptedLanguages: Language[] = (languagesData?.languages ?? []).map(\n (l, i) => ({ id: i, name: l.name, iso: l.code }),\n );\n\n const countries = countriesData?.countries;\n\n const countryOptions = useMemo(\n () =>\n [...(countries ?? [])]\n .map((c) => ({ iso: c.code, name: c.name }))\n .sort((a, b) => a.name.localeCompare(b.name)),\n [countries],\n );\n\n const statesByCountry = useMemo(() => {\n const map = new Map<string, State[]>();\n for (const c of countries ?? []) {\n map.set(\n c.code,\n c.states.map((s) => ({ name: s.name, isoCode: s.code })),\n );\n }\n return map;\n }, [countries]);\n\n const fetchStatesFromCountries = useCallback(\n (countryCode: string): Promise<State[]> =>\n Promise.resolve(statesByCountry.get(countryCode) ?? []),\n [statesByCountry],\n );\n\n if (isAccountError && !isLoadingAccount) {\n return (\n <div className=\"px-4 py-8 sm:px-9\">\n <div className=\"text-muted-foreground text-center text-sm\">\n Unable to load account data. Please try again later.\n </div>\n </div>\n );\n }\n\n if (isLoadingAccount || !accountData) {\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <div className=\"space-y-4\">\n <div className=\"bg-muted h-16 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <FluidPayCoreProvider api={fluidPayShim}>\n <ProfileUIProvider t={t}>\n <Profile\n customerAccount={accountData}\n languages={adaptedLanguages}\n onUpdateCustomer={async (data) => {\n await updateCustomerMutation.mutateAsync(data);\n }}\n isUpdatingCustomer={updateCustomerMutation.isPending}\n // TODO: wire onChangeEmail to PATCH /v202506/users/:id/change_email\n // once portal self-service email change is designed\n // onChangeEmail={...}\n // pendingEmail={pendingEmail}\n rewardsPointsEnabled={rewardPointsEnabled}\n pointsLedger={adaptedPointsLedger}\n isLoadingPointsLedger={isLoadingPointsLedger}\n addresses={addresses}\n isLoadingAddresses={isLoadingAddresses}\n onDeleteAddress={async (addressId) => {\n await deleteAddressMutation.mutateAsync(addressId);\n }}\n isDeletingAddress={deleteAddressMutation.isPending}\n onMakeDefaultAddress={async (addressId) => {\n await makeDefaultAddressMutation.mutateAsync(addressId);\n }}\n paymentMethods={paymentMethods}\n isLoadingPaymentMethods={isLoadingPaymentMethods}\n onDeletePaymentMethod={async (paymentMethodId) => {\n await deletePaymentMethodMutation.mutateAsync(paymentMethodId);\n }}\n isDeletingPaymentMethod={deletePaymentMethodMutation.isPending}\n onMakeDefaultPaymentMethod={async (paymentMethodId) => {\n await makeDefaultPaymentMethodMutation.mutateAsync(\n paymentMethodId,\n );\n }}\n onUpdatePaymentMethod={async (paymentMethodId, data) => {\n await updatePaymentMethodMutation.mutateAsync({\n paymentMethodId,\n data,\n });\n }}\n isUpdatingPaymentMethod={updatePaymentMethodMutation.isPending}\n getBillingAddress={(paymentMethod) =>\n paymentMethod.billing_address ?? null\n }\n countries={countryOptions}\n renderAddressDialog={({ isOpen, onClose, selectedAddress }) => (\n <AddressFormDialog\n isOpen={isOpen}\n onClose={onClose}\n selectedAddress={selectedAddress}\n t={t}\n onSubmit={async (formData) => {\n if (selectedAddress) {\n await updateAddressMutation.mutateAsync({\n addressId: selectedAddress.id,\n body: formData,\n });\n } else {\n await createAddressMutation.mutateAsync(formData);\n }\n onClose();\n }}\n isSubmitting={\n createAddressMutation.isPending ||\n updateAddressMutation.isPending\n }\n countries={countryOptions}\n fetchStates={fetchStatesFromCountries}\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"postal_code\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n renderCreditCardDialog={({ isOpen, onClose }) => (\n <CreditCardFormDialog\n isOpen={isOpen}\n onClose={onClose}\n t={t}\n onSubmit={async (data) => {\n try {\n await addCreditCardMutation.mutateAsync(data);\n onClose();\n } catch {\n // onError surfaces the toast; swallow here so the dialog\n // doesn't see an unhandled rejection.\n }\n }}\n isSubmitting={addCreditCardMutation.isPending}\n countries={countryOptions}\n jwt=\"\"\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"zip\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n footer={\n <>\n <MySiteLinkCard\n mysiteUrl={mySiteUrl}\n displayUrl={mySiteDisplayUrl}\n onUpdateSlug={handleUpdateSlug}\n onToast={onToast}\n />\n <MySiteProfileSocialSection control={mySiteControl} />\n <MySiteProfileSaveButton\n isDirty={isMySiteDirty}\n isPending={updateMySiteProfileMutation.isPending}\n onSubmit={handleMySiteProfileSubmit}\n />\n </>\n }\n >\n <MySiteProfileSection\n avatarUrl={accountRep?.avatar_url}\n initial={accountRep?.first_name?.[0]?.toUpperCase() ?? \"U\"}\n control={mySiteControl}\n />\n </Profile>\n </ProfileUIProvider>\n </FluidPayCoreProvider>\n </div>\n );\n}\n","import { type ComponentProps, useMemo } from \"react\";\nimport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbPage,\n fluidToast,\n} from \"@fluid-app/ui-primitives\";\nimport { useScreenHeaderBreadcrumbs } from \"@fluid-app/portal-react/shell/ScreenHeaderContext\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n PaddingOptions,\n} from \"../types\";\nimport type { WidgetPropertySchema } from \"../registries/property-schema-types\";\nimport { useFluidContext } from \"../providers/FluidProvider\";\nimport { ProfileContentScreen } from \"./ProfileContentScreen\";\n\ntype ProfileScreenProps = ComponentProps<\"div\"> & {\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n onToast?: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n};\n\nfunction defaultToast(message: string, type: \"success\" | \"error\" | \"warning\") {\n fluidToast({ title: message, type });\n}\n\nexport function ProfileScreen({\n onToast,\n /* eslint-disable @typescript-eslint/no-unused-vars -- destructured to exclude from divProps spread */\n background,\n textColor,\n accentColor,\n padding,\n borderRadius,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...divProps\n}: ProfileScreenProps): React.JSX.Element {\n const { config } = useFluidContext();\n const effectiveToast = onToast ?? defaultToast;\n const countryIso = config.countryIso ?? \"US\";\n\n const headerBreadcrumbs = useMemo(\n () => (\n <Breadcrumb>\n <BreadcrumbList className=\"text-lg\">\n <BreadcrumbItem>\n <BreadcrumbPage className=\"font-semibold\">Profile</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n ),\n [],\n );\n useScreenHeaderBreadcrumbs(headerBreadcrumbs);\n\n return (\n <div {...divProps}>\n <ProfileContentScreen onToast={effectiveToast} countryIso={countryIso} />\n </div>\n );\n}\n\nexport const profileScreenPropertySchema: WidgetPropertySchema = {\n widgetType: \"ProfileScreen\",\n displayName: \"Profile Screen\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  require("./chunk-9hOWP6kD.cjs");
2
- require("./FluidProvider-BLri8EGR.cjs");
2
+ require("./FluidProvider-IFbNov8P.cjs");
3
3
  require("./ScreenRenderer-j7Nz1HQx.cjs");
4
4
  require("./account-api-context-DZP9IiGg.cjs");
5
5
  require("./store-api-context-D1gZn22Z.cjs");
@@ -41,9 +41,9 @@ require("./TableWidget-KJ-M5rbA.cjs");
41
41
  require("./ToDoWidget-D9J5Ap7p.cjs");
42
42
  require("./VideoWidget-BpEF3gRZ.cjs");
43
43
  require("./ScreenHeaderContext-JDIUM84f.cjs");
44
- require("./AddressAutocompleteInput-eO2ZMNvX.cjs");
44
+ require("./AddressAutocompleteInput-W2jWPYoJ.cjs");
45
45
  require("./dist-DXtRwmpl.cjs");
46
46
  require("./components-ByF_YWtD.cjs");
47
- const require_ProfileScreen = require("./ProfileScreen-Ckh4xGkq.cjs");
47
+ const require_ProfileScreen = require("./ProfileScreen-LL3z9-cx.cjs");
48
48
  exports.ProfileScreen = require_ProfileScreen.ProfileScreen;
49
49
  exports.profileScreenPropertySchema = require_ProfileScreen.profileScreenPropertySchema;
@@ -1,11 +1,11 @@
1
1
  const require_chunk = require("./chunk-9hOWP6kD.cjs");
2
- const require_FluidProvider = require("./FluidProvider-BLri8EGR.cjs");
2
+ const require_FluidProvider = require("./FluidProvider-IFbNov8P.cjs");
3
3
  const require_locale_context = require("./locale-context-34b1u6At.cjs");
4
4
  const require_src = require("./src-xGZGQSPj.cjs");
5
5
  const require_ScreenHeaderContext = require("./ScreenHeaderContext-JDIUM84f.cjs");
6
6
  const require_use_store = require("./use-store-D-GqHw7R.cjs");
7
7
  const require_AppNavigationContext = require("./AppNavigationContext-CDowN9gd.cjs");
8
- const require_static_dict_adapter = require("./static-dict-adapter-Bxrw9FK5.cjs");
8
+ const require_static_dict_adapter = require("./static-dict-adapter-BLfRl80i.cjs");
9
9
  const require_SearchSort = require("./SearchSort-CKdDCwqf.cjs");
10
10
  const require_PortalProductsApiProvider = require("./PortalProductsApiProvider-P1L6hPNz.cjs");
11
11
  let react = require("react");
@@ -1305,4 +1305,4 @@ Object.defineProperty(exports, "shopScreenPropertySchema", {
1305
1305
  }
1306
1306
  });
1307
1307
 
1308
- //# sourceMappingURL=ShopScreen-Cdxvxph7.cjs.map
1308
+ //# sourceMappingURL=ShopScreen-C4z4aB8f.cjs.map