@builder.io/react 2.0.4-2 → 2.0.4-3

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 (40) hide show
  1. package/dist/builder-react-lite.cjs.js +1 -1
  2. package/dist/builder-react-lite.cjs.js.map +1 -1
  3. package/dist/builder-react-lite.esm.js +1 -1
  4. package/dist/builder-react-lite.esm.js.map +1 -1
  5. package/dist/builder-react.browser.js +1 -10
  6. package/dist/builder-react.browser.js.map +1 -1
  7. package/dist/builder-react.cjs.js +1 -1
  8. package/dist/builder-react.cjs.js.map +1 -1
  9. package/dist/builder-react.es5.js +1 -1
  10. package/dist/builder-react.es5.js.map +1 -1
  11. package/dist/builder-react.unpkg.js +1 -10
  12. package/dist/builder-react.unpkg.js.map +1 -1
  13. package/dist/lib/package.json +1 -1
  14. package/dist/lib/src/blocks/Embed.js.map +1 -1
  15. package/dist/lib/src/blocks/Section.js +2 -0
  16. package/dist/lib/src/blocks/Section.js.map +1 -1
  17. package/dist/lib/src/blocks/Symbol.js +7 -1
  18. package/dist/lib/src/blocks/Symbol.js.map +1 -1
  19. package/dist/lib/src/components/builder-block.component.js +0 -4
  20. package/dist/lib/src/components/builder-block.component.js.map +1 -1
  21. package/dist/lib/src/components/builder-blocks.component.js.map +1 -1
  22. package/dist/lib/src/components/builder-component.component.js +13 -6
  23. package/dist/lib/src/components/builder-component.component.js.map +1 -1
  24. package/dist/lib/src/components/builder-content.component.js +1 -1
  25. package/dist/lib/src/components/builder-content.component.js.map +1 -1
  26. package/dist/lib/src/constants/device-sizes.constant.js.map +1 -1
  27. package/dist/lib/src/functions/safe-dynamic-require.js +1 -1
  28. package/dist/lib/src/functions/safe-dynamic-require.js.map +1 -1
  29. package/dist/types/src/blocks/Mutation.d.ts +1 -0
  30. package/dist/types/src/blocks/Slot.d.ts +1 -0
  31. package/dist/types/src/blocks/raw/RawText.d.ts +1 -0
  32. package/dist/types/src/components/builder-component.component.d.ts +6 -0
  33. package/package.json +1 -1
  34. package/src/blocks/Section.tsx +16 -11
  35. package/src/blocks/Symbol.tsx +2 -0
  36. package/src/components/builder-block.component.tsx +0 -4
  37. package/src/components/builder-blocks.component.tsx +10 -8
  38. package/src/components/builder-component.component.tsx +33 -21
  39. package/src/components/builder-content.component.tsx +1 -1
  40. package/src/functions/safe-dynamic-require.ts +1 -1
@@ -40,18 +40,23 @@ class SectionComponent extends React.Component<SectionProps, { inView?: boolean
40
40
  if (typeof IntersectionObserver === 'undefined' || !this.ref) {
41
41
  this.setState({ inView: true });
42
42
  } else {
43
- const observer = new IntersectionObserver((entries, observer) => {
44
- entries.forEach(entry => {
45
- if (entry.intersectionRatio > 0) {
46
- this.setState({
47
- inView: true,
48
- });
49
- if (this.ref) {
50
- observer.unobserve(this.ref);
43
+ const observer = new IntersectionObserver(
44
+ (entries, observer) => {
45
+ entries.forEach(entry => {
46
+ if (entry.intersectionRatio > 0) {
47
+ this.setState({
48
+ inView: true,
49
+ });
50
+ if (this.ref) {
51
+ observer.unobserve(this.ref);
52
+ }
51
53
  }
52
- }
53
- });
54
- });
54
+ });
55
+ },
56
+ {
57
+ rootMargin: '10px',
58
+ }
59
+ );
55
60
 
56
61
  observer.observe(this.ref);
57
62
 
@@ -121,6 +121,8 @@ class SymbolComponent extends React.Component<SymbolProps> {
121
121
  this.placeholder
122
122
  ) : (
123
123
  <BuilderComponent
124
+ // TODO: pass locale down?
125
+ // {...state.state.locale && { locale: state.state.locale}}
124
126
  isChild
125
127
  ref={(ref: any) => (this.ref = ref)}
126
128
  context={{ ...state.context, symbolId: this.props.builderBlock?.id }}
@@ -251,10 +251,6 @@ export class BuilderBlock extends React.Component<
251
251
  eval('debugger');
252
252
  }
253
253
  for (const patch of patches) {
254
- // TODO: soehow mark this.block as a new object,
255
- // e.g. access it's parent hm. maybe do the listning mutations
256
- // on hte parent element not the child (or rather
257
- // send the message to the parent)
258
254
  applyPatchWithMinimalMutationChain(this.props.block, patch, true);
259
255
  }
260
256
  this.setState({ updates: this.state.updates + 1 });
@@ -108,14 +108,16 @@ export class BuilderBlocks extends React.Component<BuilderBlocksProps, BuilderBl
108
108
  // TODO: only fi in iframe?
109
109
  builder-path={Builder.isIframe ? this.path : undefined}
110
110
  builder-parent-id={this.parentId}
111
- css={{
112
- ...(!this.props.emailMode && {
113
- display: 'flex',
114
- flexDirection: 'column',
115
- alignItems: 'stretch',
116
- }),
117
- ...this.props.style,
118
- } as any}
111
+ css={
112
+ {
113
+ ...(!this.props.emailMode && {
114
+ display: 'flex',
115
+ flexDirection: 'column',
116
+ alignItems: 'stretch',
117
+ }),
118
+ ...this.props.style,
119
+ } as any
120
+ }
119
121
  onClick={() => {
120
122
  if (this.noBlocks) {
121
123
  this.onClickEmptyBlocks();
@@ -98,7 +98,6 @@ const sizeMap = {
98
98
  mobile: 'small',
99
99
  };
100
100
 
101
-
102
101
  const fetchCache: { [key: string]: any } = {};
103
102
 
104
103
  export interface BuilderComponentProps {
@@ -277,6 +276,11 @@ export interface BuilderComponentProps {
277
276
  * navigation to other pages unintended
278
277
  */
279
278
  stopClickPropagationWhenEditing?: boolean;
279
+
280
+ /**
281
+ * Locale code
282
+ */
283
+ locale?: string;
280
284
  }
281
285
 
282
286
  export interface BuilderComponentState {
@@ -841,7 +845,7 @@ export class BuilderComponent extends React.Component<
841
845
  get data() {
842
846
  const data = {
843
847
  ...(this.inlinedContent && this.inlinedContent.data?.state),
844
- ...this.props.data,
848
+ ...this.externalState,
845
849
  ...this.state.state,
846
850
  };
847
851
  Object.assign(this.rootState, data);
@@ -852,7 +856,7 @@ export class BuilderComponent extends React.Component<
852
856
  // TODO: shallow diff
853
857
  if (this.props.data && prevProps.data !== this.props.data) {
854
858
  this.state.update((state: any) => {
855
- Object.assign(state, this.props.data);
859
+ Object.assign(state, this.externalState);
856
860
  });
857
861
  }
858
862
 
@@ -892,6 +896,13 @@ export class BuilderComponent extends React.Component<
892
896
  return content;
893
897
  }
894
898
 
899
+ get externalState() {
900
+ return {
901
+ ...this.props.data,
902
+ ... (this.props.locale ? { locale: this.props.locale } : {})
903
+ }
904
+ }
905
+
895
906
  get useContent() {
896
907
  return this.content || this.state.context.builderContent;
897
908
  }
@@ -900,7 +911,7 @@ export class BuilderComponent extends React.Component<
900
911
  const content = this.content;
901
912
 
902
913
  const dataString =
903
- Builder.isBrowser && this.props.data && size(this.props.data) && hash(this.props.data);
914
+ Builder.isBrowser && this.externalState && size(this.externalState) && hash(this.externalState);
904
915
  let key = Builder.isEditing ? this.name : this.props.entry;
905
916
  if (key && !Builder.isEditing && dataString && dataString.length < 300) {
906
917
  key += ':' + dataString;
@@ -971,6 +982,7 @@ export class BuilderComponent extends React.Component<
971
982
  !this.isPreviewing && { initialContent: [] }),
972
983
  ...(this.props.url && { url: this.props.url }),
973
984
  ...this.props.options,
985
+ ...(this.props.locale ? { locale: this.props.locale } : {}),
974
986
  ...(this.options.codegen && {
975
987
  format: 'react',
976
988
  }),
@@ -1272,7 +1284,7 @@ export class BuilderComponent extends React.Component<
1272
1284
  deviceSize: this.deviceSizeState,
1273
1285
  device: this.device,
1274
1286
  ...data.state,
1275
- ...this.props.data,
1287
+ ...this.externalState,
1276
1288
  }),
1277
1289
  };
1278
1290
  if (this.mounted) {
@@ -1358,22 +1370,22 @@ export class BuilderComponent extends React.Component<
1358
1370
  const builderModelRe = /builder\.io\/api\/v2\/([^\/\?]+)/i;
1359
1371
  const builderModelMatch = url.match(builderModelRe);
1360
1372
  const model = builderModelMatch && builderModelMatch[1];
1361
- this.handleRequest(key, finalUrl);
1362
- const currentSubscription = this.httpSubscriptionPerKey[key];
1363
- if (currentSubscription) {
1364
- currentSubscription.unsubscribe();
1365
- }
1366
-
1367
- // TODO: fix this
1368
- const newSubscription = (this.httpSubscriptionPerKey[key] =
1369
- this.onStateChange.subscribe(() => {
1370
- const newUrl = this.evalExpression(url);
1371
- if (newUrl !== finalUrl) {
1372
- this.handleRequest(key, newUrl);
1373
- this.lastHttpRequests[key] = newUrl;
1374
- }
1375
- }));
1376
- this.subscriptions.add(newSubscription);
1373
+ this.handleRequest(key, finalUrl);
1374
+ const currentSubscription = this.httpSubscriptionPerKey[key];
1375
+ if (currentSubscription) {
1376
+ currentSubscription.unsubscribe();
1377
+ }
1378
+
1379
+ // TODO: fix this
1380
+ const newSubscription = (this.httpSubscriptionPerKey[key] =
1381
+ this.onStateChange.subscribe(() => {
1382
+ const newUrl = this.evalExpression(url);
1383
+ if (newUrl !== finalUrl) {
1384
+ this.handleRequest(key, newUrl);
1385
+ this.lastHttpRequests[key] = newUrl;
1386
+ }
1387
+ }));
1388
+ this.subscriptions.add(newSubscription);
1377
1389
  } else {
1378
1390
  this.handleRequest(key, this.evalExpression(url));
1379
1391
  }
@@ -149,7 +149,7 @@ export class BuilderContent<ContentType extends object = any> extends React.Comp
149
149
  data: newData,
150
150
  });
151
151
  if (this.props.contentLoaded) {
152
- this.props.contentLoaded(newData.data, this.state.data);
152
+ this.props.contentLoaded(newData.data, newData);
153
153
  }
154
154
  break;
155
155
  }
@@ -6,5 +6,5 @@ const noop = () => null;
6
6
  // Allow us to require things dynamically safe from webpack bundling
7
7
 
8
8
  export let safeDynamicRequire: typeof require;
9
- if (typeof globalThis.require === 'function') safeDynamicRequire = eval('require');
9
+ if (typeof globalThis.require === 'function') safeDynamicRequire = globalThis.require;
10
10
  safeDynamicRequire ??= noop as any;