@liveblocks/react 0.15.7 → 0.15.10

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/lib/esm/index.js CHANGED
@@ -1,5 +1,11 @@
1
1
  import { LiveMap, LiveList, LiveObject } from '@liveblocks/client';
2
2
  import * as React from 'react';
3
+ import { useReducer } from 'react';
4
+
5
+ function useRerender() {
6
+ const [, update] = useReducer((x) => x + 1, 0);
7
+ return update;
8
+ }
3
9
 
4
10
  const ClientContext = React.createContext(null);
5
11
  const RoomContext = React.createContext(null);
@@ -123,13 +129,10 @@ function useEventListener(callback) {
123
129
  }
124
130
  function useSelf() {
125
131
  const room = useRoom();
126
- const [, update] = React.useState(0);
132
+ const rerender = useRerender();
127
133
  React.useEffect(() => {
128
- function onChange() {
129
- update((x) => x + 1);
130
- }
131
- const unsubscribePresence = room.subscribe("my-presence", onChange);
132
- const unsubscribeConnection = room.subscribe("connection", onChange);
134
+ const unsubscribePresence = room.subscribe("my-presence", rerender);
135
+ const unsubscribeConnection = room.subscribe("connection", rerender);
133
136
  return () => {
134
137
  unsubscribePresence();
135
138
  unsubscribeConnection();
@@ -180,7 +183,7 @@ function useCrdt(key, initialCrdt) {
180
183
  var _a;
181
184
  const room = useRoom();
182
185
  const [root] = useStorage();
183
- const [, setCount] = React.useState(0);
186
+ const rerender = useRerender();
184
187
  React.useEffect(() => {
185
188
  if (root == null) {
186
189
  return;
@@ -190,21 +193,18 @@ function useCrdt(key, initialCrdt) {
190
193
  crdt = initialCrdt;
191
194
  root.set(key, crdt);
192
195
  }
193
- function onChange() {
194
- setCount((x) => x + 1);
195
- }
196
196
  function onRootChange() {
197
197
  const newCrdt = root.get(key);
198
198
  if (newCrdt !== crdt) {
199
199
  unsubscribeCrdt();
200
200
  crdt = newCrdt;
201
- unsubscribeCrdt = room.subscribe(crdt, onChange);
202
- setCount((x) => x + 1);
201
+ unsubscribeCrdt = room.subscribe(crdt, rerender);
202
+ rerender();
203
203
  }
204
204
  }
205
- let unsubscribeCrdt = room.subscribe(crdt, onChange);
205
+ let unsubscribeCrdt = room.subscribe(crdt, rerender);
206
206
  const unsubscribeRoot = room.subscribe(root, onRootChange);
207
- setCount((x) => x + 1);
207
+ rerender();
208
208
  return () => {
209
209
  unsubscribeRoot();
210
210
  unsubscribeCrdt();
package/lib/esm/index.mjs CHANGED
@@ -1,5 +1,11 @@
1
1
  import { LiveMap, LiveList, LiveObject } from '@liveblocks/client';
2
2
  import * as React from 'react';
3
+ import { useReducer } from 'react';
4
+
5
+ function useRerender() {
6
+ const [, update] = useReducer((x) => x + 1, 0);
7
+ return update;
8
+ }
3
9
 
4
10
  const ClientContext = React.createContext(null);
5
11
  const RoomContext = React.createContext(null);
@@ -123,13 +129,10 @@ function useEventListener(callback) {
123
129
  }
124
130
  function useSelf() {
125
131
  const room = useRoom();
126
- const [, update] = React.useState(0);
132
+ const rerender = useRerender();
127
133
  React.useEffect(() => {
128
- function onChange() {
129
- update((x) => x + 1);
130
- }
131
- const unsubscribePresence = room.subscribe("my-presence", onChange);
132
- const unsubscribeConnection = room.subscribe("connection", onChange);
134
+ const unsubscribePresence = room.subscribe("my-presence", rerender);
135
+ const unsubscribeConnection = room.subscribe("connection", rerender);
133
136
  return () => {
134
137
  unsubscribePresence();
135
138
  unsubscribeConnection();
@@ -180,7 +183,7 @@ function useCrdt(key, initialCrdt) {
180
183
  var _a;
181
184
  const room = useRoom();
182
185
  const [root] = useStorage();
183
- const [, setCount] = React.useState(0);
186
+ const rerender = useRerender();
184
187
  React.useEffect(() => {
185
188
  if (root == null) {
186
189
  return;
@@ -190,21 +193,18 @@ function useCrdt(key, initialCrdt) {
190
193
  crdt = initialCrdt;
191
194
  root.set(key, crdt);
192
195
  }
193
- function onChange() {
194
- setCount((x) => x + 1);
195
- }
196
196
  function onRootChange() {
197
197
  const newCrdt = root.get(key);
198
198
  if (newCrdt !== crdt) {
199
199
  unsubscribeCrdt();
200
200
  crdt = newCrdt;
201
- unsubscribeCrdt = room.subscribe(crdt, onChange);
202
- setCount((x) => x + 1);
201
+ unsubscribeCrdt = room.subscribe(crdt, rerender);
202
+ rerender();
203
203
  }
204
204
  }
205
- let unsubscribeCrdt = room.subscribe(crdt, onChange);
205
+ let unsubscribeCrdt = room.subscribe(crdt, rerender);
206
206
  const unsubscribeRoot = room.subscribe(root, onRootChange);
207
- setCount((x) => x + 1);
207
+ rerender();
208
208
  return () => {
209
209
  unsubscribeRoot();
210
210
  unsubscribeCrdt();
package/lib/index.js CHANGED
@@ -61,6 +61,15 @@ function _asyncToGenerator(fn) {
61
61
  };
62
62
  }
63
63
 
64
+ function useRerender() {
65
+ var _useReducer = React.useReducer(function (x) {
66
+ return x + 1;
67
+ }, 0),
68
+ update = _useReducer[1];
69
+
70
+ return update;
71
+ }
72
+
64
73
  var ClientContext = React__namespace.createContext(null);
65
74
  var RoomContext = React__namespace.createContext(null);
66
75
  function LiveblocksProvider(props) {
@@ -217,19 +226,10 @@ function useEventListener(callback) {
217
226
  }
218
227
  function useSelf() {
219
228
  var room = useRoom();
220
-
221
- var _React$useState3 = React__namespace.useState(0),
222
- update = _React$useState3[1];
223
-
229
+ var rerender = useRerender();
224
230
  React__namespace.useEffect(function () {
225
- function onChange() {
226
- update(function (x) {
227
- return x + 1;
228
- });
229
- }
230
-
231
- var unsubscribePresence = room.subscribe("my-presence", onChange);
232
- var unsubscribeConnection = room.subscribe("connection", onChange);
231
+ var unsubscribePresence = room.subscribe("my-presence", rerender);
232
+ var unsubscribeConnection = room.subscribe("connection", rerender);
233
233
  return function () {
234
234
  unsubscribePresence();
235
235
  unsubscribeConnection();
@@ -240,9 +240,9 @@ function useSelf() {
240
240
  function useStorage() {
241
241
  var room = useRoom();
242
242
 
243
- var _React$useState4 = React__namespace.useState(null),
244
- root = _React$useState4[0],
245
- setState = _React$useState4[1];
243
+ var _React$useState3 = React__namespace.useState(null),
244
+ root = _React$useState3[0],
245
+ setState = _React$useState3[1];
246
246
 
247
247
  React__namespace.useEffect(function () {
248
248
  var didCancel = false;
@@ -315,9 +315,7 @@ function useCrdt(key, initialCrdt) {
315
315
  var _useStorage = useStorage(),
316
316
  root = _useStorage[0];
317
317
 
318
- var _React$useState5 = React__namespace.useState(0),
319
- setCount = _React$useState5[1];
320
-
318
+ var rerender = useRerender();
321
319
  React__namespace.useEffect(function () {
322
320
  if (root == null) {
323
321
  return;
@@ -330,30 +328,20 @@ function useCrdt(key, initialCrdt) {
330
328
  root.set(key, crdt);
331
329
  }
332
330
 
333
- function onChange() {
334
- setCount(function (x) {
335
- return x + 1;
336
- });
337
- }
338
-
339
331
  function onRootChange() {
340
332
  var newCrdt = root.get(key);
341
333
 
342
334
  if (newCrdt !== crdt) {
343
335
  unsubscribeCrdt();
344
336
  crdt = newCrdt;
345
- unsubscribeCrdt = room.subscribe(crdt, onChange);
346
- setCount(function (x) {
347
- return x + 1;
348
- });
337
+ unsubscribeCrdt = room.subscribe(crdt, rerender);
338
+ rerender();
349
339
  }
350
340
  }
351
341
 
352
- var unsubscribeCrdt = room.subscribe(crdt, onChange);
342
+ var unsubscribeCrdt = room.subscribe(crdt, rerender);
353
343
  var unsubscribeRoot = room.subscribe(root, onRootChange);
354
- setCount(function (x) {
355
- return x + 1;
356
- });
344
+ rerender();
357
345
  return function () {
358
346
  unsubscribeRoot();
359
347
  unsubscribeCrdt();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liveblocks/react",
3
- "version": "0.15.7",
3
+ "version": "0.15.10",
4
4
  "description": "",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "license": "Apache-2.0",
35
35
  "peerDependencies": {
36
- "@liveblocks/client": "0.15.7",
36
+ "@liveblocks/client": "0.15.10",
37
37
  "react": "^16.14.0 || ^17"
38
38
  },
39
39
  "devDependencies": {
@@ -48,6 +48,7 @@
48
48
  "@testing-library/react": "^11.2.5",
49
49
  "@types/jest": "^26.0.20",
50
50
  "@types/react": "^16.14.0",
51
+ "@types/react-dom": "^17.0.14",
51
52
  "babel-core": "^6.26.3",
52
53
  "babel-jest": "^26.6.3",
53
54
  "babel-runtime": "^6.26.0",
@@ -65,4 +66,4 @@
65
66
  "url": "https://github.com/liveblocks/liveblocks.git",
66
67
  "directory": "packages/liveblocks-react"
67
68
  }
68
- }
69
+ }