@builder.io/sdk-react-native 5.2.0 → 5.2.2

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 (59) hide show
  1. package/lib/browser/commonjs/components/block/components/component-ref/component-ref.js +6 -3
  2. package/lib/browser/commonjs/components/block/components/component-ref/component-ref.js.map +1 -1
  3. package/lib/browser/commonjs/components/content-variants/content-variants.js +5 -5
  4. package/lib/browser/commonjs/components/content-variants/content-variants.js.map +1 -1
  5. package/lib/browser/commonjs/components/content-variants/helpers.js +33 -1
  6. package/lib/browser/commonjs/components/content-variants/helpers.js.map +1 -1
  7. package/lib/browser/commonjs/constants/sdk-version.js +1 -1
  8. package/lib/browser/module/components/block/components/component-ref/component-ref.js +6 -3
  9. package/lib/browser/module/components/block/components/component-ref/component-ref.js.map +1 -1
  10. package/lib/browser/module/components/content-variants/content-variants.js +6 -6
  11. package/lib/browser/module/components/content-variants/content-variants.js.map +1 -1
  12. package/lib/browser/module/components/content-variants/helpers.js +31 -0
  13. package/lib/browser/module/components/content-variants/helpers.js.map +1 -1
  14. package/lib/browser/module/constants/sdk-version.js +1 -1
  15. package/lib/browser/typescript/components/content-variants/content-variants.d.ts.map +1 -1
  16. package/lib/browser/typescript/components/content-variants/helpers.d.ts +1 -0
  17. package/lib/browser/typescript/components/content-variants/helpers.d.ts.map +1 -1
  18. package/lib/browser/typescript/constants/sdk-version.d.ts +1 -1
  19. package/lib/edge/commonjs/components/block/components/component-ref/component-ref.js +6 -3
  20. package/lib/edge/commonjs/components/block/components/component-ref/component-ref.js.map +1 -1
  21. package/lib/edge/commonjs/components/content-variants/content-variants.js +5 -5
  22. package/lib/edge/commonjs/components/content-variants/content-variants.js.map +1 -1
  23. package/lib/edge/commonjs/components/content-variants/helpers.js +33 -1
  24. package/lib/edge/commonjs/components/content-variants/helpers.js.map +1 -1
  25. package/lib/edge/commonjs/constants/sdk-version.js +1 -1
  26. package/lib/edge/module/components/block/components/component-ref/component-ref.js +6 -3
  27. package/lib/edge/module/components/block/components/component-ref/component-ref.js.map +1 -1
  28. package/lib/edge/module/components/content-variants/content-variants.js +6 -6
  29. package/lib/edge/module/components/content-variants/content-variants.js.map +1 -1
  30. package/lib/edge/module/components/content-variants/helpers.js +31 -0
  31. package/lib/edge/module/components/content-variants/helpers.js.map +1 -1
  32. package/lib/edge/module/constants/sdk-version.js +1 -1
  33. package/lib/edge/typescript/components/content-variants/content-variants.d.ts.map +1 -1
  34. package/lib/edge/typescript/components/content-variants/helpers.d.ts +1 -0
  35. package/lib/edge/typescript/components/content-variants/helpers.d.ts.map +1 -1
  36. package/lib/edge/typescript/constants/sdk-version.d.ts +1 -1
  37. package/lib/node/commonjs/components/block/components/component-ref/component-ref.js +6 -3
  38. package/lib/node/commonjs/components/block/components/component-ref/component-ref.js.map +1 -1
  39. package/lib/node/commonjs/components/content-variants/content-variants.js +5 -5
  40. package/lib/node/commonjs/components/content-variants/content-variants.js.map +1 -1
  41. package/lib/node/commonjs/components/content-variants/helpers.js +33 -1
  42. package/lib/node/commonjs/components/content-variants/helpers.js.map +1 -1
  43. package/lib/node/commonjs/constants/sdk-version.js +1 -1
  44. package/lib/node/module/components/block/components/component-ref/component-ref.js +6 -3
  45. package/lib/node/module/components/block/components/component-ref/component-ref.js.map +1 -1
  46. package/lib/node/module/components/content-variants/content-variants.js +6 -6
  47. package/lib/node/module/components/content-variants/content-variants.js.map +1 -1
  48. package/lib/node/module/components/content-variants/helpers.js +31 -0
  49. package/lib/node/module/components/content-variants/helpers.js.map +1 -1
  50. package/lib/node/module/constants/sdk-version.js +1 -1
  51. package/lib/node/typescript/components/content-variants/content-variants.d.ts.map +1 -1
  52. package/lib/node/typescript/components/content-variants/helpers.d.ts +1 -0
  53. package/lib/node/typescript/components/content-variants/helpers.d.ts.map +1 -1
  54. package/lib/node/typescript/constants/sdk-version.d.ts +1 -1
  55. package/package.json +1 -1
  56. package/src/components/block/components/component-ref/component-ref.tsx +13 -13
  57. package/src/components/content-variants/content-variants.tsx +21 -14
  58. package/src/components/content-variants/helpers.ts +31 -0
  59. package/src/constants/sdk-version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/components/content-variants/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAYlE,eAAO,MAAM,WAAW,YAAa,SAAS,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAI1D,CAAC;AACJ,eAAO,MAAM,yBAAyB;cAI1B,SAAS,OAAO,CAAC;aAClB,SAAS,cAAc,CAAC;aAuBlC,CAAC;AACF,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,eAAO,MAAM,8BAA8B,cAGxC,CAAC;AACJ,eAAO,MAAM,8BAA8B,aAAc,WAAW,EAAE,aAAa,MAAM,WAGrF,CAAC;AACL,eAAO,MAAM,gCAAgC;iBAI9B,MAAM;eACR,MAAM;YAGf,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/components/content-variants/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAYlE,eAAO,MAAM,WAAW,YAAa,SAAS,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAI1D,CAAC;AACJ,eAAO,MAAM,yBAAyB;cAI1B,SAAS,OAAO,CAAC;aAClB,SAAS,cAAc,CAAC;aAuBlC,CAAC;AACF,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,eAAO,MAAM,qBAAqB,OAAQ,MAAM,aAAa,MAAM,WA8BlE,CAAC;AACF,eAAO,MAAM,8BAA8B,cAGxC,CAAC;AACJ,eAAO,MAAM,8BAA8B,aAAc,WAAW,EAAE,aAAa,MAAM,WAGrF,CAAC;AACL,eAAO,MAAM,gCAAgC;iBAI9B,MAAM;eACR,MAAM;YAGf,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const SDK_VERSION = "5.2.0";
1
+ export declare const SDK_VERSION = "5.2.2";
2
2
  //# sourceMappingURL=sdk-version.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@builder.io/sdk-react-native",
3
3
  "description": "Builder.io SDK for React Native",
4
- "version": "5.2.0",
4
+ "version": "5.2.2",
5
5
  "homepage": "https://github.com/BuilderIO/builder/tree/main/packages/sdks/output/react-native",
6
6
  "repository": {
7
7
  "type": "git",
@@ -15,6 +15,10 @@ function ComponentRef(props: ComponentProps) {
15
15
  props.isInteractive ? InteractiveElement : props.componentRef
16
16
  );
17
17
 
18
+ function blockChildrenToRender() {
19
+ return props.componentRef ? props.blockChildren : [];
20
+ }
21
+
18
22
  return (
19
23
  <BuilderContext.Provider
20
24
  value={{
@@ -41,19 +45,15 @@ function ComponentRef(props: ComponentProps) {
41
45
  contextValue: props.context,
42
46
  })}
43
47
  >
44
- {props.componentRef ? (
45
- <>
46
- {props.blockChildren?.map((child) => (
47
- <Block
48
- key={child.id}
49
- block={child}
50
- context={props.context}
51
- registeredComponents={props.registeredComponents}
52
- linkComponent={props.linkComponent}
53
- />
54
- ))}
55
- </>
56
- ) : null}
48
+ {blockChildrenToRender()?.map((child) => (
49
+ <Block
50
+ key={child.id}
51
+ block={child}
52
+ context={props.context}
53
+ registeredComponents={props.registeredComponents}
54
+ linkComponent={props.linkComponent}
55
+ />
56
+ ))}
57
57
  </Wrapper>
58
58
  ) : null}
59
59
  </BuilderContext.Provider>
@@ -24,6 +24,7 @@ import {
24
24
  getInitVariantsFnsScriptString,
25
25
  getUpdateCookieAndStylesScript,
26
26
  getVariants,
27
+ removeDuplicateScript,
27
28
  } from "./helpers";
28
29
 
29
30
  function ContentVariants(props: VariantsProviderProps) {
@@ -71,20 +72,26 @@ function ContentVariants(props: VariantsProviderProps) {
71
72
  return (
72
73
  <>
73
74
  {!props.isNestedRender && TARGET !== "reactNative" ? (
74
- <>
75
- <InlinedScript
76
- id="builderio-init-variants-fns"
77
- scriptStr={getInitVariantsFnsScriptString()}
78
- nonce={props.nonce || ""}
79
- />
80
- {SDKS_SUPPORTING_PERSONALIZATION.includes(TARGET) ? (
81
- <InlinedScript
82
- id="builderio-init-personalization-variants-fns"
83
- nonce={props.nonce || ""}
84
- scriptStr={getInitPersonalizationVariantsFnsScriptString()}
85
- />
86
- ) : null}
87
- </>
75
+ <InlinedScript
76
+ id="builderio-init-variants-fns"
77
+ scriptStr={removeDuplicateScript(
78
+ "builderio-init-variants-fns",
79
+ getInitVariantsFnsScriptString()
80
+ )}
81
+ nonce={props.nonce || ""}
82
+ />
83
+ ) : null}
84
+ {!props.isNestedRender &&
85
+ TARGET !== "reactNative" &&
86
+ SDKS_SUPPORTING_PERSONALIZATION.includes(TARGET) ? (
87
+ <InlinedScript
88
+ id="builderio-init-personalization-variants-fns"
89
+ nonce={props.nonce || ""}
90
+ scriptStr={removeDuplicateScript(
91
+ "builderio-init-personalization-variants-fns",
92
+ getInitPersonalizationVariantsFnsScriptString()
93
+ )}
94
+ />
88
95
  ) : null}
89
96
  {shouldRenderVariants ? (
90
97
  <>
@@ -54,6 +54,37 @@ type VariantData = {
54
54
  const getIsHydrationTarget = (target: Target) => target === 'react' || target === 'reactNative';
55
55
  const isAngularSDK = TARGET === 'angular';
56
56
  const isHydrationTarget = getIsHydrationTarget(TARGET);
57
+ export const removeDuplicateScript = (id: string, scriptStr: string) => `
58
+ (function() {
59
+ var selector = 'script[data-id="${id}"]';
60
+ var scriptKey = '__builderioScriptInitialized_${id}';
61
+ var observerKey = '__builderioScriptObserver_${id}';
62
+
63
+ // Synchronously remove any duplicates already in the DOM
64
+ var existing = document.querySelectorAll(selector);
65
+ existing.forEach(function(script, index) {
66
+ if (index > 0) {
67
+ script.parentNode && script.parentNode.removeChild(script);
68
+ }
69
+ });
70
+
71
+ // Watch for duplicates added later (e.g. RSC streaming chunks)
72
+ if (!window[observerKey] && typeof MutationObserver !== 'undefined') {
73
+ window[observerKey] = new MutationObserver(function() {
74
+ var all = document.querySelectorAll(selector);
75
+ for (var i = 1; i < all.length; i++) {
76
+ all[i].parentNode && all[i].parentNode.removeChild(all[i]);
77
+ }
78
+ });
79
+ window[observerKey].observe(document.documentElement, { childList: true, subtree: true });
80
+ }
81
+
82
+ if (!window[scriptKey]) {
83
+ window[scriptKey] = true;
84
+ ${scriptStr}
85
+ }
86
+ })();
87
+ `;
57
88
  export const getInitVariantsFnsScriptString = () => `
58
89
  window.${UPDATE_COOKIES_AND_STYLES_SCRIPT_NAME} = ${UPDATE_COOKIES_AND_STYLES_SCRIPT}
59
90
  window.${UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME} = ${UPDATE_VARIANT_VISIBILITY_SCRIPT}
@@ -1 +1 @@
1
- export const SDK_VERSION = "5.2.0"
1
+ export const SDK_VERSION = "5.2.2"