@weaverse/react 0.6.8 → 0.6.11
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/index.d.ts +10 -9
- package/dist/index.js +104 -74
- package/dist/index.mjs +100 -70
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
1
2
|
import { WeaverseType, Weaverse } from '@weaverse/core';
|
|
2
3
|
export * from '@weaverse/core';
|
|
3
|
-
import React$1 from 'react';
|
|
4
4
|
|
|
5
|
-
declare
|
|
6
|
-
declare let WeaverseContext:
|
|
7
|
-
declare let WeaverseContextProvider:
|
|
8
|
-
declare let WeaverseContextConsumer:
|
|
9
|
-
declare type WeaverseRootPropsType = {
|
|
10
|
-
context: Weaverse;
|
|
11
|
-
};
|
|
12
|
-
declare const WeaverseRoot: ({ context }: WeaverseRootPropsType) => JSX.Element;
|
|
5
|
+
declare let createRootContext: (configs: WeaverseType) => Weaverse;
|
|
6
|
+
declare let WeaverseContext: react.Context<Weaverse>;
|
|
7
|
+
declare let WeaverseContextProvider: react.Provider<Weaverse>;
|
|
8
|
+
declare let WeaverseContextConsumer: react.Consumer<Weaverse>;
|
|
13
9
|
|
|
14
10
|
interface WeaverseElementProps {
|
|
15
11
|
children?: React.ReactNode;
|
|
16
12
|
}
|
|
13
|
+
declare type WeaverseRootPropsType = {
|
|
14
|
+
context: Weaverse;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
declare let WeaverseRoot: ({ context }: WeaverseRootPropsType) => JSX.Element;
|
|
17
18
|
|
|
18
19
|
export { WeaverseContext, WeaverseContextConsumer, WeaverseContextProvider, WeaverseElementProps, WeaverseRoot, WeaverseRootPropsType, createRootContext };
|
package/dist/index.js
CHANGED
|
@@ -60,6 +60,10 @@ __export(src_exports, {
|
|
|
60
60
|
});
|
|
61
61
|
module.exports = __toCommonJS(src_exports);
|
|
62
62
|
|
|
63
|
+
// src/context.ts
|
|
64
|
+
var import_core = require("@weaverse/core");
|
|
65
|
+
var import_react5 = require("react");
|
|
66
|
+
|
|
63
67
|
// src/elements/base.tsx
|
|
64
68
|
var import_react = __toESM(require("react"));
|
|
65
69
|
var BaseElement = import_react.default.forwardRef((_a, ref) => {
|
|
@@ -74,6 +78,7 @@ BaseElement.defaultProps = {
|
|
|
74
78
|
};
|
|
75
79
|
var schema = {
|
|
76
80
|
type: "base",
|
|
81
|
+
parentType: "container",
|
|
77
82
|
title: "Base",
|
|
78
83
|
settings: []
|
|
79
84
|
};
|
|
@@ -101,6 +106,7 @@ Button.defaultProps = {
|
|
|
101
106
|
var schema2 = {
|
|
102
107
|
title: "Button",
|
|
103
108
|
type: "button",
|
|
109
|
+
parentType: "container",
|
|
104
110
|
styles: [
|
|
105
111
|
{
|
|
106
112
|
type: "dimensions"
|
|
@@ -157,6 +163,7 @@ var Container = (0, import_react2.forwardRef)((props, ref) => {
|
|
|
157
163
|
var schema3 = {
|
|
158
164
|
title: "Container",
|
|
159
165
|
type: "container",
|
|
166
|
+
parentType: "layout",
|
|
160
167
|
data: {
|
|
161
168
|
css: {
|
|
162
169
|
"@desktop": {
|
|
@@ -173,7 +180,13 @@ var schema3 = {
|
|
|
173
180
|
}
|
|
174
181
|
}
|
|
175
182
|
},
|
|
176
|
-
settings: []
|
|
183
|
+
settings: [],
|
|
184
|
+
flags: {
|
|
185
|
+
draggable: true,
|
|
186
|
+
resizable: true,
|
|
187
|
+
sortable: true,
|
|
188
|
+
hasSelection: false
|
|
189
|
+
}
|
|
177
190
|
};
|
|
178
191
|
var container_default = Container;
|
|
179
192
|
|
|
@@ -198,10 +211,10 @@ var Layout = (0, import_react3.forwardRef)((props, ref) => {
|
|
|
198
211
|
var schema4 = {
|
|
199
212
|
title: "Layout",
|
|
200
213
|
type: "layout",
|
|
214
|
+
parentType: "root",
|
|
201
215
|
data: {
|
|
202
216
|
css: {
|
|
203
217
|
"@desktop": {
|
|
204
|
-
overflow: "hidden",
|
|
205
218
|
paddingTop: "16px",
|
|
206
219
|
paddingBottom: "16px",
|
|
207
220
|
paddingLeft: "var(--gap)",
|
|
@@ -248,6 +261,7 @@ Text.defaultProps = {
|
|
|
248
261
|
};
|
|
249
262
|
var schema5 = {
|
|
250
263
|
type: "text",
|
|
264
|
+
parentType: "container",
|
|
251
265
|
title: "Text",
|
|
252
266
|
settings: [],
|
|
253
267
|
data: {
|
|
@@ -260,7 +274,7 @@ var schema5 = {
|
|
|
260
274
|
outline: "none",
|
|
261
275
|
wordBreak: "break-word",
|
|
262
276
|
overflowWrap: "break-word",
|
|
263
|
-
|
|
277
|
+
whiteSpace: "break-spaces"
|
|
264
278
|
}
|
|
265
279
|
}
|
|
266
280
|
}
|
|
@@ -285,13 +299,24 @@ Image.defaultProps = {
|
|
|
285
299
|
var schema6 = {
|
|
286
300
|
settings: [],
|
|
287
301
|
type: "image",
|
|
302
|
+
parentType: "layout",
|
|
288
303
|
title: "Image",
|
|
289
304
|
data: {
|
|
290
305
|
css: {
|
|
291
306
|
"@desktop": {
|
|
292
|
-
|
|
307
|
+
width: "100%",
|
|
308
|
+
height: "100%",
|
|
309
|
+
objectFit: "cover"
|
|
310
|
+
},
|
|
311
|
+
"@mobile": {
|
|
312
|
+
display: "block"
|
|
293
313
|
}
|
|
294
314
|
}
|
|
315
|
+
},
|
|
316
|
+
flags: {
|
|
317
|
+
resizable: true,
|
|
318
|
+
draggable: true,
|
|
319
|
+
sortable: true
|
|
295
320
|
}
|
|
296
321
|
};
|
|
297
322
|
var image_default = Image;
|
|
@@ -325,19 +350,9 @@ var elements = {
|
|
|
325
350
|
};
|
|
326
351
|
var elements_default = elements;
|
|
327
352
|
|
|
328
|
-
// src/
|
|
329
|
-
var shortCssObject = (css) => {
|
|
330
|
-
return {
|
|
331
|
-
"@desktop": css[`@desktop`],
|
|
332
|
-
"@mobile": css[`@mobile`]
|
|
333
|
-
};
|
|
334
|
-
};
|
|
335
|
-
|
|
336
|
-
// src/renderer.tsx
|
|
337
|
-
var import_core = require("@weaverse/core");
|
|
338
|
-
var import_react5 = __toESM(require("react"));
|
|
353
|
+
// src/context.ts
|
|
339
354
|
var createRootContext = (configs) => {
|
|
340
|
-
|
|
355
|
+
let rootContext = new import_core.Weaverse(configs);
|
|
341
356
|
Object.keys(elements_default).forEach((key) => {
|
|
342
357
|
rootContext.registerElement(elements_default[key]);
|
|
343
358
|
});
|
|
@@ -346,92 +361,107 @@ var createRootContext = (configs) => {
|
|
|
346
361
|
var WeaverseContext = (0, import_react5.createContext)({});
|
|
347
362
|
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
348
363
|
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
364
|
+
|
|
365
|
+
// src/renderer.tsx
|
|
366
|
+
var import_core2 = require("@weaverse/core");
|
|
367
|
+
var import_react6 = __toESM(require("react"));
|
|
368
|
+
|
|
369
|
+
// src/utils/index.ts
|
|
370
|
+
var shortCssObject = (css) => {
|
|
371
|
+
return {
|
|
372
|
+
"@desktop": css[`@desktop`],
|
|
373
|
+
"@mobile": css[`@mobile`]
|
|
374
|
+
};
|
|
375
|
+
};
|
|
376
|
+
function generateItemClass(instance, stitchesInstance) {
|
|
377
|
+
var _a;
|
|
378
|
+
let { css, className: cls = "" } = instance.data;
|
|
379
|
+
let className = "";
|
|
380
|
+
if (css) {
|
|
381
|
+
let formattedCss = shortCssObject(css);
|
|
382
|
+
let { className: newClass = "" } = stitchesInstance.css(formattedCss)();
|
|
383
|
+
let { stitchesClass } = instance;
|
|
384
|
+
let otherClass = (((_a = instance.ref.current) == null ? void 0 : _a.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
|
|
385
|
+
className = `${cls} ${newClass} ${otherClass}`.trim();
|
|
386
|
+
instance.stitchesClass = newClass;
|
|
387
|
+
}
|
|
388
|
+
return className;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
// src/renderer.tsx
|
|
349
392
|
var WeaverseRoot = ({ context }) => {
|
|
350
393
|
var _a;
|
|
351
|
-
let [, setData] = (0,
|
|
352
|
-
(0,
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
context.subscribe(handleUpdate);
|
|
394
|
+
let [, setData] = (0, import_react6.useState)(context.projectData);
|
|
395
|
+
let rootRef = (0, import_react6.useRef)();
|
|
396
|
+
(0, import_react6.useEffect)(() => {
|
|
397
|
+
let update = () => setData({});
|
|
398
|
+
context.subscribe(update);
|
|
357
399
|
if (context.projectData) {
|
|
358
|
-
setTimeout(
|
|
400
|
+
setTimeout(update, 110);
|
|
359
401
|
}
|
|
402
|
+
context.contentRootElement = rootRef.current;
|
|
360
403
|
return () => {
|
|
361
|
-
context.unsubscribe(
|
|
404
|
+
context.unsubscribe(update);
|
|
362
405
|
};
|
|
363
406
|
}, []);
|
|
364
407
|
let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
|
|
365
408
|
let themeClass = context.stitchesInstance.theme.className;
|
|
366
|
-
return /* @__PURE__ */
|
|
409
|
+
return /* @__PURE__ */ import_react6.default.createElement("div", __spreadProps(__spreadValues({
|
|
367
410
|
className: `weaverse-content-root ${themeClass}`
|
|
368
|
-
}, eventHandlers),
|
|
411
|
+
}, eventHandlers), {
|
|
412
|
+
ref: rootRef
|
|
413
|
+
}), /* @__PURE__ */ import_react6.default.createElement(WeaverseContextProvider, {
|
|
369
414
|
value: context
|
|
370
|
-
}, /* @__PURE__ */
|
|
371
|
-
|
|
415
|
+
}, /* @__PURE__ */ import_react6.default.createElement(ItemInstance, {
|
|
416
|
+
id: context.projectData.rootId || 0
|
|
372
417
|
})));
|
|
373
418
|
};
|
|
374
|
-
var
|
|
375
|
-
|
|
376
|
-
let [data, setData] = (0,
|
|
377
|
-
let _a = data, { id, type, childIds, css, className: cls = "" } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
|
|
378
|
-
(0,
|
|
379
|
-
let
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
if (import_core.isBrowser && !itemInstance.ref.current) {
|
|
384
|
-
Object.assign(itemInstance.ref, {
|
|
419
|
+
var ItemComponent = ({ instance }) => {
|
|
420
|
+
let { stitchesInstance, elementInstances } = (0, import_react6.useContext)(WeaverseContext);
|
|
421
|
+
let [data, setData] = (0, import_react6.useState)(instance.data);
|
|
422
|
+
let _a = data, { id, type, childIds = [], css, className: cls = "" } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
|
|
423
|
+
(0, import_react6.useEffect)(() => {
|
|
424
|
+
let update = (data2) => setData(__spreadValues({}, data2));
|
|
425
|
+
instance.subscribe(update);
|
|
426
|
+
if (import_core2.isBrowser && !instance.ref.current) {
|
|
427
|
+
Object.assign(instance.ref, {
|
|
385
428
|
current: document.querySelector(`[data-wv-id="${id}"]`)
|
|
386
429
|
});
|
|
387
430
|
}
|
|
388
431
|
return () => {
|
|
389
|
-
|
|
432
|
+
instance.unsubscribe(update);
|
|
390
433
|
};
|
|
391
434
|
}, []);
|
|
392
|
-
let
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
let formattedCss = shortCssObject(css);
|
|
396
|
-
let { className: newClass = "" } = context.stitchesInstance.css(formattedCss)();
|
|
397
|
-
let { stitchesClass } = itemInstance;
|
|
398
|
-
let otherClass = (((_b = itemInstance.ref.current) == null ? void 0 : _b.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
|
|
399
|
-
className = `${cls} ${newClass} ${otherClass}`.trim();
|
|
400
|
-
itemInstance.stitchesClass = newClass;
|
|
401
|
-
}
|
|
402
|
-
let element = elementInstances.get(type) || elementInstances.get("base");
|
|
403
|
-
if (element == null ? void 0 : element.Component) {
|
|
404
|
-
let Component = element.Component;
|
|
435
|
+
let Element = elementInstances.get(type || "base");
|
|
436
|
+
if (Element == null ? void 0 : Element.Component) {
|
|
437
|
+
let Component = Element.Component;
|
|
405
438
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|
|
406
|
-
rest.ref =
|
|
439
|
+
rest.ref = instance.ref;
|
|
407
440
|
}
|
|
408
|
-
return /* @__PURE__ */
|
|
441
|
+
return /* @__PURE__ */ import_react6.default.createElement(Component, __spreadValues({
|
|
409
442
|
key: id,
|
|
410
443
|
"data-wv-type": type,
|
|
411
|
-
"data-wv-id": id
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
itemId: childId
|
|
444
|
+
"data-wv-id": id,
|
|
445
|
+
className: generateItemClass(instance, stitchesInstance)
|
|
446
|
+
}, rest), childIds.map((id2) => /* @__PURE__ */ import_react6.default.createElement(ItemInstance, {
|
|
447
|
+
key: id2,
|
|
448
|
+
id: id2
|
|
417
449
|
})));
|
|
418
450
|
}
|
|
419
451
|
return null;
|
|
420
452
|
};
|
|
421
|
-
var
|
|
422
|
-
|
|
423
|
-
}
|
|
424
|
-
let
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
itemInstance,
|
|
430
|
-
elementInstances
|
|
431
|
-
});
|
|
453
|
+
var ItemInstance = ({ id }) => {
|
|
454
|
+
let context = (0, import_react6.useContext)(WeaverseContext);
|
|
455
|
+
let { itemInstances } = context;
|
|
456
|
+
let instance = itemInstances.get(id);
|
|
457
|
+
if (!instance) {
|
|
458
|
+
return /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
459
|
+
style: { display: "none" }
|
|
460
|
+
}, "Item instance ", id, " not found");
|
|
432
461
|
}
|
|
433
|
-
|
|
434
|
-
|
|
462
|
+
return /* @__PURE__ */ import_react6.default.createElement(ItemComponent, {
|
|
463
|
+
instance
|
|
464
|
+
});
|
|
435
465
|
};
|
|
436
466
|
|
|
437
467
|
// src/index.ts
|
package/dist/index.mjs
CHANGED
|
@@ -30,6 +30,10 @@ var __objRest = (source, exclude) => {
|
|
|
30
30
|
return target;
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
+
// src/context.ts
|
|
34
|
+
import { Weaverse } from "@weaverse/core";
|
|
35
|
+
import { createContext } from "react";
|
|
36
|
+
|
|
33
37
|
// src/elements/base.tsx
|
|
34
38
|
import React from "react";
|
|
35
39
|
var BaseElement = React.forwardRef((_a, ref) => {
|
|
@@ -44,6 +48,7 @@ BaseElement.defaultProps = {
|
|
|
44
48
|
};
|
|
45
49
|
var schema = {
|
|
46
50
|
type: "base",
|
|
51
|
+
parentType: "container",
|
|
47
52
|
title: "Base",
|
|
48
53
|
settings: []
|
|
49
54
|
};
|
|
@@ -71,6 +76,7 @@ Button.defaultProps = {
|
|
|
71
76
|
var schema2 = {
|
|
72
77
|
title: "Button",
|
|
73
78
|
type: "button",
|
|
79
|
+
parentType: "container",
|
|
74
80
|
styles: [
|
|
75
81
|
{
|
|
76
82
|
type: "dimensions"
|
|
@@ -127,6 +133,7 @@ var Container = forwardRef2((props, ref) => {
|
|
|
127
133
|
var schema3 = {
|
|
128
134
|
title: "Container",
|
|
129
135
|
type: "container",
|
|
136
|
+
parentType: "layout",
|
|
130
137
|
data: {
|
|
131
138
|
css: {
|
|
132
139
|
"@desktop": {
|
|
@@ -143,7 +150,13 @@ var schema3 = {
|
|
|
143
150
|
}
|
|
144
151
|
}
|
|
145
152
|
},
|
|
146
|
-
settings: []
|
|
153
|
+
settings: [],
|
|
154
|
+
flags: {
|
|
155
|
+
draggable: true,
|
|
156
|
+
resizable: true,
|
|
157
|
+
sortable: true,
|
|
158
|
+
hasSelection: false
|
|
159
|
+
}
|
|
147
160
|
};
|
|
148
161
|
var container_default = Container;
|
|
149
162
|
|
|
@@ -168,10 +181,10 @@ var Layout = forwardRef3((props, ref) => {
|
|
|
168
181
|
var schema4 = {
|
|
169
182
|
title: "Layout",
|
|
170
183
|
type: "layout",
|
|
184
|
+
parentType: "root",
|
|
171
185
|
data: {
|
|
172
186
|
css: {
|
|
173
187
|
"@desktop": {
|
|
174
|
-
overflow: "hidden",
|
|
175
188
|
paddingTop: "16px",
|
|
176
189
|
paddingBottom: "16px",
|
|
177
190
|
paddingLeft: "var(--gap)",
|
|
@@ -218,6 +231,7 @@ Text.defaultProps = {
|
|
|
218
231
|
};
|
|
219
232
|
var schema5 = {
|
|
220
233
|
type: "text",
|
|
234
|
+
parentType: "container",
|
|
221
235
|
title: "Text",
|
|
222
236
|
settings: [],
|
|
223
237
|
data: {
|
|
@@ -230,7 +244,7 @@ var schema5 = {
|
|
|
230
244
|
outline: "none",
|
|
231
245
|
wordBreak: "break-word",
|
|
232
246
|
overflowWrap: "break-word",
|
|
233
|
-
|
|
247
|
+
whiteSpace: "break-spaces"
|
|
234
248
|
}
|
|
235
249
|
}
|
|
236
250
|
}
|
|
@@ -255,13 +269,24 @@ Image.defaultProps = {
|
|
|
255
269
|
var schema6 = {
|
|
256
270
|
settings: [],
|
|
257
271
|
type: "image",
|
|
272
|
+
parentType: "layout",
|
|
258
273
|
title: "Image",
|
|
259
274
|
data: {
|
|
260
275
|
css: {
|
|
261
276
|
"@desktop": {
|
|
262
|
-
|
|
277
|
+
width: "100%",
|
|
278
|
+
height: "100%",
|
|
279
|
+
objectFit: "cover"
|
|
280
|
+
},
|
|
281
|
+
"@mobile": {
|
|
282
|
+
display: "block"
|
|
263
283
|
}
|
|
264
284
|
}
|
|
285
|
+
},
|
|
286
|
+
flags: {
|
|
287
|
+
resizable: true,
|
|
288
|
+
draggable: true,
|
|
289
|
+
sortable: true
|
|
265
290
|
}
|
|
266
291
|
};
|
|
267
292
|
var image_default = Image;
|
|
@@ -295,19 +320,9 @@ var elements = {
|
|
|
295
320
|
};
|
|
296
321
|
var elements_default = elements;
|
|
297
322
|
|
|
298
|
-
// src/
|
|
299
|
-
var shortCssObject = (css) => {
|
|
300
|
-
return {
|
|
301
|
-
"@desktop": css[`@desktop`],
|
|
302
|
-
"@mobile": css[`@mobile`]
|
|
303
|
-
};
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
// src/renderer.tsx
|
|
307
|
-
import { isBrowser, Weaverse } from "@weaverse/core";
|
|
308
|
-
import React7, { createContext, useContext, useEffect, useState } from "react";
|
|
323
|
+
// src/context.ts
|
|
309
324
|
var createRootContext = (configs) => {
|
|
310
|
-
|
|
325
|
+
let rootContext = new Weaverse(configs);
|
|
311
326
|
Object.keys(elements_default).forEach((key) => {
|
|
312
327
|
rootContext.registerElement(elements_default[key]);
|
|
313
328
|
});
|
|
@@ -316,92 +331,107 @@ var createRootContext = (configs) => {
|
|
|
316
331
|
var WeaverseContext = createContext({});
|
|
317
332
|
var WeaverseContextProvider = WeaverseContext.Provider;
|
|
318
333
|
var WeaverseContextConsumer = WeaverseContext.Consumer;
|
|
334
|
+
|
|
335
|
+
// src/renderer.tsx
|
|
336
|
+
import { isBrowser } from "@weaverse/core";
|
|
337
|
+
import React7, { useContext, useEffect, useRef, useState } from "react";
|
|
338
|
+
|
|
339
|
+
// src/utils/index.ts
|
|
340
|
+
var shortCssObject = (css) => {
|
|
341
|
+
return {
|
|
342
|
+
"@desktop": css[`@desktop`],
|
|
343
|
+
"@mobile": css[`@mobile`]
|
|
344
|
+
};
|
|
345
|
+
};
|
|
346
|
+
function generateItemClass(instance, stitchesInstance) {
|
|
347
|
+
var _a;
|
|
348
|
+
let { css, className: cls = "" } = instance.data;
|
|
349
|
+
let className = "";
|
|
350
|
+
if (css) {
|
|
351
|
+
let formattedCss = shortCssObject(css);
|
|
352
|
+
let { className: newClass = "" } = stitchesInstance.css(formattedCss)();
|
|
353
|
+
let { stitchesClass } = instance;
|
|
354
|
+
let otherClass = (((_a = instance.ref.current) == null ? void 0 : _a.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
|
|
355
|
+
className = `${cls} ${newClass} ${otherClass}`.trim();
|
|
356
|
+
instance.stitchesClass = newClass;
|
|
357
|
+
}
|
|
358
|
+
return className;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// src/renderer.tsx
|
|
319
362
|
var WeaverseRoot = ({ context }) => {
|
|
320
363
|
var _a;
|
|
321
364
|
let [, setData] = useState(context.projectData);
|
|
365
|
+
let rootRef = useRef();
|
|
322
366
|
useEffect(() => {
|
|
323
|
-
let
|
|
324
|
-
|
|
325
|
-
};
|
|
326
|
-
context.subscribe(handleUpdate);
|
|
367
|
+
let update = () => setData({});
|
|
368
|
+
context.subscribe(update);
|
|
327
369
|
if (context.projectData) {
|
|
328
|
-
setTimeout(
|
|
370
|
+
setTimeout(update, 110);
|
|
329
371
|
}
|
|
372
|
+
context.contentRootElement = rootRef.current;
|
|
330
373
|
return () => {
|
|
331
|
-
context.unsubscribe(
|
|
374
|
+
context.unsubscribe(update);
|
|
332
375
|
};
|
|
333
376
|
}, []);
|
|
334
377
|
let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
|
|
335
378
|
let themeClass = context.stitchesInstance.theme.className;
|
|
336
|
-
return /* @__PURE__ */ React7.createElement("div", __spreadValues({
|
|
379
|
+
return /* @__PURE__ */ React7.createElement("div", __spreadProps(__spreadValues({
|
|
337
380
|
className: `weaverse-content-root ${themeClass}`
|
|
338
|
-
}, eventHandlers),
|
|
381
|
+
}, eventHandlers), {
|
|
382
|
+
ref: rootRef
|
|
383
|
+
}), /* @__PURE__ */ React7.createElement(WeaverseContextProvider, {
|
|
339
384
|
value: context
|
|
340
|
-
}, /* @__PURE__ */ React7.createElement(
|
|
341
|
-
|
|
385
|
+
}, /* @__PURE__ */ React7.createElement(ItemInstance, {
|
|
386
|
+
id: context.projectData.rootId || 0
|
|
342
387
|
})));
|
|
343
388
|
};
|
|
344
|
-
var
|
|
345
|
-
|
|
346
|
-
let [data, setData] = useState(
|
|
347
|
-
let _a = data, { id, type, childIds, css, className: cls = "" } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
|
|
389
|
+
var ItemComponent = ({ instance }) => {
|
|
390
|
+
let { stitchesInstance, elementInstances } = useContext(WeaverseContext);
|
|
391
|
+
let [data, setData] = useState(instance.data);
|
|
392
|
+
let _a = data, { id, type, childIds = [], css, className: cls = "" } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
|
|
348
393
|
useEffect(() => {
|
|
349
|
-
let
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
if (isBrowser && !itemInstance.ref.current) {
|
|
354
|
-
Object.assign(itemInstance.ref, {
|
|
394
|
+
let update = (data2) => setData(__spreadValues({}, data2));
|
|
395
|
+
instance.subscribe(update);
|
|
396
|
+
if (isBrowser && !instance.ref.current) {
|
|
397
|
+
Object.assign(instance.ref, {
|
|
355
398
|
current: document.querySelector(`[data-wv-id="${id}"]`)
|
|
356
399
|
});
|
|
357
400
|
}
|
|
358
401
|
return () => {
|
|
359
|
-
|
|
402
|
+
instance.unsubscribe(update);
|
|
360
403
|
};
|
|
361
404
|
}, []);
|
|
362
|
-
let
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
let formattedCss = shortCssObject(css);
|
|
366
|
-
let { className: newClass = "" } = context.stitchesInstance.css(formattedCss)();
|
|
367
|
-
let { stitchesClass } = itemInstance;
|
|
368
|
-
let otherClass = (((_b = itemInstance.ref.current) == null ? void 0 : _b.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
|
|
369
|
-
className = `${cls} ${newClass} ${otherClass}`.trim();
|
|
370
|
-
itemInstance.stitchesClass = newClass;
|
|
371
|
-
}
|
|
372
|
-
let element = elementInstances.get(type) || elementInstances.get("base");
|
|
373
|
-
if (element == null ? void 0 : element.Component) {
|
|
374
|
-
let Component = element.Component;
|
|
405
|
+
let Element = elementInstances.get(type || "base");
|
|
406
|
+
if (Element == null ? void 0 : Element.Component) {
|
|
407
|
+
let Component = Element.Component;
|
|
375
408
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|
|
376
|
-
rest.ref =
|
|
409
|
+
rest.ref = instance.ref;
|
|
377
410
|
}
|
|
378
|
-
return /* @__PURE__ */ React7.createElement(Component,
|
|
411
|
+
return /* @__PURE__ */ React7.createElement(Component, __spreadValues({
|
|
379
412
|
key: id,
|
|
380
413
|
"data-wv-type": type,
|
|
381
|
-
"data-wv-id": id
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
itemId: childId
|
|
414
|
+
"data-wv-id": id,
|
|
415
|
+
className: generateItemClass(instance, stitchesInstance)
|
|
416
|
+
}, rest), childIds.map((id2) => /* @__PURE__ */ React7.createElement(ItemInstance, {
|
|
417
|
+
key: id2,
|
|
418
|
+
id: id2
|
|
387
419
|
})));
|
|
388
420
|
}
|
|
389
421
|
return null;
|
|
390
422
|
};
|
|
391
|
-
var
|
|
392
|
-
itemId
|
|
393
|
-
}) => {
|
|
423
|
+
var ItemInstance = ({ id }) => {
|
|
394
424
|
let context = useContext(WeaverseContext);
|
|
395
|
-
let { itemInstances
|
|
396
|
-
let
|
|
397
|
-
if (
|
|
398
|
-
return /* @__PURE__ */ React7.createElement(
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
});
|
|
425
|
+
let { itemInstances } = context;
|
|
426
|
+
let instance = itemInstances.get(id);
|
|
427
|
+
if (!instance) {
|
|
428
|
+
return /* @__PURE__ */ React7.createElement("div", {
|
|
429
|
+
style: { display: "none" }
|
|
430
|
+
}, "Item instance ", id, " not found");
|
|
402
431
|
}
|
|
403
|
-
|
|
404
|
-
|
|
432
|
+
return /* @__PURE__ */ React7.createElement(ItemComponent, {
|
|
433
|
+
instance
|
|
434
|
+
});
|
|
405
435
|
};
|
|
406
436
|
|
|
407
437
|
// src/index.ts
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.6.
|
|
2
|
+
"version": "0.6.11",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
@@ -31,6 +31,6 @@
|
|
|
31
31
|
"name": "@weaverse/react",
|
|
32
32
|
"author": "Weaverse Team",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@weaverse/core": "0.6.
|
|
34
|
+
"@weaverse/core": "0.6.11"
|
|
35
35
|
}
|
|
36
36
|
}
|