@weaverse/react 0.1.4 → 0.1.8

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,239 +34,96 @@ 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
- };
37
+ var Button = /*#__PURE__*/forwardRef(function (props, ref) {
38
+ var _React$useState = useState(0),
39
+ count = _React$useState[0],
40
+ setCount = _React$useState[1];
122
41
 
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
- });
42
+ return createElement("button", Object.assign({
43
+ ref: ref
44
+ }, props, {
45
+ onClick: function onClick() {
46
+ return setCount(count + 1);
151
47
  }
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
- };
187
-
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
- });
199
- }
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();
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
+ };
213
60
 
214
- this.setData = function (data) {
215
- _this6.data = Object.assign(_this6.data, data);
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);
216
66
 
217
- _this6.triggerUpdate();
218
- };
67
+ return React__default.createElement(tag, _extends({}, props), children);
68
+ };
69
+ BaseElement.defaultProps = {
70
+ type: 'base',
71
+ tag: 'div'
72
+ };
219
73
 
220
- this.subscribe = function (fn) {
221
- _this6.listeners.add(fn);
222
- };
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
+ };
223
83
 
224
- this.unsubscribe = function (fn) {
225
- _this6.listeners["delete"](fn);
226
- };
84
+ var elements = {
85
+ Button: Button,
86
+ BaseElement: BaseElement,
87
+ Grid: Grid
88
+ };
227
89
 
228
- this.triggerUpdate = function () {
229
- _this6.listeners.forEach(function (fn) {
230
- return fn(_this6.data);
231
- });
232
- };
90
+ var _excluded$1 = ["id", "type", "childIds", "css", "className"];
233
91
 
234
- this.useSubscription = function (fn) {
235
- useEffect(function () {
236
- _this6.subscribe(fn);
92
+ var createRootContext = function createRootContext(configs) {
93
+ var rootContext = new Weaverse(configs); // Register the element components
237
94
 
238
- return function () {
239
- _this6.unsubscribe(fn);
240
- };
241
- }, []);
242
- };
95
+ Object.keys(elements).forEach(function (key) {
96
+ var _Elements$key, _Elements$key$default;
243
97
 
244
- this.data = itemData;
245
- var _itemData = itemData,
246
- type = _itemData.type;
247
-
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);
270
119
  context.updateProjectData();
120
+ var shouldRenderStudio = context.loadStudio();
121
+ console.log('shouldRenderStudio', shouldRenderStudio);
122
+
123
+ if (shouldRenderStudio) {
124
+ handleUpdate();
125
+ }
126
+
271
127
  return function () {
272
128
  context.unsubscribe(handleUpdate);
273
129
  };
@@ -278,10 +134,12 @@ var WeaverseRoot = function WeaverseRoot(_ref) {
278
134
  context.initItemData();
279
135
  }
280
136
 
281
- return createElement(RenderItem, {
137
+ var handleProps = (context == null ? void 0 : (_context$studioBridge = context.studioBridge) == null ? void 0 : _context$studioBridge.handleProps) || {};
138
+ console.log('handleProps', handleProps);
139
+ return React__default.createElement("div", Object.assign({}, handleProps), React__default.createElement(RenderItem, {
282
140
  itemId: 0,
283
141
  context: context
284
- });
142
+ }));
285
143
  };
286
144
 
287
145
  var Item = function Item(_ref2) {
@@ -289,28 +147,58 @@ var Item = function Item(_ref2) {
289
147
  elementInstances = _ref2.elementInstances,
290
148
  context = _ref2.context;
291
149
 
292
- var _React$useState2 = useState(itemInstance.data),
293
- data = _React$useState2[0],
294
- setData = _React$useState2[1];
150
+ var _useState2 = useState(itemInstance.data),
151
+ data = _useState2[0],
152
+ setData = _useState2[1];
295
153
 
296
154
  var id = data.id,
297
155
  type = data.type,
298
156
  childIds = data.childIds,
299
- rest = _objectWithoutPropertiesLoose(data, _excluded);
157
+ css = data.css,
158
+ className = data.className,
159
+ rest = _objectWithoutPropertiesLoose(data, _excluded$1);
160
+
161
+ useEffect(function () {
162
+ var handleUpdate = function handleUpdate(update) {
163
+ setData(_extends({}, update));
164
+ };
165
+
166
+ itemInstance.subscribe(handleUpdate);
167
+
168
+ if (!itemInstance.ref.current && isBrowser) {
169
+ Object.assign(itemInstance.ref, {
170
+ current: document.querySelector("[data-wv-id=\"" + id + "\"]")
171
+ });
172
+ }
173
+
174
+ return function () {
175
+ itemInstance.unsubscribe(handleUpdate);
176
+ };
177
+ }, []);
178
+ var realClassName = className || '';
179
+
180
+ if (css) {
181
+ // let stitches create the style from css object and
182
+ // then return the classname, so we can use it in the render
183
+ var selector = context.stitchesInstance.css(css)().className;
184
+ realClassName += ' ' + selector;
185
+ }
300
186
 
301
- var useSubscription = itemInstance.useSubscription;
302
- useSubscription(function (update) {
303
- console.log('update', update);
304
- setData(_extends({}, update));
305
- });
306
187
  var Component = elementInstances.get(type);
307
188
 
308
189
  if (Component) {
309
- return createElement(Component, Object.assign({
190
+ // @ts-ignore
191
+ if (Component.$$typeof === Symbol["for"]('react.forward_ref')) {
192
+ rest.ref = itemInstance.ref;
193
+ }
194
+
195
+ return React__default.createElement(Component, Object.assign({
310
196
  key: id,
311
197
  "data-wv-id": id
312
- }, rest), Array.isArray(childIds) && childIds.map(function (childId) {
313
- return createElement(RenderItem, {
198
+ }, rest, {
199
+ className: realClassName
200
+ }), Array.isArray(childIds) && childIds.map(function (childId) {
201
+ return React__default.createElement(RenderItem, {
314
202
  key: childId,
315
203
  itemId: childId,
316
204
  context: context
@@ -329,15 +217,15 @@ var RenderItem = function RenderItem(_ref3) {
329
217
  var itemInstance = itemInstances.get(itemId);
330
218
 
331
219
  if (itemInstance) {
332
- return createElement(Item, {
220
+ return React__default.createElement(Item, {
333
221
  itemInstance: itemInstance,
334
222
  elementInstances: elementInstances,
335
223
  context: context
336
224
  });
337
225
  }
338
226
 
339
- return createElement(Fragment, null);
227
+ return React__default.createElement(React__default.Fragment, null);
340
228
  };
341
229
 
342
- export { Weaverse, WeaverseRoot };
230
+ export { WeaverseRoot, createRootContext };
343
231
  //# 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 let shouldRenderStudio = context.loadStudio()\n console.log('shouldRenderStudio', shouldRenderStudio)\n if (shouldRenderStudio) {\n handleUpdate()\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 let handleProps = context?.studioBridge?.handleProps || {}\n console.log('handleProps', handleProps)\n return <div {...handleProps}>\n <RenderItem itemId={0} context={context}/>\n </div>\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\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","shouldRenderStudio","loadStudio","console","log","unsubscribe","items","length","initItemData","handleProps","studioBridge","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.4",
2
+ "version": "0.1.8",
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.2"
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;