@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.
- package/dist/builder-react-lite.cjs.js +1 -1
- package/dist/builder-react-lite.cjs.js.map +1 -1
- package/dist/builder-react-lite.esm.js +1 -1
- package/dist/builder-react-lite.esm.js.map +1 -1
- package/dist/builder-react.browser.js +1 -10
- package/dist/builder-react.browser.js.map +1 -1
- package/dist/builder-react.cjs.js +1 -1
- package/dist/builder-react.cjs.js.map +1 -1
- package/dist/builder-react.es5.js +1 -1
- package/dist/builder-react.es5.js.map +1 -1
- package/dist/builder-react.unpkg.js +1 -10
- package/dist/builder-react.unpkg.js.map +1 -1
- package/dist/lib/package.json +1 -1
- package/dist/lib/src/blocks/Embed.js.map +1 -1
- package/dist/lib/src/blocks/Section.js +2 -0
- package/dist/lib/src/blocks/Section.js.map +1 -1
- package/dist/lib/src/blocks/Symbol.js +7 -1
- package/dist/lib/src/blocks/Symbol.js.map +1 -1
- package/dist/lib/src/components/builder-block.component.js +0 -4
- package/dist/lib/src/components/builder-block.component.js.map +1 -1
- package/dist/lib/src/components/builder-blocks.component.js.map +1 -1
- package/dist/lib/src/components/builder-component.component.js +13 -6
- package/dist/lib/src/components/builder-component.component.js.map +1 -1
- package/dist/lib/src/components/builder-content.component.js +1 -1
- package/dist/lib/src/components/builder-content.component.js.map +1 -1
- package/dist/lib/src/constants/device-sizes.constant.js.map +1 -1
- package/dist/lib/src/functions/safe-dynamic-require.js +1 -1
- package/dist/lib/src/functions/safe-dynamic-require.js.map +1 -1
- package/dist/types/src/blocks/Mutation.d.ts +1 -0
- package/dist/types/src/blocks/Slot.d.ts +1 -0
- package/dist/types/src/blocks/raw/RawText.d.ts +1 -0
- package/dist/types/src/components/builder-component.component.d.ts +6 -0
- package/package.json +1 -1
- package/src/blocks/Section.tsx +16 -11
- package/src/blocks/Symbol.tsx +2 -0
- package/src/components/builder-block.component.tsx +0 -4
- package/src/components/builder-blocks.component.tsx +10 -8
- package/src/components/builder-component.component.tsx +33 -21
- package/src/components/builder-content.component.tsx +1 -1
- package/src/functions/safe-dynamic-require.ts +1 -1
package/src/blocks/Section.tsx
CHANGED
|
@@ -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(
|
|
44
|
-
entries
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
|
package/src/blocks/Symbol.tsx
CHANGED
|
@@ -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
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
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,
|
|
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 =
|
|
9
|
+
if (typeof globalThis.require === 'function') safeDynamicRequire = globalThis.require;
|
|
10
10
|
safeDynamicRequire ??= noop as any;
|