@weaverse/react 0.1.5 → 0.1.9

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.
@@ -1,6 +1,5 @@
1
- import { useEffect, useState, createElement, Fragment } from 'react';
2
- import fetch from 'isomorphic-unfetch';
3
- import Elements from '@weaverse/elements';
1
+ import React__default, { forwardRef, useState, createElement, useEffect } from 'react';
2
+ import { Weaverse, isBrowser } from '@weaverse/core';
4
3
 
5
4
  function _extends() {
6
5
  _extends = Object.assign || function (target) {
@@ -35,235 +34,85 @@ function _objectWithoutPropertiesLoose(source, excluded) {
35
34
  return target;
36
35
  }
37
36
 
38
- var isReactNative = typeof navigator === 'object' && navigator.product === 'ReactNative';
39
- var isBrowser = typeof window !== 'undefined' && !isReactNative;
40
-
41
- // TODO: Implement Weaverse SDK class
42
- var Weaverse = /*#__PURE__*/function () {
43
- function Weaverse(_temp) {
44
- var _this = this;
45
-
46
- var _ref = _temp === void 0 ? {} : _temp,
47
- appUrl = _ref.appUrl,
48
- projectKey = _ref.projectKey,
49
- projectData = _ref.projectData;
50
-
51
- this.elementInstances = new Map();
52
- this.itemInstances = new Map();
53
- this.appUrl = 'http://localhost:3000';
54
- this.projectKey = '';
55
- this.projectData = {
56
- items: []
57
- };
58
- this.listeners = new Set();
59
- this.isEditor = false;
60
-
61
- this.handleMessageEvent = function (e) {
62
- var _e$data, _e$data$type;
63
-
64
- if ((_e$data = e.data) != null && (_e$data$type = _e$data.type) != null && _e$data$type.startsWith('weaverse.')) {
65
- var type = e.data.type;
66
-
67
- switch (type) {
68
- case 'weaverse.editor.ready':
69
- _this.isEditor = true;
70
- break;
71
-
72
- case 'weaverse.editor.update':
73
- var payload = e.data.payload;
74
- var itemId = payload.itemId,
75
- background = payload.background;
76
-
77
- var instance = _this.itemInstances.get(itemId);
78
-
79
- if (instance) {
80
- instance.setData({
81
- style: {
82
- background: background
83
- }
84
- });
85
- }
86
-
87
- }
88
- }
89
- };
90
-
91
- this.appUrl = appUrl || this.appUrl;
92
- this.projectKey = projectKey || this.projectKey;
93
- projectData && (this.projectData = projectData);
94
- this.init();
95
- }
96
-
97
- var _proto = Weaverse.prototype;
98
-
99
- _proto.registerElement = function registerElement(name, element) {
100
- this.elementInstances.set(name, element);
101
- };
102
-
103
- _proto.init = function init() {
104
- var _this2 = this;
105
-
106
- Object.keys(Elements).forEach(function (key) {
107
- var _Elements$key, _Elements$key$configs;
108
-
109
- // @ts-ignore
110
- ((_Elements$key = Elements[key]) == null ? void 0 : (_Elements$key$configs = _Elements$key.configs) == null ? void 0 : _Elements$key$configs.type) && _this2.registerElement(Elements[key].configs.type, Elements[key]);
111
- });
112
- this.subscribeMessageEvent();
113
- };
114
-
115
- _proto.subscribe = function subscribe(fn) {
116
- this.listeners.add(fn);
117
- };
118
-
119
- _proto.unsubscribe = function unsubscribe(fn) {
120
- this.listeners["delete"](fn);
121
- };
122
-
123
- _proto.triggerUpdate = function triggerUpdate() {
124
- this.listeners.forEach(function (fn) {
125
- return fn();
126
- });
127
- this.triggerEditorUpdate();
128
- };
129
-
130
- _proto.fetchProjectData = function fetchProjectData() {
131
- return fetch(this.appUrl + ("/api/public/" + this.projectKey)).then(function (r) {
132
- return r.json();
133
- });
134
- };
135
-
136
- _proto.updateProjectData = function updateProjectData() {
137
- var _this3 = this;
138
-
139
- if (this.projectKey) {
140
- this.fetchProjectData().then(function (data) {
141
- if (data) {
142
- _this3.projectData = data;
143
-
144
- _this3.initItemData();
145
-
146
- _this3.triggerUpdate();
147
- }
148
- })["catch"](function (err) {
149
- console.error(err);
150
- });
151
- }
152
- };
153
-
154
- _proto.subscribeMessageEvent = function subscribeMessageEvent() {
155
- var _this4 = this;
156
-
157
- if (typeof this.currentFrameSubscription === 'function') {
158
- this.currentFrameSubscription();
159
- }
160
-
161
- isBrowser && window.addEventListener('message', this.handleMessageEvent);
162
-
163
- this.currentFrameSubscription = function () {
164
- isBrowser && window.removeEventListener('message', _this4.handleMessageEvent);
165
- };
166
-
167
- return this.currentFrameSubscription;
168
- };
169
-
170
- _proto.triggerEditorUpdate = function triggerEditorUpdate(type) {
171
- if (type === void 0) {
172
- type = 'weaverse.workspace.init';
173
- }
174
-
175
- if (this.isEditor) {
176
- var _window$top;
177
-
178
- (_window$top = window.top) == null ? void 0 : _window$top.postMessage({
179
- type: type,
180
- payload: {
181
- projectKey: this.projectKey,
182
- projectData: this.projectData
183
- }
184
- }, '*');
185
- }
186
- };
37
+ var Button = /*#__PURE__*/forwardRef(function (props, ref) {
38
+ var _React$useState = useState(0),
39
+ count = _React$useState[0],
40
+ setCount = _React$useState[1];
187
41
 
188
- _proto.initItemData = function initItemData() {
189
- var _this5 = this;
190
-
191
- var data = this.projectData;
192
-
193
- if (data.items) {
194
- data.items.forEach(function (item) {
195
- var itemStore = _this5.itemInstances.get(item.id) || new WeaverseItemStore(item, _this5);
196
-
197
- _this5.itemInstances.set(item.id, itemStore);
198
- });
42
+ return createElement("button", Object.assign({
43
+ ref: ref
44
+ }, props, {
45
+ onClick: function onClick() {
46
+ return setCount(count + 1);
199
47
  }
200
- };
201
-
202
- return Weaverse;
203
- }();
204
- var WeaverseItemStore = function WeaverseItemStore(itemData, weaverse) {
205
- var _this6 = this;
206
-
207
- if (itemData === void 0) {
208
- itemData = {};
209
- }
210
-
211
- this.data = {};
212
- this.listeners = new Set();
213
-
214
- this.setData = function (data) {
215
- _this6.data = Object.assign(_this6.data, data);
48
+ }), "Test Button ", count);
49
+ });
50
+ Button.defaultProps = {
51
+ style: {
52
+ backgroundColor: 'green',
53
+ borderRadius: '9999px',
54
+ fontSize: '13px',
55
+ padding: '10px 15px'
56
+ },
57
+ type: 'button',
58
+ tag: 'button'
59
+ };
216
60
 
217
- _this6.triggerUpdate();
218
- };
61
+ var _excluded = ["tag", "children"];
62
+ var BaseElement = function BaseElement(_ref) {
63
+ var tag = _ref.tag,
64
+ children = _ref.children,
65
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
219
66
 
220
- this.subscribe = function (fn) {
221
- _this6.listeners.add(fn);
222
- };
67
+ return React__default.createElement(tag, _extends({}, props), children);
68
+ };
69
+ BaseElement.defaultProps = {
70
+ type: 'base',
71
+ tag: 'div'
72
+ };
223
73
 
224
- this.unsubscribe = function (fn) {
225
- _this6.listeners["delete"](fn);
226
- };
74
+ function Grid(props) {
75
+ return React__default.createElement("div", Object.assign({}, props));
76
+ }
77
+ Grid.defaultProps = {
78
+ style: {// display: 'grid',
79
+ // outline: '1px solid red',
80
+ },
81
+ type: 'grid'
82
+ };
227
83
 
228
- this.triggerUpdate = function () {
229
- _this6.listeners.forEach(function (fn) {
230
- return fn(_this6.data);
231
- });
232
- };
84
+ var elements = {
85
+ Button: Button,
86
+ BaseElement: BaseElement,
87
+ Grid: Grid
88
+ };
233
89
 
234
- this.useSubscription = function (fn) {
235
- useEffect(function () {
236
- _this6.subscribe(fn);
90
+ var _excluded$1 = ["id", "type", "childIds", "css", "className"];
237
91
 
238
- return function () {
239
- _this6.unsubscribe(fn);
240
- };
241
- }, []);
242
- };
92
+ var createRootContext = function createRootContext(configs) {
93
+ var rootContext = new Weaverse(configs); // Register the element components
243
94
 
244
- this.data = itemData;
245
- var _itemData = itemData,
246
- type = _itemData.type;
95
+ Object.keys(elements).forEach(function (key) {
96
+ var _Elements$key, _Elements$key$default;
247
97
 
248
- if (type) {
249
- this.Component = weaverse.elementInstances.get(type);
250
- }
98
+ // @ts-ignore
99
+ ((_Elements$key = elements[key]) == null ? void 0 : (_Elements$key$default = _Elements$key.defaultProps) == null ? void 0 : _Elements$key$default.type) && rootContext.registerElement(elements[key].defaultProps.type, elements[key]);
100
+ });
101
+ return rootContext;
251
102
  };
252
103
 
253
- var _excluded = ["id", "type", "childIds"];
254
-
255
104
  var WeaverseRoot = function WeaverseRoot(_ref) {
256
- var _context$projectData, _context$projectData$;
105
+ var _context$projectData, _context$projectData$, _context$studioBridge;
257
106
 
258
107
  var context = _ref.context,
259
108
  defaultData = _ref.defaultData;
260
109
 
261
- var _React$useState = useState(context.projectData),
262
- setData = _React$useState[1];
110
+ var _useState = useState(context.projectData),
111
+ setData = _useState[1];
263
112
 
264
113
  useEffect(function () {
265
114
  var handleUpdate = function handleUpdate() {
266
- setData(context.projectData);
115
+ setData(_extends({}, context.projectData));
267
116
  };
268
117
 
269
118
  context.subscribe(handleUpdate);
@@ -278,10 +127,12 @@ var WeaverseRoot = function WeaverseRoot(_ref) {
278
127
  context.initItemData();
279
128
  }
280
129
 
281
- return createElement(RenderItem, {
130
+ var handleProps = (context == null ? void 0 : (_context$studioBridge = context.studioBridge) == null ? void 0 : _context$studioBridge.handleProps) || {};
131
+ console.log('handleProps', handleProps);
132
+ return React__default.createElement("div", Object.assign({}, handleProps), React__default.createElement(RenderItem, {
282
133
  itemId: 0,
283
134
  context: context
284
- });
135
+ }));
285
136
  };
286
137
 
287
138
  var Item = function Item(_ref2) {
@@ -289,28 +140,58 @@ var Item = function Item(_ref2) {
289
140
  elementInstances = _ref2.elementInstances,
290
141
  context = _ref2.context;
291
142
 
292
- var _React$useState2 = useState(itemInstance.data),
293
- data = _React$useState2[0],
294
- setData = _React$useState2[1];
143
+ var _useState2 = useState(itemInstance.data),
144
+ data = _useState2[0],
145
+ setData = _useState2[1];
295
146
 
296
147
  var id = data.id,
297
148
  type = data.type,
298
149
  childIds = data.childIds,
299
- rest = _objectWithoutPropertiesLoose(data, _excluded);
150
+ css = data.css,
151
+ className = data.className,
152
+ rest = _objectWithoutPropertiesLoose(data, _excluded$1);
153
+
154
+ useEffect(function () {
155
+ var handleUpdate = function handleUpdate(update) {
156
+ setData(_extends({}, update));
157
+ };
158
+
159
+ itemInstance.subscribe(handleUpdate);
160
+
161
+ if (!itemInstance.ref.current && isBrowser) {
162
+ Object.assign(itemInstance.ref, {
163
+ current: document.querySelector("[data-wv-id=\"" + id + "\"]")
164
+ });
165
+ }
166
+
167
+ return function () {
168
+ itemInstance.unsubscribe(handleUpdate);
169
+ };
170
+ }, []);
171
+ var realClassName = className || '';
172
+
173
+ if (css) {
174
+ // let stitches create the style from css object and
175
+ // then return the classname, so we can use it in the render
176
+ var selector = context.stitchesInstance.css(css)().className;
177
+ realClassName += ' ' + selector;
178
+ }
300
179
 
301
- var useSubscription = itemInstance.useSubscription;
302
- useSubscription(function (update) {
303
- console.log('update', update);
304
- setData(_extends({}, update));
305
- });
306
180
  var Component = elementInstances.get(type);
307
181
 
308
182
  if (Component) {
309
- return createElement(Component, Object.assign({
183
+ // @ts-ignore
184
+ if (Component.$$typeof === Symbol["for"]('react.forward_ref')) {
185
+ rest.ref = itemInstance.ref;
186
+ }
187
+
188
+ return React__default.createElement(Component, Object.assign({
310
189
  key: id,
311
190
  "data-wv-id": id
312
- }, rest), Array.isArray(childIds) && childIds.map(function (childId) {
313
- return createElement(RenderItem, {
191
+ }, rest, {
192
+ className: realClassName
193
+ }), Array.isArray(childIds) && childIds.map(function (childId) {
194
+ return React__default.createElement(RenderItem, {
314
195
  key: childId,
315
196
  itemId: childId,
316
197
  context: context
@@ -329,15 +210,15 @@ var RenderItem = function RenderItem(_ref3) {
329
210
  var itemInstance = itemInstances.get(itemId);
330
211
 
331
212
  if (itemInstance) {
332
- return createElement(Item, {
213
+ return React__default.createElement(Item, {
333
214
  itemInstance: itemInstance,
334
215
  elementInstances: elementInstances,
335
216
  context: context
336
217
  });
337
218
  }
338
219
 
339
- return createElement(Fragment, null);
220
+ return React__default.createElement(React__default.Fragment, null);
340
221
  };
341
222
 
342
- export { Weaverse, WeaverseRoot };
223
+ export { WeaverseRoot, createRootContext };
343
224
  //# sourceMappingURL=sdk-react.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-react.esm.js","sources":["../src/utils/index.ts","../src/core.ts","../src/index.tsx"],"sourcesContent":["export const isReactNative = typeof navigator === 'object' && navigator.product === 'ReactNative'\nexport const isBrowser = typeof window !== 'undefined' && !isReactNative\nexport const isIframe = isBrowser && window.top !== window.self","// TODO: Implement Weaverse SDK class\nimport fetch from 'isomorphic-unfetch'\nimport Elements from '@weaverse/elements'\nimport {useEffect} from 'react'\nimport {isBrowser} from './utils'\n\n\nexport interface ProjectDataItemType {\n\ttype: string\n\tname: string\n\tid: string | number\n}\n\nexport interface ProjectDataType {\n\titems: ProjectDataItemType[]\n}\n\nexport class Weaverse {\n\telementInstances = new Map<string, any>()\n\titemInstances = new Map<string | number, WeaverseItemStore>()\n\tappUrl: string = 'http://localhost:3000'\n\tprojectKey: string = ''\n\tprojectData: ProjectDataType = {\n\t\titems: []\n\t}\n\tlisteners: Set<any> = new Set()\n\tisEditor = false\n\tcurrentFrameSubscription: any\n\n\tconstructor({\n\t\t\t\t\tappUrl,\n\t\t\t\t\tprojectKey,\n\t\t\t\t\tprojectData\n\t\t\t\t}: { appUrl?: string, projectKey?: string, projectData?: ProjectDataType } = {}) {\n\t\tthis.appUrl = appUrl || this.appUrl\n\t\tthis.projectKey = projectKey || this.projectKey\n\t\tprojectData && (this.projectData = projectData)\n\t\tthis.init()\n\t}\n\n\tregisterElement(name: string, element: any) {\n\t\tthis.elementInstances.set(name, element)\n\t}\n\n\tinit() {\n\t\tObject.keys(Elements).forEach(key => {\n\t\t\t// @ts-ignore\n\t\t\tElements[key]?.configs?.type && this.registerElement(Elements[key].configs.type, Elements[key])\n\t\t})\n\t\tthis.subscribeMessageEvent()\n\t}\n\n\tsubscribe(fn: any) {\n\t\tthis.listeners.add(fn)\n\t}\n\n\tunsubscribe(fn: any) {\n\t\tthis.listeners.delete(fn)\n\t}\n\n\ttriggerUpdate() {\n\t\tthis.listeners.forEach(fn => fn())\n\t\tthis.triggerEditorUpdate()\n\t}\n\n\tfetchProjectData() {\n\t\treturn fetch(this.appUrl + `/api/public/${this.projectKey}`).then(r => r.json())\n\t}\n\n\tupdateProjectData() {\n\t\tif (this.projectKey) {\n\t\t\tthis.fetchProjectData().then(data => {\n\t\t\t\tif (data) {\n\t\t\t\t\tthis.projectData = data\n\t\t\t\t\tthis.initItemData()\n\t\t\t\t\tthis.triggerUpdate()\n\t\t\t\t}\n\t\t\t}).catch(err => {\n\t\t\t\tconsole.error(err)\n\t\t\t})\n\t\t}\n\t}\n\n\tsubscribeMessageEvent() {\n\t\tif (typeof this.currentFrameSubscription === 'function') {\n\t\t\tthis.currentFrameSubscription()\n\t\t}\n\t\tisBrowser && window.addEventListener('message', this.handleMessageEvent)\n\t\tthis.currentFrameSubscription = () => {\n\t\t\tisBrowser && window.removeEventListener('message', this.handleMessageEvent)\n\t\t}\n\t\treturn this.currentFrameSubscription\n\t}\n\n\ttriggerEditorUpdate(type = 'weaverse.workspace.init') {\n\t\tif (this.isEditor) {\n\t\t\twindow.top?.postMessage({\n\t\t\t\ttype, payload: {\n\t\t\t\t\tprojectKey: this.projectKey,\n\t\t\t\t\tprojectData: this.projectData\n\t\t\t\t}\n\t\t\t}, '*')\n\t\t}\n\t}\n\n\thandleMessageEvent = (e: MessageEvent) => {\n\t\tif (e.data?.type?.startsWith('weaverse.')) {\n\t\t\tlet type = e.data.type\n\t\t\tswitch (type) {\n\t\t\t\tcase 'weaverse.editor.ready':\n\t\t\t\t\tthis.isEditor = true\n\t\t\t\t\tbreak\n\t\t\t\tcase 'weaverse.editor.update':\n\t\t\t\t\tlet {payload} = e.data\n\t\t\t\t\tlet {itemId, background} = payload\n\t\t\t\t\tlet instance = this.itemInstances.get(itemId)\n\t\t\t\t\tif (instance) {\n\t\t\t\t\t\tinstance.setData({\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\tbackground\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tinitItemData() {\n\t\tlet data = this.projectData\n\t\tif (data.items) {\n\t\t\tdata.items.forEach(item => {\n\t\t\t\tlet itemStore = this.itemInstances.get(item.id) || new WeaverseItemStore(item, this)\n\t\t\t\tthis.itemInstances.set(item.id, itemStore)\n\t\t\t})\n\t\t}\n\t}\n}\n\nexport class WeaverseItemStore {\n\tdata: any = {}\n\tlisteners: Set<any> = new Set()\n\tComponent: any\n\n\tconstructor(itemData: any = {}, weaverse: Weaverse) {\n\t\tthis.data = itemData\n\t\tlet {type} = itemData\n\t\tif (type) {\n\t\t\tthis.Component = weaverse.elementInstances.get(type)\n\t\t}\n\t}\n\n\tsetData = (data: any) => {\n\t\tthis.data = Object.assign(this.data, data)\n\t\tthis.triggerUpdate()\n\t}\n\n\tsubscribe = (fn: any) => {\n\t\tthis.listeners.add(fn)\n\t}\n\n\tunsubscribe = (fn: any) => {\n\t\tthis.listeners.delete(fn)\n\t}\n\n\ttriggerUpdate = () => {\n\t\tthis.listeners.forEach(fn => {\n\t\t\treturn fn(this.data)\n\t\t})\n\t}\n\n\tuseSubscription = (fn: any) => {\n\t\tuseEffect(() => {\n\t\t\tthis.subscribe(fn)\n\t\t\treturn () => {\n\t\t\t\tthis.unsubscribe(fn)\n\t\t\t}\n\t\t}, [])\n\t}\n\n\n\t// addItem(item: any) {\n\t// \tthis.items.push(item)\n\t// \tthis.triggerUpdate()\n\t// }\n\t//\n\t// removeItem(item: any) {\n\t// \tthis.items = this.items.filter(i => i !== item)\n\t// \tthis.triggerUpdate()\n\t// }\n}","import * as React from 'react'\nimport {useEffect} from 'react'\nimport {Weaverse} from './core'\n\nconst WeaverseRoot = ({context, defaultData}: { context: Weaverse, defaultData: any }) => {\n let [, setData] = React.useState<any>(context.projectData)\n useEffect(() => {\n let handleUpdate = () => {\n setData(context.projectData)\n }\n context.subscribe(handleUpdate)\n context.updateProjectData()\n\n return () => {\n context.unsubscribe(handleUpdate)\n }\n }, [])\n if (!context.projectData?.items?.length && defaultData) {\n context.projectData = defaultData\n context.initItemData()\n }\n return <RenderItem itemId={0} context={context}/>\n\n}\n\n\nconst Item = ({itemInstance, elementInstances, context}: any) => {\n let [data, setData] = React.useState<any>(itemInstance.data)\n let {id, type, childIds, ...rest} = data\n\n let {useSubscription} = itemInstance\n useSubscription((update: any) => {\n console.log('update', update)\n setData({...update})\n })\n let Component = elementInstances.get(type)\n if (Component) {\n return <Component key={id} data-wv-id={id} {...rest}>\n {Array.isArray(childIds)\n && childIds.map(childId =>\n <RenderItem\n key={childId}\n itemId={childId}\n context={context}\n />\n )}\n </Component>\n }\n return null\n}\nconst RenderItem = ({itemId, context}: { itemId: number, context: any }): any => {\n let {itemInstances, elementInstances} = context\n let itemInstance = itemInstances.get(itemId)\n if (itemInstance) {\n return <Item itemInstance={itemInstance} elementInstances={elementInstances} context={context}/>\n }\n return <></>\n}\n\nexport {Weaverse, WeaverseRoot}\n"],"names":["isReactNative","navigator","product","isBrowser","window","Weaverse","appUrl","projectKey","projectData","Map","items","Set","e","data","type","startsWith","isEditor","payload","itemId","background","instance","itemInstances","get","setData","style","init","registerElement","name","element","elementInstances","set","Object","keys","Elements","forEach","key","configs","subscribeMessageEvent","subscribe","fn","listeners","add","unsubscribe","triggerUpdate","triggerEditorUpdate","fetchProjectData","fetch","then","r","json","updateProjectData","initItemData","err","console","error","currentFrameSubscription","addEventListener","handleMessageEvent","removeEventListener","top","postMessage","item","itemStore","id","WeaverseItemStore","itemData","weaverse","assign","useEffect","Component","WeaverseRoot","context","defaultData","React","handleUpdate","length","RenderItem","Item","itemInstance","childIds","rest","useSubscription","update","log","Array","isArray","map","childId"],"mappings":"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"}
1
+ {"version":3,"file":"sdk-react.esm.js","sources":["../src/elements/button.tsx","../src/elements/base.tsx","../src/elements/grid.tsx","../src/elements/index.ts","../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport const Button = React.forwardRef((props: any, ref) => {\n let [count, setCount] = React.useState(0)\n return <button ref={ref} {...props} onClick={() => setCount(count + 1)}>Test Button {count}</button>\n})\n\nButton.defaultProps = {\n style: {\n backgroundColor: 'green',\n borderRadius: '9999px',\n fontSize: '13px',\n padding: '10px 15px'\n },\n type: 'button',\n tag: 'button'\n}\n\nexport default Button","import React from 'react'\n\nexport const BaseElement = ({tag, children, ...props}: any) => {\n return React.createElement(tag, {\n ...props\n }, children)\n}\n\nBaseElement.defaultProps = {\n type: 'base',\n tag: 'div'\n}\nexport default BaseElement\n","import React from 'react'\n\nexport default function Grid(props: any) {\n return <div {...props} />\n}\n\nGrid.defaultProps = {\n style: {\n // display: 'grid',\n // outline: '1px solid red',\n },\n type: 'grid'\n}","import Button from './button'\nimport BaseElement from './base'\nimport Grid from './grid'\n\nconst elements = {\n Button,\n BaseElement,\n Grid\n}\nexport default elements","import React, {FC, useEffect, useState} from 'react'\nimport {isBrowser, Weaverse, WeaverseItemStore, WeaverseType} from '@weaverse/core'\nimport Elements from './elements'\n\n\nconst createRootContext = (configs: WeaverseType) => {\n const rootContext = new Weaverse(configs)\n // Register the element components\n Object.keys(Elements).forEach(key => {\n // @ts-ignore\n Elements[key]?.defaultProps?.type && rootContext.registerElement(Elements[key].defaultProps.type, Elements[key])\n })\n\n return rootContext\n}\n\nconst WeaverseRoot = ({context, defaultData}: { context: Weaverse, defaultData: any }) => {\n let [, setData] = useState<any>(context.projectData)\n useEffect(() => {\n let handleUpdate = () => {\n setData({...context.projectData})\n }\n context.subscribe(handleUpdate)\n context.updateProjectData()\n return () => {\n context.unsubscribe(handleUpdate)\n }\n }, [])\n if (!context.projectData?.items?.length && defaultData) {\n context.projectData = defaultData\n context.initItemData()\n }\n let handleProps = context?.studioBridge?.handleProps || {}\n console.log('handleProps', handleProps)\n return <div {...handleProps}>\n <RenderItem itemId={0} context={context}/>\n </div>\n}\n\n\ntype ItemProps = {\n itemInstance: WeaverseItemStore\n elementInstances: Map<string, FC>\n context: Weaverse\n}\n\n\nconst Item = ({itemInstance, elementInstances, context}: ItemProps) => {\n let [data, setData] = useState<any>(itemInstance.data)\n let {id, type, childIds, css, className, ...rest} = data\n useEffect(() => {\n let handleUpdate = (update: any) => {\n setData({...update})\n }\n itemInstance.subscribe(handleUpdate)\n if (!itemInstance.ref.current && isBrowser) {\n Object.assign(itemInstance.ref, {current: document.querySelector(`[data-wv-id=\"${id}\"]`)})\n }\n\n return () => {\n itemInstance.unsubscribe(handleUpdate)\n }\n }, [])\n\n let realClassName = className || ''\n if (css) {\n\n // let stitches create the style from css object and\n // then return the classname, so we can use it in the render\n let selector = (context.stitchesInstance.css(css)()).className\n realClassName += ' ' + selector\n }\n let Component = elementInstances.get(type)\n if (Component) {\n // @ts-ignore\n if (Component.$$typeof === Symbol.for('react.forward_ref')) {\n rest.ref = itemInstance.ref\n }\n return <Component key={id} data-wv-id={id} {...rest} className={realClassName}>\n {Array.isArray(childIds)\n && childIds.map(childId =>\n <RenderItem\n key={childId}\n itemId={childId}\n context={context}\n />\n )}\n </Component>\n }\n return null\n}\n\nconst RenderItem = ({itemId, context}: { itemId: number, context: any }): any => {\n let {itemInstances, elementInstances} = context\n let itemInstance = itemInstances.get(itemId)\n if (itemInstance) {\n return <Item itemInstance={itemInstance} elementInstances={elementInstances} context={context}/>\n }\n return <></>\n}\n\nexport {createRootContext, WeaverseRoot}\n"],"names":["Button","React","props","ref","count","setCount","onClick","defaultProps","style","backgroundColor","borderRadius","fontSize","padding","type","tag","BaseElement","children","createElement","Grid","elements","createRootContext","configs","rootContext","Weaverse","Object","keys","Elements","forEach","key","registerElement","WeaverseRoot","context","defaultData","useState","projectData","setData","useEffect","handleUpdate","subscribe","updateProjectData","unsubscribe","items","length","initItemData","handleProps","studioBridge","console","log","RenderItem","itemId","Item","itemInstance","elementInstances","data","id","childIds","css","className","rest","update","current","isBrowser","assign","document","querySelector","realClassName","selector","stitchesInstance","Component","get","$$typeof","Symbol","Array","isArray","map","childId","itemInstances"],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.5",
2
+ "version": "0.1.9",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -7,8 +7,7 @@
7
7
  "access": "public"
8
8
  },
9
9
  "files": [
10
- "dist",
11
- "src"
10
+ "dist"
12
11
  ],
13
12
  "engines": {
14
13
  "node": ">=10"
@@ -24,8 +23,8 @@
24
23
  "analyze": "size-limit --why"
25
24
  },
26
25
  "peerDependencies": {
27
- "@weaverse/elements": "^0.1.1",
28
- "react": ">=16"
26
+ "react": ">=16",
27
+ "react-dom": ">=16"
29
28
  },
30
29
  "husky": {
31
30
  "hooks": {
@@ -39,7 +38,7 @@
39
38
  "trailingComma": "es5"
40
39
  },
41
40
  "name": "@weaverse/react",
42
- "author": "Paul Phan",
41
+ "author": "Weaverse Team",
43
42
  "module": "dist/sdk-react.esm.js",
44
43
  "size-limit": [
45
44
  {
@@ -52,19 +51,20 @@
52
51
  }
53
52
  ],
54
53
  "devDependencies": {
55
- "@size-limit/preset-small-lib": "^7.0.4",
56
- "@types/react": "^17.0.37",
54
+ "@size-limit/preset-small-lib": "^7.0.8",
55
+ "@types/react": "^17.0.39",
57
56
  "@types/react-dom": "^17.0.11",
58
- "@weaverse/elements": "^0.1.4",
57
+ "@types/react-is": "^17.0.3",
59
58
  "husky": "^7.0.4",
60
59
  "react": "^17.0.2",
61
60
  "react-dom": "^17.0.2",
62
- "size-limit": "^7.0.4",
61
+ "size-limit": "^7.0.8",
63
62
  "tsdx": "^0.14.1",
64
63
  "tslib": "^2.3.1",
65
- "typescript": "^4.5.4"
64
+ "typescript": "^4.5.5"
66
65
  },
67
66
  "dependencies": {
68
- "isomorphic-unfetch": "^3.1.0"
67
+ "@nextui-org/react": "^1.0.2-beta.3",
68
+ "@weaverse/core": "^0.2.3"
69
69
  }
70
70
  }
package/dist/core.d.ts DELETED
@@ -1,45 +0,0 @@
1
- export interface ProjectDataItemType {
2
- type: string;
3
- name: string;
4
- id: string | number;
5
- }
6
- export interface ProjectDataType {
7
- items: ProjectDataItemType[];
8
- }
9
- export declare class Weaverse {
10
- elementInstances: Map<string, any>;
11
- itemInstances: Map<string | number, WeaverseItemStore>;
12
- appUrl: string;
13
- projectKey: string;
14
- projectData: ProjectDataType;
15
- listeners: Set<any>;
16
- isEditor: boolean;
17
- currentFrameSubscription: any;
18
- constructor({ appUrl, projectKey, projectData }?: {
19
- appUrl?: string;
20
- projectKey?: string;
21
- projectData?: ProjectDataType;
22
- });
23
- registerElement(name: string, element: any): void;
24
- init(): void;
25
- subscribe(fn: any): void;
26
- unsubscribe(fn: any): void;
27
- triggerUpdate(): void;
28
- fetchProjectData(): Promise<any>;
29
- updateProjectData(): void;
30
- subscribeMessageEvent(): any;
31
- triggerEditorUpdate(type?: string): void;
32
- handleMessageEvent: (e: MessageEvent) => void;
33
- initItemData(): void;
34
- }
35
- export declare class WeaverseItemStore {
36
- data: any;
37
- listeners: Set<any>;
38
- Component: any;
39
- constructor(itemData: any, weaverse: Weaverse);
40
- setData: (data: any) => void;
41
- subscribe: (fn: any) => void;
42
- unsubscribe: (fn: any) => void;
43
- triggerUpdate: () => void;
44
- useSubscription: (fn: any) => void;
45
- }
@@ -1,3 +0,0 @@
1
- export declare const isReactNative: boolean;
2
- export declare const isBrowser: boolean;
3
- export declare const isIframe: boolean;