@envive-ai/react-hooks 0.1.5 → 0.1.6
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.
- package/dist/amplitudeContext-CHzas7Cf.d.cts +52 -0
- package/dist/amplitudeContext-D-7fmVh1.cjs +356 -0
- package/dist/amplitudeContext-hY3caPC6.js +322 -0
- package/dist/amplitudeContext-tJ4y-SzX.d.ts +52 -0
- package/dist/api-DjeZXxl_.js +207 -0
- package/dist/api-_JaUnIUj.cjs +292 -0
- package/dist/app-CjsQ2_n-.js +132 -0
- package/dist/app-CnKRZ9RW.cjs +178 -0
- package/dist/application/models/graphql/index.cjs +3 -12
- package/dist/application/models/graphql/index.d.cts +1 -1
- package/dist/application/models/graphql/index.d.ts +1 -1
- package/dist/application/models/graphql/index.js +1 -10
- package/dist/application/models/guards/api/index.cjs +1 -2
- package/dist/application/models/guards/api/index.d.cts +2 -2
- package/dist/application/models/guards/api/index.d.ts +2 -2
- package/dist/application/models/guards/api/index.js +1 -2
- package/dist/application/models/index.cjs +48 -54
- package/dist/application/models/index.d.cts +7 -9
- package/dist/application/models/index.d.ts +7 -9
- package/dist/application/models/index.js +7 -11
- package/dist/application/models/utilityTypes/index.cjs +1 -1
- package/dist/application/models/utilityTypes/index.d.cts +1 -1
- package/dist/application/models/utilityTypes/index.d.ts +1 -1
- package/dist/application/models/utilityTypes/index.js +1 -1
- package/dist/application/models/variantInfo/index.cjs +1 -1
- package/dist/application/models/variantInfo/index.d.cts +1 -1
- package/dist/application/models/variantInfo/index.d.ts +1 -1
- package/dist/application/models/variantInfo/index.js +1 -1
- package/dist/application/utils/index.cjs +40 -37
- package/dist/application/utils/index.d.cts +18 -14
- package/dist/application/utils/index.d.ts +19 -15
- package/dist/application/utils/index.js +13 -10
- package/dist/{atomStore-JwGb7pcy.cjs → atomStore-B4jIaDPd.cjs} +1 -1
- package/dist/{atomStore-B1cgmbP0.js → atomStore-D8pjE1vL.js} +1 -1
- package/dist/atoms/app/index.cjs +14 -16
- package/dist/atoms/app/index.d.cts +20 -19
- package/dist/atoms/app/index.d.ts +20 -19
- package/dist/atoms/app/index.js +10 -11
- package/dist/atoms/atomStore/index.cjs +2 -1
- package/dist/atoms/atomStore/index.d.cts +24 -2
- package/dist/atoms/atomStore/index.d.ts +24 -2
- package/dist/atoms/atomStore/index.js +2 -1
- package/dist/atoms/chat/index.cjs +44 -40
- package/dist/atoms/chat/index.d.cts +35 -36
- package/dist/atoms/chat/index.d.ts +35 -36
- package/dist/atoms/chat/index.js +14 -10
- package/dist/atoms/globalSearch/index.cjs +1 -1
- package/dist/atoms/globalSearch/index.d.cts +5 -5
- package/dist/atoms/globalSearch/index.d.ts +6 -6
- package/dist/atoms/globalSearch/index.js +1 -1
- package/dist/atoms/org/index.cjs +26 -38
- package/dist/atoms/org/index.d.cts +35 -48
- package/dist/atoms/org/index.d.ts +35 -48
- package/dist/atoms/org/index.js +11 -11
- package/dist/atoms/search/index.cjs +47 -41
- package/dist/atoms/search/index.d.cts +7 -9
- package/dist/atoms/search/index.d.ts +7 -9
- package/dist/atoms/search/index.js +16 -10
- package/dist/bandolier-DYEz4-8C.js +1229 -0
- package/dist/bandolier-o_-xrbOV.cjs +1229 -0
- package/dist/carpe-CsG5jCcl.cjs +607 -0
- package/dist/carpe-DONk00bZ.js +605 -0
- package/dist/cdnUtils-32v8bDX9.cjs +16 -0
- package/dist/cdnUtils-E4tLBt2g.js +11 -0
- package/dist/{chat-_NzpO_Hn.cjs → chat-BubCW1as.cjs} +1 -1
- package/dist/chat-CO7cRkaq.cjs +506 -0
- package/dist/{chat-CHmD79E1.js → chat-CV6MXeID.js} +1 -1
- package/dist/chat-hcRc4RRd.js +285 -0
- package/dist/{components-Dl-TMD9k.js → components-B4T3Uzth.js} +1 -1
- package/dist/{components-D0XDRcaN.cjs → components-Cw9WjA6g.cjs} +1 -1
- package/dist/config/locators/components/chat/index.cjs +1 -1
- package/dist/config/locators/components/chat/index.d.cts +1 -1
- package/dist/config/locators/components/chat/index.d.ts +1 -1
- package/dist/config/locators/components/chat/index.js +1 -1
- package/dist/config/locators/components/chat/variants/index.d.cts +1 -1
- package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
- package/dist/config/locators/components/index.cjs +1 -1
- package/dist/config/locators/components/index.d.cts +1 -1
- package/dist/config/locators/components/index.d.ts +1 -1
- package/dist/config/locators/components/index.js +1 -1
- package/dist/config/locators/components/search/index.d.ts +1 -1
- package/dist/config/locators/index.cjs +4 -4
- package/dist/config/locators/index.d.cts +2 -2
- package/dist/config/locators/index.d.ts +2 -2
- package/dist/config/locators/index.js +4 -4
- package/dist/contexts/index.cjs +45 -14
- package/dist/contexts/index.d.cts +10 -10
- package/dist/contexts/index.d.ts +10 -10
- package/dist/contexts/index.js +22 -11
- package/dist/contexts-B4ihTBsV.cjs +2980 -0
- package/dist/contexts-DGlr7M1o.js +2596 -0
- package/dist/coterie-CKB93qfz.cjs +239 -0
- package/dist/{coterie--MGvWeVh.cjs → coterie-DHcj2fRE.js} +64 -65
- package/dist/{custservice-types-C8-9vKWb.cjs → custservice-types-Dy0kc9TW.cjs} +1 -1
- package/dist/{custservice-types-CamCiXjq.js → custservice-types-mnIunabv.js} +1 -1
- package/dist/default-BnB4p0Se.cjs +234 -0
- package/dist/default-D6f5Dyt7.js +199 -0
- package/dist/default-ZKkE5zT4.cjs +4 -0
- package/dist/default-legGZJwI.js +4 -0
- package/dist/{divIds-CjceLRD9.cjs → divIds-2dJlU3z8.cjs} +1 -15
- package/dist/{divIds-0Vj9g-fM.js → divIds-BUrN2vY-.js} +2 -4
- package/dist/dreamlandBaby-BiRYYFav.js +346 -0
- package/dist/dreamlandBaby-zuvmfzfD.cjs +346 -0
- package/dist/{embedded-_cLpd6FK.js → embedded-BJLWIriJ.js} +1 -1
- package/dist/{embedded-B5Wi9g0T.cjs → embedded-Dl79TJLC.cjs} +1 -1
- package/dist/{entrypoints-CNUvSgnk.js → entrypoints-Bs3pn6EV.js} +1 -1
- package/dist/{entrypoints-DM9Sm18O.cjs → entrypoints-Dqi5pzWH.cjs} +1 -1
- package/dist/enviveConfig-BccuzS2a.cjs +240 -0
- package/dist/enviveConfig-CzhTz8Aa.js +152 -0
- package/dist/events/index.cjs +1 -1
- package/dist/events/index.js +1 -1
- package/dist/{events-ClCDFK7t.js → events-BrLpaNxh.js} +1 -1
- package/dist/{events-Da7gpmGv.cjs → events-DwT6cEwI.cjs} +1 -1
- package/dist/fiveCbd-DwTTwC2j.cjs +613 -0
- package/dist/fiveCbd-Dz2NouOF.js +613 -0
- package/dist/forLoveAndLemons-DqSdyD6S.js +665 -0
- package/dist/forLoveAndLemons-Ud6mPrV3.cjs +667 -0
- package/dist/{globalSearch-b0wC7ZEO.js → globalSearch-B6THR7Jx.js} +1 -1
- package/dist/{globalSearch-BTeZxvk1.cjs → globalSearch-BFvEg53C.cjs} +1 -1
- package/dist/graphql-BNW60InJ.cjs +128 -0
- package/dist/graphql-CjB8wHzm.js +74 -0
- package/dist/graphqlConfig-CYt6tWII.js +30 -0
- package/dist/graphqlConfig-DicykC-o.cjs +61 -0
- package/dist/greenpan-B_EbPkSP.js +397 -0
- package/dist/greenpan-kPE4fJgd.cjs +397 -0
- package/dist/grooveLife-Ckuir319.js +342 -0
- package/dist/grooveLife-DKSEQp1F.cjs +342 -0
- package/dist/homegrownCannabis-BVPa2pqe.js +410 -0
- package/dist/homegrownCannabis-BwIAkxuA.cjs +410 -0
- package/dist/hooks/index.cjs +39 -13
- package/dist/hooks/index.d.cts +127 -45
- package/dist/hooks/index.d.ts +124 -42
- package/dist/hooks/index.js +22 -11
- package/dist/{index-D46Rd0io.d.cts → index-B0NW9KTj.d.cts} +1 -1
- package/dist/{index-BdNKc2ix.d.cts → index-BDPWBU3h.d.cts} +1 -1
- package/dist/index-BMPtlgac.d.ts +191 -0
- package/dist/{index-BTK5uzs6.d.cts → index-Bmub8e38.d.cts} +1 -1
- package/dist/{index-BrXuc_Ck.d.cts → index-Byb45OPg.d.cts} +1 -1
- package/dist/{index-CSIOQD-A.d.ts → index-C6KdON7d.d.ts} +1 -1
- package/dist/index-C7pGDl1A.d.ts +1609 -0
- package/dist/{index-K2kNsOTw.d.cts → index-C9lgsCWp.d.cts} +32 -32
- package/dist/{index-BzgkfbNO.d.cts → index-CESxqFso.d.cts} +1 -1
- package/dist/{index-CbJZOEU4.d.ts → index-Cc-wBCn6.d.ts} +32 -32
- package/dist/{index-Cx9e-fRi.d.ts → index-CcIG01PJ.d.ts} +2 -2
- package/dist/{index-ClJ0nMsR.d.cts → index-CiWEYzXl.d.cts} +2 -2
- package/dist/{index-CKKkTsms.d.ts → index-Cqg6ltII.d.ts} +1 -1
- package/dist/{index-Cr2y08f1.d.ts → index-DOii3C6b.d.ts} +1 -1
- package/dist/index-DTu2X-YS.d.cts +1609 -0
- package/dist/index-OEifcBsm.d.cts +191 -0
- package/dist/{index-Dxpscrvz.d.ts → index-PGF8BvxQ.d.ts} +1 -1
- package/dist/{index-D2VaMPA3.d.ts → index-ylUiJvnr.d.ts} +1 -1
- package/dist/interceptors/index.cjs +2 -12
- package/dist/interceptors/index.d.cts +8 -13
- package/dist/interceptors/index.d.ts +8 -13
- package/dist/interceptors/index.js +2 -11
- package/dist/jackArcher-B39OEIj6.cjs +727 -0
- package/dist/{jackArcher-sO9EbgrZ.js → jackArcher-BwkWGybC.js} +24 -25
- package/dist/jordanCraig-CxRH_jLi.js +1786 -0
- package/dist/jordanCraig-RwmWw-jM.cjs +1786 -0
- package/dist/kindredBravely-D78VwL20.cjs +490 -0
- package/dist/kindredBravely-DQDpAzdl.js +490 -0
- package/dist/kutFromTheKloth-TcXQkIti.js +369 -0
- package/dist/kutFromTheKloth-dXRrNti0.cjs +369 -0
- package/dist/larryAndSerges-Bh5XEXsZ.js +262 -0
- package/dist/larryAndSerges-COdBzOzu.cjs +262 -0
- package/dist/leapsAndRebounds-BbXnqkl5.cjs +360 -0
- package/dist/leapsAndRebounds-mjCaH1k-.js +360 -0
- package/dist/longevityrx-DdV3v26F.cjs +320 -0
- package/dist/longevityrx-DfPDfvAt.js +320 -0
- package/dist/lookOptic-DgXFGBPP.cjs +282 -0
- package/dist/{lookOptic-Jwf7EAU8.js → lookOptic-FgVW1afF.js} +19 -20
- package/dist/mantraBrand-C5gVm3rk.cjs +750 -0
- package/dist/{mantraBrand-DoaVj837.js → mantraBrand-uV8HCDR8.js} +22 -23
- package/dist/medterra-BtDpr1Hw.cjs +583 -0
- package/dist/medterra-DgzE7-mj.js +583 -0
- package/dist/modells-CJjsxOIR.js +484 -0
- package/dist/modells-Ck5KbRFj.cjs +484 -0
- package/dist/models-BkXg5eIP.cjs +1534 -0
- package/dist/models-UZ6HszfZ.js +1281 -0
- package/dist/{nodeSelector-DybpVr-i.d.ts → nodeSelector-BxrS2S_k.d.ts} +1 -1
- package/dist/{nodeSelector-vKB44CDB.d.cts → nodeSelector-Dm4S-10n.d.cts} +1 -1
- package/dist/org-C2RrBVQR.cjs +81 -0
- package/dist/org-xMytX--e.js +38 -0
- package/dist/orgAnalyticsConfig-BJ2A1RZ-.cjs +39 -0
- package/dist/orgAnalyticsConfig-ClrFy2qH.js +14 -0
- package/dist/pressedFloral-Bteoboms.js +661 -0
- package/dist/pressedFloral-CexgV-xy.cjs +661 -0
- package/dist/search-BMOAmrmY.js +459 -0
- package/dist/search-Df0Ifneg.cjs +672 -0
- package/dist/{search-filter-types-9rTb3jMj.d.cts → search-filter-types-DosbseF3.d.cts} +1 -1
- package/dist/{search-filter-types-C-zZSpGo.d.ts → search-filter-types-fZf91Pdw.d.ts} +1 -1
- package/dist/skinPerfection-BGzq9lq-.cjs +334 -0
- package/dist/skinPerfection-BlvcEcUE.js +334 -0
- package/dist/snapSupplements-CbbGzAgO.cjs +285 -0
- package/dist/snapSupplements-kcsPAOm9.js +285 -0
- package/dist/{socialProofClasses-ky69yppk.cjs → socialProofClasses-Db8gzsfi.cjs} +1 -1
- package/dist/{socialProofClasses-DdzG1tZy.js → socialProofClasses-kwDvwLOZ.js} +1 -1
- package/dist/spanx-B4WFA_rI.js +661 -0
- package/dist/spanx-BWoE4F8b.cjs +663 -0
- package/dist/spanxStaging-BOrOjhXn.js +845 -0
- package/dist/spanxStaging-BfdfIug4.cjs +848 -0
- package/dist/{suggestionBarV2-types-Penx3Y67.js → suggestionBarV2-types-IMMOmCir.js} +1 -1
- package/dist/{suggestionBarV2-types-B3lwrENK.cjs → suggestionBarV2-types-nnGNgFvR.cjs} +1 -1
- package/dist/supergoop-22dd5_BS.js +323 -0
- package/dist/supergoop-B-a4cku2.cjs +323 -0
- package/dist/{test-types-CXVJxTeu.d.ts → test-types-C9b_OdfO.d.ts} +1 -1
- package/dist/{test-types-CuOq25VT.d.cts → test-types-CgVJtwUr.d.cts} +1 -1
- package/dist/types/index.cjs +2 -2
- package/dist/types/index.d.cts +2 -2
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +2 -2
- package/dist/types--pr1GQQx.js +154 -0
- package/dist/types-BVSyY3Hk.cjs +196 -0
- package/dist/{uniqueVintage-BWkDgt1z.js → uniqueVintage-CJXiNNe7.js} +19 -20
- package/dist/uniqueVintage-D0jzJWlo.cjs +1213 -0
- package/dist/useMessageInterceptor-B87e3yu3.cjs +33 -0
- package/dist/useMessageInterceptor-Bb7YRaWk.js +25 -0
- package/dist/userIdentityContext-BPqvVIg0.d.cts +20 -0
- package/dist/userIdentityContext-wbCRmlzp.d.ts +20 -0
- package/dist/utils-C9ZSCx12.js +888 -0
- package/dist/utils-D5HO61hG.cjs +1016 -0
- package/dist/variantInfo-DbVxA1yE.js +1 -0
- package/dist/variantInfo-orXoPBCU.cjs +0 -0
- package/dist/venaCbd-Bhhu_qUf.cjs +365 -0
- package/dist/venaCbd-CanovPS_.js +365 -0
- package/dist/westonJonBoucher-BC0x1ktI.cjs +422 -0
- package/dist/{westonJonBoucher-BAGXegsX.js → westonJonBoucher-BUu1_wP1.js} +19 -20
- package/dist/wineEnthusiast-BlCryfil.cjs +940 -0
- package/dist/{wineEnthusiast-EJbhMeKQ.js → wineEnthusiast-Ck1x5iJq.js} +19 -20
- package/dist/wolfMattress-D9Mjq-HP.js +372 -0
- package/dist/wolfMattress-JssghhC-.cjs +372 -0
- package/dist/wolfTactical-C6exYhL7.cjs +349 -0
- package/dist/wolfTactical-CnV3KQdI.js +349 -0
- package/package.json +100 -19
- package/src/{adapters/spiffy/commerce/api.ts → application/commerce-api.ts} +31 -23
- package/src/application/models/colorsConfig.ts +18 -18
- package/src/application/models/frontendConfig.ts +3 -3
- package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +1 -1
- package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +1 -1
- package/src/application/models/index.ts +0 -2
- package/src/application/models/localStorageEventListener.ts +2 -2
- package/src/application/models/utils/snakeToCamelTransformer.ts +8 -8
- package/src/application/models/validators/validateGraphQLColorsConfig.ts +0 -21
- package/src/application/models/validators/validateGraphQLFrontendConfig.ts +2 -2
- package/src/application/utils/analyticsUtils.ts +53 -22
- package/src/application/utils/cdnUtils.ts +11 -0
- package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +15 -0
- package/src/atoms/app/index.ts +7 -17
- package/src/atoms/app/variant.ts +13 -4
- package/src/atoms/chat/chatState.ts +28 -18
- package/src/atoms/chat/messageQueue.ts +36 -5
- package/src/atoms/chat/replies.ts +45 -37
- package/src/atoms/envive/enviveConfig.ts +10 -6
- package/src/atoms/org/graphqlConfig.ts +7 -1
- package/src/atoms/org/index.ts +3 -3
- package/src/atoms/org/newOrgConfigAtom.ts +8 -0
- package/src/atoms/org/orgPageConfig.ts +6 -5
- package/src/atoms/search/chatSearch.ts +11 -5
- package/src/atoms/search/searchAPI.ts +22 -12
- package/src/atoms/search/searchServiceAdapter.ts +25 -0
- package/src/contexts/amplitudeContext.tsx +466 -0
- package/src/contexts/cdnContext.tsx +48 -0
- package/src/contexts/chatContext.tsx +15 -12
- package/src/contexts/enviveConfigContext.tsx +22 -17
- package/src/contexts/enviveCssContext.tsx +34 -5
- package/src/contexts/featureFlagContext.tsx +193 -0
- package/src/contexts/featureFlagServiceContext.tsx +87 -0
- package/src/contexts/graphqlContext.tsx +165 -0
- package/src/contexts/index.ts +13 -3
- package/src/contexts/localStorageContext.tsx +159 -0
- package/src/contexts/newOrgConfigContext.tsx +104 -0
- package/src/contexts/orgConfigContext.tsx +92 -92
- package/src/contexts/searchContext.tsx +187 -0
- package/src/contexts/sessionStorageContext.tsx +80 -0
- package/src/contexts/shopifyUrlContext.tsx +97 -0
- package/src/contexts/types.ts +12 -8
- package/src/contexts/userIdentityContext.tsx +197 -0
- package/src/events/registerAnalyticsListeners.ts +32 -38
- package/src/hooks/index.ts +10 -4
- package/src/hooks/useAmplitudeOperations.ts +35 -0
- package/src/hooks/useAppDetails.ts +49 -0
- package/src/hooks/useCdnOperations.ts +16 -0
- package/src/hooks/useChatToggle.ts +5 -4
- package/src/hooks/useChatToggleAnalytics.ts +15 -0
- package/src/hooks/useGraphQLConfig.ts +63 -0
- package/src/hooks/useIdentifyUser.ts +33 -0
- package/src/hooks/useImageResolver.ts +7 -7
- package/src/hooks/useLocalStorageOperations.ts +92 -0
- package/src/hooks/useNewOrgConfig.ts +3 -76
- package/src/hooks/useSearch.tsx +21 -18
- package/src/hooks/useSearchOperations.ts +97 -0
- package/src/hooks/useSessionStorageOperations.ts +28 -0
- package/src/hooks/useShopifyUrlOperations.ts +45 -0
- package/src/hooks/useTrackComponentVisibleEvent.ts +12 -8
- package/src/hooks/useUpdateAnalyticsProps.ts +28 -17
- package/src/interceptors/index.ts +0 -1
- package/src/interceptors/useMessageInterceptor.ts +5 -8
- package/src/merchants/bandolier/bandolier.ts +10 -28
- package/src/merchants/carpe/carpe.ts +5 -8
- package/src/merchants/coterie/coterie.ts +3 -6
- package/src/merchants/default.ts +73 -70
- package/src/merchants/domInsertion.ts +30 -0
- package/src/merchants/dreamlandBaby/dreamlandBaby.ts +12 -6
- package/src/merchants/fiveCbd/fiveCbd.ts +7 -13
- package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +44 -14
- package/src/merchants/greenpan/greenpan.ts +6 -12
- package/src/merchants/gridInsertion.ts +19 -0
- package/src/merchants/grooveLife/grooveLife.ts +13 -7
- package/src/merchants/homegrownCannabis/homegrownCannabis.ts +12 -6
- package/src/merchants/jackArcher/jackArcher.ts +26 -11
- package/src/merchants/jordanCraig/jordanCraig.ts +5 -5
- package/src/merchants/kindredBravely/kindredBravely.ts +16 -7
- package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +9 -6
- package/src/merchants/larryAndSerges/larryAndSerges.ts +6 -2
- package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +7 -7
- package/src/merchants/longevityrx/longevityrx.ts +14 -8
- package/src/merchants/lookOptic/lookOptic.ts +6 -6
- package/src/merchants/mantraBrand/mantraBrand.ts +14 -8
- package/src/merchants/medterra/medterra.ts +14 -11
- package/src/merchants/modells/modells.ts +6 -9
- package/src/merchants/pressedFloral/pressedFloral.ts +7 -13
- package/src/merchants/skinPerfection/skinPerfection.ts +13 -7
- package/src/merchants/snapSupplements/snapSupplements.ts +13 -10
- package/src/merchants/spanx/spanx.ts +6 -6
- package/src/merchants/spanx/spanxStaging.ts +6 -12
- package/src/merchants/supergoop/supergoop.ts +11 -12
- package/src/merchants/uniqueVintage/uniqueVintage.ts +6 -6
- package/src/merchants/venaCbd/venaCbd.ts +6 -9
- package/src/merchants/westonJonBoucher/westonJonBoucher.ts +6 -6
- package/src/merchants/wineEnthusiast/wineEnthusiast.ts +6 -6
- package/src/merchants/wolfMattress/wolfMattress.ts +3 -3
- package/src/merchants/wolfTactical/wolfTactical.ts +5 -11
- package/src/types/config-versions.ts +6 -0
- package/src/types.ts +0 -53
- package/dist/adapters/amplitude/index.cjs +0 -14
- package/dist/adapters/amplitude/index.d.cts +0 -6
- package/dist/adapters/amplitude/index.d.ts +0 -6
- package/dist/adapters/amplitude/index.js +0 -12
- package/dist/api-B2euFL-5.cjs +0 -269
- package/dist/api-XRr_lAG6.js +0 -190
- package/dist/application/config/index.cjs +0 -43
- package/dist/application/config/index.d.cts +0 -15
- package/dist/application/config/index.d.ts +0 -15
- package/dist/application/config/index.js +0 -41
- package/dist/application/service/customerService/index.cjs +0 -4
- package/dist/application/service/customerService/index.d.cts +0 -3
- package/dist/application/service/customerService/index.d.ts +0 -3
- package/dist/application/service/customerService/index.js +0 -4
- package/dist/application/service/index.cjs +0 -42
- package/dist/application/service/index.d.cts +0 -413
- package/dist/application/service/index.d.ts +0 -413
- package/dist/application/service/index.js +0 -12
- package/dist/atomStore-ONYy0XuA.d.cts +0 -24
- package/dist/atomStore-kOKiEcNl.d.ts +0 -24
- package/dist/bandolier-Da4wt6sm.cjs +0 -1230
- package/dist/bandolier-DzEmYWcz.js +0 -1230
- package/dist/carpe-AXipz0Xl.cjs +0 -608
- package/dist/carpe-CaUKwcEa.js +0 -606
- package/dist/contexts-CtRlNXaS.js +0 -7674
- package/dist/contexts-CtgmnYNn.cjs +0 -9088
- package/dist/coterie-oKHAT0lx.js +0 -240
- package/dist/customerService-BG1uNZZ1.cjs +0 -36
- package/dist/customerService-BHQRnLhC.js +0 -23
- package/dist/default-B4fINY5_.cjs +0 -4
- package/dist/default-BrTQxA0c.js +0 -4
- package/dist/default-C3LrcbZB.cjs +0 -199
- package/dist/default-CXkYrLEr.js +0 -176
- package/dist/dreamlandBaby-BEqt0eKF.js +0 -347
- package/dist/dreamlandBaby-DBDjEJCc.cjs +0 -347
- package/dist/featureFlagService-5wdmW02z.d.ts +0 -18
- package/dist/featureFlagService-DaelrXEk.d.cts +0 -18
- package/dist/fiveCbd-CdqNt16h.cjs +0 -614
- package/dist/fiveCbd-D6B-sgnX.js +0 -614
- package/dist/forLoveAndLemons-C7GsJG7f.cjs +0 -668
- package/dist/forLoveAndLemons-gNDlMtPR.js +0 -666
- package/dist/greenpan-B5AaW4M_.js +0 -398
- package/dist/greenpan-DrORpYms.cjs +0 -398
- package/dist/grooveLife-BJqsfH2H.cjs +0 -343
- package/dist/grooveLife-xIUmDM8s.js +0 -343
- package/dist/homegrownCannabis-8TZ21u6L.cjs +0 -411
- package/dist/homegrownCannabis-BtMuEvbZ.js +0 -411
- package/dist/index-CKUpnyJQ.d.ts +0 -72
- package/dist/index-DFL1dIT_.d.ts +0 -7
- package/dist/index-DXpgMVpp.d.ts +0 -749
- package/dist/index-MFbPQ8Ji.d.ts +0 -95
- package/dist/index-VHFMGkO-.d.cts +0 -72
- package/dist/index-VSFakgAI.d.cts +0 -95
- package/dist/index-aNW5V9fh.d.cts +0 -749
- package/dist/index-zZjcds15.d.cts +0 -7
- package/dist/jackArcher-WtkbLBZj.cjs +0 -728
- package/dist/jordanCraig-471FcgqF.cjs +0 -1787
- package/dist/jordanCraig-DNOncplU.js +0 -1787
- package/dist/kindredBravely-BlLyHGMX.cjs +0 -491
- package/dist/kindredBravely-cqZ4OvXp.js +0 -491
- package/dist/kutFromTheKloth-3mOIryvt.cjs +0 -370
- package/dist/kutFromTheKloth-DtVNCMKa.js +0 -370
- package/dist/larryAndSerges-88Bvq-Us.cjs +0 -262
- package/dist/larryAndSerges-cvak6May.js +0 -262
- package/dist/leapsAndRebounds-Dmf8eUPq.js +0 -361
- package/dist/leapsAndRebounds-iWKc923H.cjs +0 -361
- package/dist/logger-Dln20ans.cjs +0 -26
- package/dist/logger-pdEEY8T2.js +0 -20
- package/dist/longevityrx-BTMI9vn-.js +0 -321
- package/dist/longevityrx-CobPyigd.cjs +0 -321
- package/dist/lookOptic-C4H_c0JZ.cjs +0 -283
- package/dist/mantraBrand-CySGqbn6.cjs +0 -751
- package/dist/medterra-BnZ5p27n.cjs +0 -584
- package/dist/medterra-DaICcPPp.js +0 -584
- package/dist/modells-CZ1L6dD_.js +0 -485
- package/dist/modells-DF0SndHr.cjs +0 -485
- package/dist/orgConfigResults--dAwtw3W.d.ts +0 -881
- package/dist/orgConfigResults-BL0XBA6x.d.cts +0 -881
- package/dist/pressedFloral-B3t2cYzs.cjs +0 -662
- package/dist/pressedFloral-Dsws2Kfb.js +0 -662
- package/dist/skinPerfection-CILQM2bR.cjs +0 -335
- package/dist/skinPerfection-DmQCntRf.js +0 -335
- package/dist/snapSupplements--X_v0KRM.js +0 -286
- package/dist/snapSupplements-Djuzl0Ed.cjs +0 -286
- package/dist/spanx-Bo81yXSF.cjs +0 -664
- package/dist/spanx-DauxB8KE.js +0 -662
- package/dist/spanxStaging-BucYQvR1.cjs +0 -849
- package/dist/spanxStaging-CfXUukdP.js +0 -846
- package/dist/supergoop-8qa_NV3F.cjs +0 -338
- package/dist/supergoop-DOaui-A6.js +0 -336
- package/dist/types-CD4LFta-.d.cts +0 -33
- package/dist/types-CGC6Oozp.cjs +0 -231
- package/dist/types-CnTCkyvK.js +0 -177
- package/dist/types-DBdI0j89.d.ts +0 -33
- package/dist/uniqueVintage-DAne8XcL.cjs +0 -1214
- package/dist/variant-CC1nrywd.d.ts +0 -13
- package/dist/variant-CQTuQQSq.d.cts +0 -13
- package/dist/venaCbd-B1HO_Pkr.cjs +0 -366
- package/dist/venaCbd-CnByO-5R.js +0 -366
- package/dist/westonJonBoucher-BRfHWMbs.cjs +0 -423
- package/dist/wineEnthusiast-DW8JVwV8.cjs +0 -941
- package/dist/wolfMattress-B6INZNRJ.cjs +0 -373
- package/dist/wolfMattress-D9P7ErH_.js +0 -373
- package/dist/wolfTactical-C5Pupi3J.js +0 -350
- package/dist/wolfTactical-TMthZM93.cjs +0 -350
- package/src/adapters/amplitude/amplitudeAdapter.ts +0 -477
- package/src/adapters/amplitude/index.ts +0 -2
- package/src/adapters/amplitude/stubAmplitudeAdapter.ts +0 -34
- package/src/adapters/spiffy/commerce/graphql.ts +0 -219
- package/src/application/config/generalStaticConfig.ts +0 -40
- package/src/application/config/index.ts +0 -1
- package/src/application/models/domMutationContinuation.ts +0 -7
- package/src/application/models/domObservationStrategy.ts +0 -9
- package/src/application/service/cachingService.ts +0 -84
- package/src/application/service/cdnService.ts +0 -20
- package/src/application/service/customerService/index.ts +0 -8
- package/src/application/service/customerService/providers/UnsupportedCustomerService.ts +0 -15
- package/src/application/service/domMutationObserver.ts +0 -320
- package/src/application/service/domMutations/GridInsertionService.ts +0 -123
- package/src/application/service/domMutations/dataLayer/dataLayerEventsListener.ts +0 -99
- package/src/application/service/domMutations/domInsertionService.ts +0 -90
- package/src/application/service/domMutations/domMutationListener.ts +0 -15
- package/src/application/service/domMutations/domMutationListenerState.ts +0 -52
- package/src/application/service/domMutations/floatingChat/embeddedChatsPlacementsListener.ts +0 -41
- package/src/application/service/domMutations/gladly/gladlyListener.ts +0 -61
- package/src/application/service/domMutations/spiffy/orgs/common/kustomerVisibilityListener.ts +0 -41
- package/src/application/service/domMutations/spiffy/orgs/common/orgsCommonDataLayerListener.ts +0 -119
- package/src/application/service/featureFlagService.ts +0 -130
- package/src/application/service/graphqlConfigService.ts +0 -59
- package/src/application/service/index.ts +0 -32
- package/src/application/service/kustomerIntegrationService.ts +0 -111
- package/src/application/service/localStorageService.ts +0 -77
- package/src/application/service/pageVariantService.ts +0 -866
- package/src/application/service/searchService.ts +0 -147
- package/src/application/service/sessionStorageService.ts +0 -27
- package/src/application/service/shopifyUrlService.ts +0 -63
- package/src/application/service/userIdentityService.ts +0 -114
- package/src/application/service/windowChatToggleService.ts +0 -80
- package/src/application/service/windowDataLayerService.ts +0 -181
- package/src/application/service/windowFrontendConfigService.ts +0 -129
- package/src/atoms/org/merchantCss.ts +0 -161
- package/src/atoms/org/org.ts +0 -251
- package/src/atoms/org/orgUIConfig.ts +0 -142
- package/src/enabled-features.ts +0 -83
- package/src/hooks/useDynamicVariants.ts +0 -226
- package/src/hooks/useFileUpload.ts +0 -63
- package/src/hooks/useHideElements.ts +0 -85
- package/src/interceptors/useFormEscalation.ts +0 -57
- /package/dist/{locators-DnKpajbY.js → atomStore-CZnUUsrr.js} +0 -0
- /package/dist/{locators-CugndTUM.cjs → atomStore-KSoFS3Jj.cjs} +0 -0
- /package/dist/{utilityTypes-C4h2wgAK.cjs → locators-0YYZu9n4.cjs} +0 -0
- /package/dist/{utilityTypes-BVikejDo.js → locators-fBXS_pxP.js} +0 -0
- /package/dist/{variantInfo-CzhR5W6h.js → utilityTypes-8sETsYPk.js} +0 -0
- /package/dist/{variantInfo-CNRTY0gH.cjs → utilityTypes-COShxVir.cjs} +0 -0
- /package/src/{application/service/customerService/types.ts → types/customerService.ts} +0 -0
- /package/src/{adapters/spiffy/commerce → types}/exceptions/sessionExceptions.ts +0 -0
- /package/src/{adapters/spiffy/commerce → types}/exceptions/unsupportedProductExceptions.ts +0 -0
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import Logger from "src/application/logging/logger";
|
|
2
|
-
import { applyOverrides, Override } from "src/application/utils/overrides";
|
|
3
|
-
import { getAtomStore } from "src/atoms/atomStore/atomStore";
|
|
4
|
-
import { identifyingPrefixAtom } from "src/atoms/envive/enviveConfig";
|
|
5
|
-
import {
|
|
6
|
-
colorsConfigAtom,
|
|
7
|
-
frontendConfigAtom,
|
|
8
|
-
} from "src/atoms/org/graphqlConfig";
|
|
9
|
-
import { orgPageConfigAtom } from "src/atoms/org/orgPageConfig";
|
|
10
|
-
import { orgUIConfigAtom } from "src/atoms/org/orgUIConfig";
|
|
11
|
-
import {
|
|
12
|
-
ColorMapping,
|
|
13
|
-
OrgUIConfig,
|
|
14
|
-
WidgetConfig,
|
|
15
|
-
WidgetMountingConfig,
|
|
16
|
-
} from "src/contexts/types";
|
|
17
|
-
|
|
18
|
-
type CustomizableFrontendConfig = {
|
|
19
|
-
orgUIConfig: OrgUIConfig | undefined;
|
|
20
|
-
colorsConfig: ColorMapping;
|
|
21
|
-
mountingConfigs: Record<string, WidgetMountingConfig>;
|
|
22
|
-
widgetConfigs: Record<string, WidgetConfig>;
|
|
23
|
-
};
|
|
24
|
-
type FrontendConfigOverrides = Override<CustomizableFrontendConfig>;
|
|
25
|
-
|
|
26
|
-
class WindowFrontendConfigService {
|
|
27
|
-
private static instance: WindowFrontendConfigService | undefined;
|
|
28
|
-
|
|
29
|
-
private isInitialized = false;
|
|
30
|
-
|
|
31
|
-
static getSingletonInstance(): WindowFrontendConfigService {
|
|
32
|
-
if (!this.instance) {
|
|
33
|
-
this.instance = new WindowFrontendConfigService();
|
|
34
|
-
}
|
|
35
|
-
return this.instance;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
init() {
|
|
39
|
-
if (this.isInitialized) return;
|
|
40
|
-
this.isInitialized = true;
|
|
41
|
-
|
|
42
|
-
try {
|
|
43
|
-
const atomStore = getAtomStore();
|
|
44
|
-
const identifyingPrefix = atomStore.get(identifyingPrefixAtom);
|
|
45
|
-
if (!window[identifyingPrefix]) {
|
|
46
|
-
window[identifyingPrefix] = {} as Window[typeof identifyingPrefix];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// Attach an explicit apply function to be called by the host page
|
|
50
|
-
const apply = (overrides: FrontendConfigOverrides[]) => {
|
|
51
|
-
Logger.logDebug("[spiffy-ai] applyFrontendConfigOverrides invoked");
|
|
52
|
-
WindowFrontendConfigService.applyOverridesToFrontendConfig(overrides);
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
window[identifyingPrefix].applyFrontendConfigOverrides = apply;
|
|
56
|
-
|
|
57
|
-
Logger.logDebug(
|
|
58
|
-
"[spiffy-ai] FrontendConfig overrides apply function attached"
|
|
59
|
-
);
|
|
60
|
-
} catch (e) {
|
|
61
|
-
Logger.logError(
|
|
62
|
-
"[spiffy-ai] Failed to attach FrontendConfig overrides apply function",
|
|
63
|
-
e
|
|
64
|
-
);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
private static async applyOverridesToFrontendConfig(
|
|
69
|
-
overrides: FrontendConfigOverrides[]
|
|
70
|
-
) {
|
|
71
|
-
const atomStore = getAtomStore();
|
|
72
|
-
try {
|
|
73
|
-
// Get the current frontend config(s) from the atoms once
|
|
74
|
-
const frontendConfig = await atomStore.get(frontendConfigAtom);
|
|
75
|
-
// Get the orgPageConfig for widgetConfigs and mountingConfigs, but don't write to it
|
|
76
|
-
// If you use frontendConfigAtom to get the mountingConfigs and widgetConfigs,
|
|
77
|
-
// you will get {}, which are not the full version of the mountingConfigs and widgetConfigs
|
|
78
|
-
const orgPageConfig = await atomStore.get(orgPageConfigAtom);
|
|
79
|
-
|
|
80
|
-
let currentConfig: CustomizableFrontendConfig = {
|
|
81
|
-
orgUIConfig: atomStore.get(orgUIConfigAtom),
|
|
82
|
-
colorsConfig: (await atomStore.get(colorsConfigAtom)) as ColorMapping,
|
|
83
|
-
mountingConfigs: orgPageConfig.mountingConfigs,
|
|
84
|
-
widgetConfigs: orgPageConfig.widgetConfigs,
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
Logger.logInfo("[spiffy-ai] base config", {
|
|
88
|
-
baseConfig: currentConfig,
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
for (let i = 0; i < overrides.length; i += 1) {
|
|
92
|
-
const currentOverride = overrides[i];
|
|
93
|
-
currentConfig = applyOverrides<CustomizableFrontendConfig>(
|
|
94
|
-
currentConfig,
|
|
95
|
-
currentOverride,
|
|
96
|
-
{
|
|
97
|
-
arrayStrategy: "mergeByIndex",
|
|
98
|
-
}
|
|
99
|
-
);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Update the atoms with the new frontend config(s)
|
|
103
|
-
if (currentConfig.orgUIConfig) {
|
|
104
|
-
atomStore.set(orgUIConfigAtom, currentConfig.orgUIConfig);
|
|
105
|
-
}
|
|
106
|
-
atomStore.set(colorsConfigAtom, currentConfig.colorsConfig);
|
|
107
|
-
// Write to the frontendConfigAtom to update the mountingConfigs and widgetConfigs
|
|
108
|
-
// This is the only way to update the mountingConfigs and widgetConfigs
|
|
109
|
-
// because the orgPageConfigAtom write only updates the pageVariants
|
|
110
|
-
atomStore.set(frontendConfigAtom, {
|
|
111
|
-
...frontendConfig,
|
|
112
|
-
mountingConfigs: currentConfig.mountingConfigs,
|
|
113
|
-
widgetConfigs: currentConfig.widgetConfigs,
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
Logger.logInfo("[spiffy-ai] atoms updated via overrides", {
|
|
117
|
-
currentConfig,
|
|
118
|
-
});
|
|
119
|
-
} catch (e) {
|
|
120
|
-
Logger.logError(
|
|
121
|
-
"[spiffy-ai] Failed to apply FrontendConfig overrides",
|
|
122
|
-
e
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
export const initWindowFrontendConfigOverridesApplyFunction = () =>
|
|
129
|
-
WindowFrontendConfigService.getSingletonInstance().init();
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { atom } from "jotai";
|
|
2
|
-
import { ColorNames } from "src/contexts/types";
|
|
3
|
-
import { orgUIConfigAtom } from "src/atoms/org/orgUIConfig";
|
|
4
|
-
import {
|
|
5
|
-
colorsConfigAtom,
|
|
6
|
-
internalGraphQLColorsConfigAtom,
|
|
7
|
-
} from "src/atoms/org/graphqlConfig";
|
|
8
|
-
|
|
9
|
-
const tailwindStyles = `@tailwind base;
|
|
10
|
-
@tailwind components;
|
|
11
|
-
@tailwind utilities;
|
|
12
|
-
|
|
13
|
-
@layer utilities {
|
|
14
|
-
/* Provides a utility class to disable scroll bars */
|
|
15
|
-
/* Chrome, Safari and Opera */
|
|
16
|
-
.spiffy-tw-no-scrollbar::-webkit-scrollbar {
|
|
17
|
-
display: none;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.spiffy-tw-no-scrollbar {
|
|
21
|
-
-ms-overflow-style: none; /* IE and Edge */
|
|
22
|
-
scrollbar-width: none; /* Firefox */
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.spiffy-tw-typography-ul,
|
|
26
|
-
.spiffy-tw-typography-ol {
|
|
27
|
-
list-style: inherit;
|
|
28
|
-
margin: 0;
|
|
29
|
-
padding-left: 24px;
|
|
30
|
-
line-height: 4px;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/*
|
|
35
|
-
* TODO: this needs to be re-scoped to target the application root instead
|
|
36
|
-
* of the individual components.
|
|
37
|
-
*/
|
|
38
|
-
#spiffy-ai-container,
|
|
39
|
-
#spiffy-ai-chat-preview,
|
|
40
|
-
#spiffy-ai-chat-preview-contents,
|
|
41
|
-
#spiffy-ai-floating-button {
|
|
42
|
-
font-family: 'Inter Variable', sans-serif;
|
|
43
|
-
h1,
|
|
44
|
-
h2,
|
|
45
|
-
h3,
|
|
46
|
-
h4,
|
|
47
|
-
h5,
|
|
48
|
-
h6 {
|
|
49
|
-
font-family: Poppins, sans-serif;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/* inter-latin-wght-normal */
|
|
54
|
-
@font-face {
|
|
55
|
-
font-family: 'Inter Variable';
|
|
56
|
-
font-style: normal;
|
|
57
|
-
font-display: swap;
|
|
58
|
-
font-weight: 100 900;
|
|
59
|
-
src: url(https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@latest/latin-wght-normal.woff2)
|
|
60
|
-
format('woff2-variations');
|
|
61
|
-
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
|
|
62
|
-
U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/* inter-latin-wght-italic */
|
|
66
|
-
@font-face {
|
|
67
|
-
font-family: 'Inter Variable';
|
|
68
|
-
font-style: italic;
|
|
69
|
-
font-display: swap;
|
|
70
|
-
font-weight: 100 900;
|
|
71
|
-
src: url(https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@latest/latin-wght-italic.woff2)
|
|
72
|
-
format('woff2-variations');
|
|
73
|
-
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
|
|
74
|
-
U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/* poppins-latin-400-normal */
|
|
78
|
-
@font-face {
|
|
79
|
-
font-family: 'Poppins';
|
|
80
|
-
font-style: normal;
|
|
81
|
-
font-display: swap;
|
|
82
|
-
font-weight: 400;
|
|
83
|
-
src: url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-400-normal.woff2)
|
|
84
|
-
format('woff2'),
|
|
85
|
-
url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-400-normal.woff)
|
|
86
|
-
format('woff');
|
|
87
|
-
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
|
|
88
|
-
U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
|
|
89
|
-
U+FFFD;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/* poppins-latin-500-normal */
|
|
93
|
-
@font-face {
|
|
94
|
-
font-family: 'Poppins';
|
|
95
|
-
font-style: normal;
|
|
96
|
-
font-display: swap;
|
|
97
|
-
font-weight: 500;
|
|
98
|
-
src: url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-500-normal.woff2)
|
|
99
|
-
format('woff2'),
|
|
100
|
-
url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-500-normal.woff)
|
|
101
|
-
format('woff');
|
|
102
|
-
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
|
|
103
|
-
U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
|
|
104
|
-
U+FFFD;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/* poppins-latin-600-normal */
|
|
108
|
-
@font-face {
|
|
109
|
-
font-family: 'Poppins';
|
|
110
|
-
font-style: normal;
|
|
111
|
-
font-display: swap;
|
|
112
|
-
font-weight: 600;
|
|
113
|
-
src: url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-600-normal.woff2)
|
|
114
|
-
format('woff2'),
|
|
115
|
-
url(https://cdn.jsdelivr.net/fontsource/fonts/poppins@latest/latin-600-normal.woff)
|
|
116
|
-
format('woff');
|
|
117
|
-
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
|
|
118
|
-
U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
|
|
119
|
-
U+FFFD;
|
|
120
|
-
}`;
|
|
121
|
-
|
|
122
|
-
export const orgMerchantCssAtom = atom(async (get) => {
|
|
123
|
-
const orgUIConfig = get(orgUIConfigAtom);
|
|
124
|
-
const colors = await get(internalGraphQLColorsConfigAtom);
|
|
125
|
-
const merchantThemeCss = colors
|
|
126
|
-
? `
|
|
127
|
-
${tailwindStyles}
|
|
128
|
-
|
|
129
|
-
* {
|
|
130
|
-
--spiffy-colors-text-primary: ${colors[ColorNames.TextPrimary]};
|
|
131
|
-
--spiffy-colors-text-secondary: ${colors[ColorNames.TextSecondary]};
|
|
132
|
-
--spiffy-colors-text-accent: ${colors[ColorNames.TextAccent]};
|
|
133
|
-
--spiffy-colors-text-link: ${colors[ColorNames.TextLink]};
|
|
134
|
-
--spiffy-colors-text-light: ${colors[ColorNames.TextLight]};
|
|
135
|
-
--spiffy-colors-background-primary: ${colors[ColorNames.BackgroundPrimary]};
|
|
136
|
-
--spiffy-colors-background-secondary: ${
|
|
137
|
-
colors[ColorNames.BackgroundSecondary]
|
|
138
|
-
};
|
|
139
|
-
--spiffy-colors-background-secondary-dark: ${
|
|
140
|
-
colors[ColorNames.BackgroundSecondaryDark]
|
|
141
|
-
};
|
|
142
|
-
--spiffy-colors-background-tertiary: ${colors[ColorNames.BackgroundTertiary]};
|
|
143
|
-
--spiffy-colors-background-dark: ${colors[ColorNames.BackgroundDark]};
|
|
144
|
-
--spiffy-colors-background-light: ${colors[ColorNames.BackgroundLight]};
|
|
145
|
-
--spiffy-colors-background-saturated: ${
|
|
146
|
-
colors[ColorNames.BackgroundSaturated]
|
|
147
|
-
};
|
|
148
|
-
--spiffy-colors-border-light: ${colors[ColorNames.BorderLight]};
|
|
149
|
-
--spiffy-colors-border-medium: ${colors[ColorNames.BorderMedium]};
|
|
150
|
-
--spiffy-colors-border-dark: ${colors[ColorNames.BorderDark]};
|
|
151
|
-
--spiffy-colors-border-outline: ${colors[ColorNames.BorderOutline]};
|
|
152
|
-
--spiffy-colors-accent-primary: ${colors[ColorNames.AccentPrimary]};
|
|
153
|
-
--spiffy-colors-accent-secondary: ${colors[ColorNames.AccentSecondary]};
|
|
154
|
-
}`
|
|
155
|
-
: `
|
|
156
|
-
* {}`;
|
|
157
|
-
|
|
158
|
-
const merchantOverrideCss = orgUIConfig?.merchantOverrideCss;
|
|
159
|
-
|
|
160
|
-
return `${merchantThemeCss} ${merchantOverrideCss}`;
|
|
161
|
-
});
|
package/src/atoms/org/org.ts
DELETED
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
2
|
-
import Logger from "src/application/logging/logger";
|
|
3
|
-
import { ContextSourceEnum } from "@spiffy-ai/commerce-api-client";
|
|
4
|
-
import { atom } from "jotai";
|
|
5
|
-
import { atomWithStorage, createJSONStorage } from "jotai/utils";
|
|
6
|
-
import CommerceApiClient from "src/adapters/spiffy/commerce/api";
|
|
7
|
-
import { OrgConfig } from "src/application/models/api/orgConfigResults";
|
|
8
|
-
import { FeatureFlagService } from "src/application/service/featureFlagService";
|
|
9
|
-
import { UserIdentityService } from "src/application/service/userIdentityService";
|
|
10
|
-
import { AtomStore, getAtomStore } from "src/atoms/atomStore/atomStore";
|
|
11
|
-
import { PerfMetricsEvents, logPerfMetricAtom } from "src/atoms/chat";
|
|
12
|
-
import { orgAnalyticsConfigAtom } from "src/atoms/org/orgAnalyticsConfig";
|
|
13
|
-
import { colorsConfigAtom, frontendConfigAtom } from "./graphqlConfig";
|
|
14
|
-
import { GraphQLConfigService } from "src/application/service/graphqlConfigService";
|
|
15
|
-
import {
|
|
16
|
-
orgLevelApiKeyAtom,
|
|
17
|
-
orgShortNameAtom as enviveOrgShortNameAtom,
|
|
18
|
-
contextSourceAtom,
|
|
19
|
-
baseUrlAtom,
|
|
20
|
-
} from "src/atoms/envive/enviveConfig";
|
|
21
|
-
|
|
22
|
-
const internalApiKeyAtom = atom<string | undefined>(undefined);
|
|
23
|
-
const internalEndpointURLAtom = atom<string | undefined>(undefined);
|
|
24
|
-
const internalSourceAtom = atom<ContextSourceEnum | undefined>(undefined);
|
|
25
|
-
|
|
26
|
-
export const getApiKeyEnvVar = (shortName: string): string =>
|
|
27
|
-
`VITE_${shortName.replace(/-/g, "_").toUpperCase()}_API_KEY`;
|
|
28
|
-
|
|
29
|
-
export const apiKeyAtom = atom(
|
|
30
|
-
(get) => {
|
|
31
|
-
const apiKey = get(internalApiKeyAtom);
|
|
32
|
-
|
|
33
|
-
if (apiKey) {
|
|
34
|
-
return apiKey;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const orgLevelApiKey = get(orgLevelApiKeyAtom);
|
|
38
|
-
const orgShortName = get(enviveOrgShortNameAtom);
|
|
39
|
-
|
|
40
|
-
if (orgLevelApiKey) {
|
|
41
|
-
return orgLevelApiKey;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if (
|
|
45
|
-
window._spiffy?.publicKey &&
|
|
46
|
-
typeof window._spiffy.publicKey === "string"
|
|
47
|
-
) {
|
|
48
|
-
return window._spiffy.publicKey;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// During initial render, orgShortName might not be set yet
|
|
52
|
-
// Return undefined instead of throwing to allow for lazy initialization
|
|
53
|
-
if (!orgShortName) {
|
|
54
|
-
Logger.logWarn(
|
|
55
|
-
"[spiffy-ai] orgShortName not yet available, returning undefined for apiKey",
|
|
56
|
-
undefined
|
|
57
|
-
);
|
|
58
|
-
return undefined;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// The merchant probably forgot to set the apiKey
|
|
62
|
-
throw new Error(`[spiffy-ai]: apiKey is missing`);
|
|
63
|
-
},
|
|
64
|
-
(_, set, newVal: string | undefined) => {
|
|
65
|
-
set(internalApiKeyAtom, newVal);
|
|
66
|
-
}
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
const orgConfigStorageUtil = createJSONStorage<
|
|
70
|
-
Record<string, OrgConfig> | undefined
|
|
71
|
-
>(() => sessionStorage);
|
|
72
|
-
export const storedOrgConfigAtom = atomWithStorage(
|
|
73
|
-
"spiffy-org-config",
|
|
74
|
-
undefined,
|
|
75
|
-
orgConfigStorageUtil,
|
|
76
|
-
{
|
|
77
|
-
getOnInit: true,
|
|
78
|
-
}
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
const internalFeatureFlagServiceAtom = atom<FeatureFlagService | undefined>(
|
|
82
|
-
undefined
|
|
83
|
-
);
|
|
84
|
-
const internalOrgConfigAtom = atom<OrgConfig | undefined>(undefined);
|
|
85
|
-
const internalOrgDomainAtom = atom<string | undefined>(undefined);
|
|
86
|
-
const internalOrgIdAtom = atom<string | undefined>(undefined);
|
|
87
|
-
const internalOrgShortNameAtom = atom<string | undefined>(undefined);
|
|
88
|
-
export const featureFlagServiceAtom = atom(
|
|
89
|
-
(get) => {
|
|
90
|
-
const featureFlagService = get(internalFeatureFlagServiceAtom);
|
|
91
|
-
if (featureFlagService) {
|
|
92
|
-
return featureFlagService;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const orgConfig = get(internalOrgConfigAtom);
|
|
96
|
-
if (orgConfig) {
|
|
97
|
-
return new FeatureFlagService(orgConfig.gates);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return undefined; // Return undefined instead of throwing
|
|
101
|
-
},
|
|
102
|
-
(_, set, value: FeatureFlagService) => {
|
|
103
|
-
set(internalFeatureFlagServiceAtom, value);
|
|
104
|
-
}
|
|
105
|
-
);
|
|
106
|
-
export const orgConfigAtom = atom(
|
|
107
|
-
(get) => {
|
|
108
|
-
const orgConfig = get(internalOrgConfigAtom);
|
|
109
|
-
return orgConfig; // Return undefined if not set instead of throwing
|
|
110
|
-
},
|
|
111
|
-
(_, set, value: OrgConfig) => {
|
|
112
|
-
set(internalOrgConfigAtom, value);
|
|
113
|
-
}
|
|
114
|
-
);
|
|
115
|
-
export const orgShortNameAtom = atom(
|
|
116
|
-
(get) => {
|
|
117
|
-
const orgShortName = get(internalOrgShortNameAtom);
|
|
118
|
-
return orgShortName; // Return undefined if not set instead of throwing
|
|
119
|
-
},
|
|
120
|
-
(_, set, value: string) => {
|
|
121
|
-
set(internalOrgShortNameAtom, value);
|
|
122
|
-
}
|
|
123
|
-
);
|
|
124
|
-
export const orgDomainAtom = atom(
|
|
125
|
-
(get) => {
|
|
126
|
-
const orgDomain = get(internalOrgDomainAtom);
|
|
127
|
-
return orgDomain; // Return undefined if not set instead of throwing
|
|
128
|
-
},
|
|
129
|
-
(_, set, value: string) => {
|
|
130
|
-
set(internalOrgDomainAtom, value);
|
|
131
|
-
}
|
|
132
|
-
);
|
|
133
|
-
export const orgIdAtom = atom(
|
|
134
|
-
(get) => {
|
|
135
|
-
const orgId = get(internalOrgIdAtom);
|
|
136
|
-
return orgId; // Return undefined if not set instead of throwing
|
|
137
|
-
},
|
|
138
|
-
(_, set, value: string) => {
|
|
139
|
-
set(internalOrgIdAtom, value);
|
|
140
|
-
}
|
|
141
|
-
);
|
|
142
|
-
|
|
143
|
-
export const resetStoredOrgConfigAtom = () => {
|
|
144
|
-
const atomStore = getAtomStore();
|
|
145
|
-
atomStore.set(storedOrgConfigAtom, {});
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* This function is used to return an orgConfig corresponding to a given API key
|
|
150
|
-
*
|
|
151
|
-
* @param apiKeyOverride an optional new api key to override the current key stored in apiKeyAtom
|
|
152
|
-
*
|
|
153
|
-
* @returns The OrgAnalyticsConfig object or throws an error if the config was not successfully retrieved
|
|
154
|
-
*/
|
|
155
|
-
export const getAsyncOrgConfig = async (
|
|
156
|
-
apiKeyOverride?: string
|
|
157
|
-
): Promise<OrgConfig> => {
|
|
158
|
-
const atomStore = getAtomStore();
|
|
159
|
-
const apiKey = apiKeyOverride ?? atomStore.get(apiKeyAtom);
|
|
160
|
-
|
|
161
|
-
// If apiKey is still undefined, we need to wait or throw an error
|
|
162
|
-
if (!apiKey) {
|
|
163
|
-
throw new Error(
|
|
164
|
-
"[spiffy-ai] API key is required but not available. Ensure EnviveConfigProvider is properly set up with orgLevelApiKey or orgShortName."
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
atomStore.set(apiKeyAtom, apiKey);
|
|
169
|
-
|
|
170
|
-
atomStore.set(logPerfMetricAtom, PerfMetricsEvents.OrgConfigLoadStarted);
|
|
171
|
-
const maybeOrgConfigByApiKey = atomStore.get(storedOrgConfigAtom);
|
|
172
|
-
let maybeOrgConfig = maybeOrgConfigByApiKey?.[apiKey];
|
|
173
|
-
if (!maybeOrgConfig) {
|
|
174
|
-
const userId = UserIdentityService.getUserIdOrDefault();
|
|
175
|
-
maybeOrgConfig = await CommerceApiClient.getOrgConfig(userId);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
if (!maybeOrgConfig) {
|
|
179
|
-
throw new Error("[spiffy-ai] Org config is not defined but is required");
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
const latestConfig = maybeOrgConfig.configs?.find(
|
|
183
|
-
(config: any) => config.isLatest
|
|
184
|
-
);
|
|
185
|
-
|
|
186
|
-
if (!latestConfig) {
|
|
187
|
-
throw new Error("[spiffy-ai] no latest org config is found");
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
const orgConfig: OrgConfig = {
|
|
191
|
-
...maybeOrgConfig,
|
|
192
|
-
configs: [{ ...latestConfig }],
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
// TODO this should never be undefined, update the SDK to enforce this
|
|
196
|
-
if (!orgConfig.org) {
|
|
197
|
-
throw new Error("[spiffy-ai] orgConfig.org is not defined but is required");
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
atomStore.set(logPerfMetricAtom, PerfMetricsEvents.OrgConfigLoadEnded);
|
|
201
|
-
atomStore.set(orgShortNameAtom, orgConfig.org.org.shortName);
|
|
202
|
-
atomStore.set(orgDomainAtom, orgConfig.org.org.domain);
|
|
203
|
-
atomStore.set(orgIdAtom, orgConfig.org.org.id);
|
|
204
|
-
atomStore.set(storedOrgConfigAtom, {
|
|
205
|
-
...maybeOrgConfigByApiKey,
|
|
206
|
-
[apiKey]: orgConfig,
|
|
207
|
-
});
|
|
208
|
-
atomStore.set(orgConfigAtom, orgConfig);
|
|
209
|
-
atomStore.set(orgAnalyticsConfigAtom, {
|
|
210
|
-
...latestConfig.config,
|
|
211
|
-
});
|
|
212
|
-
atomStore.set(
|
|
213
|
-
featureFlagServiceAtom,
|
|
214
|
-
new FeatureFlagService(orgConfig.gates)
|
|
215
|
-
);
|
|
216
|
-
|
|
217
|
-
try {
|
|
218
|
-
Logger.logDebug("getAsyncOrgConfig: Starting GraphQL config fetch");
|
|
219
|
-
await GraphQLConfigService.fetchAndSetGraphQLConfig(atomStore);
|
|
220
|
-
Logger.logDebug(
|
|
221
|
-
"getAsyncOrgConfig: GraphQL config fetch completed successfully"
|
|
222
|
-
);
|
|
223
|
-
|
|
224
|
-
// Get the GraphQL config data that was just fetched and stored in atoms
|
|
225
|
-
// Note: colorsConfigAtom is async, so we need to await it
|
|
226
|
-
const colorsConfig = await atomStore.get(colorsConfigAtom);
|
|
227
|
-
const frontendConfig = atomStore.get(frontendConfigAtom);
|
|
228
|
-
|
|
229
|
-
// Merge the GraphQL config data into the orgConfig
|
|
230
|
-
const enhancedOrgConfig = {
|
|
231
|
-
...orgConfig,
|
|
232
|
-
colorsConfig,
|
|
233
|
-
frontendConfig,
|
|
234
|
-
};
|
|
235
|
-
|
|
236
|
-
Logger.logDebug("getAsyncOrgConfig: Enhanced orgConfig with GraphQL data", {
|
|
237
|
-
hasColorsConfig: !!colorsConfig,
|
|
238
|
-
hasFrontendConfig: !!frontendConfig,
|
|
239
|
-
frontendConfigKeys: frontendConfig ? Object.keys(frontendConfig) : [],
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
return enhancedOrgConfig;
|
|
243
|
-
} catch (graphqlError) {
|
|
244
|
-
Logger.logError(
|
|
245
|
-
"getAsyncOrgConfig: GraphQL config fetch failed",
|
|
246
|
-
graphqlError
|
|
247
|
-
);
|
|
248
|
-
// Don't throw here - the main org config is still valid even if GraphQL config fails
|
|
249
|
-
return orgConfig;
|
|
250
|
-
}
|
|
251
|
-
};
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { atom } from "jotai";
|
|
2
|
-
import { FeatureGates, getOrgInfo } from "src/application/models";
|
|
3
|
-
import { findCustomerServiceImpl } from "src/application/service/customerService";
|
|
4
|
-
import { CustomerServiceIntegrationMode } from "src/application/service/customerService/types";
|
|
5
|
-
import { featureFlagServiceAtom, orgShortNameAtom } from "src/atoms/org/org";
|
|
6
|
-
import { OrgUIConfig } from "src/contexts/types";
|
|
7
|
-
import { getAtomStore } from "src/atoms/atomStore/atomStore";
|
|
8
|
-
import Logger from "src/application/logging/logger";
|
|
9
|
-
|
|
10
|
-
const getCustomerServiceIntegrationMode = ({
|
|
11
|
-
integrationMode,
|
|
12
|
-
isNewFeatureEnabled,
|
|
13
|
-
}: {
|
|
14
|
-
integrationMode: CustomerServiceIntegrationMode;
|
|
15
|
-
isNewFeatureEnabled: boolean;
|
|
16
|
-
}): CustomerServiceIntegrationMode => {
|
|
17
|
-
if (integrationMode !== CustomerServiceIntegrationMode.full) {
|
|
18
|
-
return integrationMode;
|
|
19
|
-
}
|
|
20
|
-
// Only allow CustomerServiceIntegrationMode.full if `isNewFeatureEnabled` is also true
|
|
21
|
-
return isNewFeatureEnabled
|
|
22
|
-
? integrationMode
|
|
23
|
-
: CustomerServiceIntegrationMode.simple;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const internalOrgUIConfigAtom = atom<OrgUIConfig | undefined>(undefined);
|
|
27
|
-
|
|
28
|
-
export const orgUIConfigAtom = atom(
|
|
29
|
-
(get) => {
|
|
30
|
-
const orgUIConfig = get(internalOrgUIConfigAtom);
|
|
31
|
-
return orgUIConfig; // Return undefined if not set instead of throwing
|
|
32
|
-
},
|
|
33
|
-
(_, set, value: OrgUIConfig) => {
|
|
34
|
-
set(internalOrgUIConfigAtom, value);
|
|
35
|
-
}
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
export const getOrgUIConfig = async (
|
|
39
|
-
graphqlOrgUIConfig?: Omit<OrgUIConfig, "merchantOverrideCss">,
|
|
40
|
-
graphqlMerchantOverrideCss?: string
|
|
41
|
-
) => {
|
|
42
|
-
const atomStore = getAtomStore();
|
|
43
|
-
const orgShortName = atomStore.get(orgShortNameAtom);
|
|
44
|
-
if (!orgShortName) {
|
|
45
|
-
Logger.logWarn("orgShortName is undefined, cannot get org info", undefined);
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const orgInfo = await getOrgInfo(orgShortName);
|
|
50
|
-
|
|
51
|
-
const featureFlagService = atomStore.get(featureFlagServiceAtom);
|
|
52
|
-
if (!featureFlagService) {
|
|
53
|
-
Logger.logWarn(
|
|
54
|
-
"featureFlagService is undefined, cannot get feature flags",
|
|
55
|
-
undefined
|
|
56
|
-
);
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const isNewFeatureEnabled = featureFlagService.isFeatureGateEnabled(
|
|
61
|
-
FeatureGates.IsNewFeatureEnabled
|
|
62
|
-
);
|
|
63
|
-
const enableWatermark = featureFlagService.isFeatureGateEnabled(
|
|
64
|
-
FeatureGates.IsWatermarkEnabled
|
|
65
|
-
);
|
|
66
|
-
const userQueryAwaysEnabled = featureFlagService.isFeatureGateEnabled(
|
|
67
|
-
FeatureGates.IsUserQueryAlwaysEnabled
|
|
68
|
-
);
|
|
69
|
-
const isGraphQLUIConfigsEnabled = featureFlagService.isFeatureGateEnabled(
|
|
70
|
-
FeatureGates.IsGraphQLUIConfigsEnabled
|
|
71
|
-
);
|
|
72
|
-
const isGraphQLComponentConfigsEnabled =
|
|
73
|
-
featureFlagService.isFeatureGateEnabled(
|
|
74
|
-
FeatureGates.IsGraphQLComponentConfigsEnabled
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
const localOrgUIConfig = orgInfo.orgUIConfig();
|
|
78
|
-
let orgUIConfig: Partial<OrgUIConfig> = { ...localOrgUIConfig };
|
|
79
|
-
|
|
80
|
-
if (isGraphQLUIConfigsEnabled && graphqlMerchantOverrideCss) {
|
|
81
|
-
orgUIConfig = {
|
|
82
|
-
...orgUIConfig,
|
|
83
|
-
merchantOverrideCss: graphqlMerchantOverrideCss,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if (isGraphQLComponentConfigsEnabled && graphqlOrgUIConfig) {
|
|
88
|
-
orgUIConfig = {
|
|
89
|
-
...orgUIConfig,
|
|
90
|
-
...graphqlOrgUIConfig,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
Logger.logInfo("[spiffy-ai] Feature gate enableWatermark check", {
|
|
95
|
-
enableWatermark,
|
|
96
|
-
floatingChatConfig: orgUIConfig.floatingChatConfig,
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
const updatedOrgUIConfig: OrgUIConfig = {
|
|
100
|
-
...orgUIConfig,
|
|
101
|
-
conversationalSearch: orgUIConfig.conversationalSearch
|
|
102
|
-
? {
|
|
103
|
-
...orgUIConfig.conversationalSearch,
|
|
104
|
-
enabled: isNewFeatureEnabled,
|
|
105
|
-
}
|
|
106
|
-
: undefined,
|
|
107
|
-
customerServiceIntegration: {
|
|
108
|
-
...orgUIConfig.customerServiceIntegration,
|
|
109
|
-
integrationMode: getCustomerServiceIntegrationMode({
|
|
110
|
-
isNewFeatureEnabled,
|
|
111
|
-
integrationMode:
|
|
112
|
-
orgUIConfig.customerServiceIntegration?.integrationMode ??
|
|
113
|
-
CustomerServiceIntegrationMode.none,
|
|
114
|
-
}),
|
|
115
|
-
},
|
|
116
|
-
floatingChatConfig: {
|
|
117
|
-
...orgUIConfig.floatingChatConfig,
|
|
118
|
-
// Only enable the watermark if it is enabled in config and through featureFlag.
|
|
119
|
-
// This enables a quick "off-switch" in case a merchant tells us to turn it off
|
|
120
|
-
// quickly. This can be removed once the config is moved to the backend
|
|
121
|
-
enableWatermark:
|
|
122
|
-
orgUIConfig.floatingChatConfig?.enableWatermark && enableWatermark,
|
|
123
|
-
userQueryInputEnabled:
|
|
124
|
-
orgUIConfig.floatingChatConfig?.userQueryInputEnabled ||
|
|
125
|
-
userQueryAwaysEnabled,
|
|
126
|
-
},
|
|
127
|
-
} as OrgUIConfig;
|
|
128
|
-
|
|
129
|
-
atomStore.set(orgUIConfigAtom, updatedOrgUIConfig);
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
export const orgCustomerServiceConfig = atom(
|
|
133
|
-
(get) => get(orgUIConfigAtom)?.customerServiceIntegration
|
|
134
|
-
);
|
|
135
|
-
|
|
136
|
-
export const orgCustomerServiceService = atom((get) => {
|
|
137
|
-
const config = get(orgCustomerServiceConfig);
|
|
138
|
-
if (!config?.provider) {
|
|
139
|
-
return undefined;
|
|
140
|
-
}
|
|
141
|
-
return findCustomerServiceImpl(config.provider);
|
|
142
|
-
});
|