@liveblocks/react 2.17.0 → 2.18.0-yjsfactory
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/_private.d.mts +1 -1
- package/dist/_private.d.ts +1 -1
- package/dist/_private.js +5 -5
- package/dist/_private.mjs +1 -1
- package/dist/{chunk-XHQ4VJ7B.mjs → chunk-6GCMTETG.mjs} +2 -2
- package/dist/{chunk-J5ZDLMBE.js → chunk-LJCQ446S.js} +229 -29
- package/dist/chunk-LJCQ446S.js.map +1 -0
- package/dist/{chunk-4KNGHD4I.mjs → chunk-OSTPNTQF.mjs} +212 -12
- package/dist/chunk-OSTPNTQF.mjs.map +1 -0
- package/dist/{chunk-K7QFAI6G.js → chunk-ZGSNISPA.js} +2 -2
- package/dist/chunk-ZGSNISPA.js.map +1 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -3
- package/dist/index.mjs.map +1 -1
- package/dist/{room-DVbQkoj3.d.mts → room-Bf3S78LF.d.mts} +78 -3
- package/dist/{room-DVbQkoj3.d.ts → room-Bf3S78LF.d.ts} +78 -3
- package/dist/suspense.d.mts +2 -2
- package/dist/suspense.d.ts +2 -2
- package/dist/suspense.js +9 -4
- package/dist/suspense.js.map +1 -1
- package/dist/suspense.mjs +8 -3
- package/dist/suspense.mjs.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-4KNGHD4I.mjs.map +0 -1
- package/dist/chunk-J5ZDLMBE.js.map +0 -1
- package/dist/chunk-K7QFAI6G.js.map +0 -1
- /package/dist/{chunk-XHQ4VJ7B.mjs.map → chunk-6GCMTETG.mjs.map} +0 -0
package/dist/_private.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { g as getUmbrellaStoreForClient, b as useAddRoomCommentReaction, a as useClientOrNull, c as useCreateRoomComment, d as useCreateRoomThread, e as useCreateTextMention, f as useDeleteRoomComment, h as useDeleteRoomThread, i as useDeleteTextMention, j as useEditRoomComment, k as useEditRoomThreadMetadata, l as useMarkRoomThreadAsRead, m as useMarkRoomThreadAsResolved, n as useMarkRoomThreadAsUnresolved, o as useMentionSuggestionsCache, p as useRemoveRoomCommentReaction, q as useReportTextEditor, r as useResolveMentionSuggestions, s as useRoomAttachmentUrl, u as useRoomOrNull, t as useRoomPermissions, v as useYjsProvider } from './room-
|
|
1
|
+
export { g as getUmbrellaStoreForClient, b as useAddRoomCommentReaction, a as useClientOrNull, c as useCreateRoomComment, d as useCreateRoomThread, e as useCreateTextMention, f as useDeleteRoomComment, h as useDeleteRoomThread, i as useDeleteTextMention, j as useEditRoomComment, k as useEditRoomThreadMetadata, l as useMarkRoomThreadAsRead, m as useMarkRoomThreadAsResolved, n as useMarkRoomThreadAsUnresolved, o as useMentionSuggestionsCache, p as useRemoveRoomCommentReaction, q as useReportTextEditor, r as useResolveMentionSuggestions, s as useRoomAttachmentUrl, u as useRoomOrNull, t as useRoomPermissions, v as useYjsProvider } from './room-Bf3S78LF.mjs';
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from 'react';
|
|
3
3
|
import { ISignal, SyncSource } from '@liveblocks/core';
|
|
4
4
|
import '@liveblocks/client';
|
package/dist/_private.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { g as getUmbrellaStoreForClient, b as useAddRoomCommentReaction, a as useClientOrNull, c as useCreateRoomComment, d as useCreateRoomThread, e as useCreateTextMention, f as useDeleteRoomComment, h as useDeleteRoomThread, i as useDeleteTextMention, j as useEditRoomComment, k as useEditRoomThreadMetadata, l as useMarkRoomThreadAsRead, m as useMarkRoomThreadAsResolved, n as useMarkRoomThreadAsUnresolved, o as useMentionSuggestionsCache, p as useRemoveRoomCommentReaction, q as useReportTextEditor, r as useResolveMentionSuggestions, s as useRoomAttachmentUrl, u as useRoomOrNull, t as useRoomPermissions, v as useYjsProvider } from './room-
|
|
1
|
+
export { g as getUmbrellaStoreForClient, b as useAddRoomCommentReaction, a as useClientOrNull, c as useCreateRoomComment, d as useCreateRoomThread, e as useCreateTextMention, f as useDeleteRoomComment, h as useDeleteRoomThread, i as useDeleteTextMention, j as useEditRoomComment, k as useEditRoomThreadMetadata, l as useMarkRoomThreadAsRead, m as useMarkRoomThreadAsResolved, n as useMarkRoomThreadAsUnresolved, o as useMentionSuggestionsCache, p as useRemoveRoomCommentReaction, q as useReportTextEditor, r as useResolveMentionSuggestions, s as useRoomAttachmentUrl, u as useRoomOrNull, t as useRoomPermissions, v as useYjsProvider } from './room-Bf3S78LF.js';
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from 'react';
|
|
3
3
|
import { ISignal, SyncSource } from '@liveblocks/core';
|
|
4
4
|
import '@liveblocks/client';
|
package/dist/_private.js
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
var
|
|
27
|
+
var _chunkLJCQ446Sjs = require('./chunk-LJCQ446S.js');
|
|
28
28
|
|
|
29
29
|
// src/lib/use-layout-effect.ts
|
|
30
30
|
var _react = require('react');
|
|
@@ -37,8 +37,8 @@ var MENTION_SUGGESTIONS_DEBOUNCE = 500;
|
|
|
37
37
|
function useMentionSuggestions(roomId, search) {
|
|
38
38
|
const [mentionSuggestions, setMentionSuggestions] = _react.useState.call(void 0, );
|
|
39
39
|
const lastInvokedAt = _react.useRef.call(void 0, );
|
|
40
|
-
const resolveMentionSuggestions =
|
|
41
|
-
const mentionSuggestionsCache =
|
|
40
|
+
const resolveMentionSuggestions = _chunkLJCQ446Sjs.useResolveMentionSuggestions.call(void 0, );
|
|
41
|
+
const mentionSuggestionsCache = _chunkLJCQ446Sjs.useMentionSuggestionsCache.call(void 0, );
|
|
42
42
|
_react.useEffect.call(void 0, () => {
|
|
43
43
|
if (search === void 0 || !resolveMentionSuggestions) {
|
|
44
44
|
return;
|
|
@@ -87,7 +87,7 @@ function useMentionSuggestions(roomId, search) {
|
|
|
87
87
|
|
|
88
88
|
|
|
89
89
|
function useSyncSource() {
|
|
90
|
-
const client =
|
|
90
|
+
const client = _chunkLJCQ446Sjs.useClient.call(void 0, );
|
|
91
91
|
const createSyncSource = client[_core.kInternal].createSyncSource;
|
|
92
92
|
const [syncSource, setSyncSource] = _react.useState.call(void 0, );
|
|
93
93
|
_react.useEffect.call(void 0, () => {
|
|
@@ -125,5 +125,5 @@ function useSyncSource() {
|
|
|
125
125
|
|
|
126
126
|
|
|
127
127
|
|
|
128
|
-
exports.getUmbrellaStoreForClient =
|
|
128
|
+
exports.getUmbrellaStoreForClient = _chunkLJCQ446Sjs.getUmbrellaStoreForClient; exports.useAddRoomCommentReaction = _chunkLJCQ446Sjs.useAddRoomCommentReaction; exports.useClientOrNull = _chunkLJCQ446Sjs.useClientOrNull; exports.useCreateRoomComment = _chunkLJCQ446Sjs.useCreateRoomComment; exports.useCreateRoomThread = _chunkLJCQ446Sjs.useCreateRoomThread; exports.useCreateTextMention = _chunkLJCQ446Sjs.useCreateTextMention; exports.useDeleteRoomComment = _chunkLJCQ446Sjs.useDeleteRoomComment; exports.useDeleteRoomThread = _chunkLJCQ446Sjs.useDeleteRoomThread; exports.useDeleteTextMention = _chunkLJCQ446Sjs.useDeleteTextMention; exports.useEditRoomComment = _chunkLJCQ446Sjs.useEditRoomComment; exports.useEditRoomThreadMetadata = _chunkLJCQ446Sjs.useEditRoomThreadMetadata; exports.useLayoutEffect = useLayoutEffect; exports.useMarkRoomThreadAsRead = _chunkLJCQ446Sjs.useMarkRoomThreadAsRead; exports.useMarkRoomThreadAsResolved = _chunkLJCQ446Sjs.useMarkRoomThreadAsResolved; exports.useMarkRoomThreadAsUnresolved = _chunkLJCQ446Sjs.useMarkRoomThreadAsUnresolved; exports.useMentionSuggestions = useMentionSuggestions; exports.useMentionSuggestionsCache = _chunkLJCQ446Sjs.useMentionSuggestionsCache; exports.useRemoveRoomCommentReaction = _chunkLJCQ446Sjs.useRemoveRoomCommentReaction; exports.useReportTextEditor = _chunkLJCQ446Sjs.useReportTextEditor; exports.useResolveMentionSuggestions = _chunkLJCQ446Sjs.useResolveMentionSuggestions; exports.useRoomAttachmentUrl = _chunkLJCQ446Sjs.useRoomAttachmentUrl; exports.useRoomOrNull = _chunkLJCQ446Sjs.useRoomOrNull; exports.useRoomPermissions = _chunkLJCQ446Sjs.useRoomPermissions; exports.useSignal = _chunkLJCQ446Sjs.useSignal; exports.useSyncExternalStoreWithSelector = _chunkLJCQ446Sjs.useSyncExternalStoreWithSelector; exports.useSyncSource = useSyncSource; exports.useYjsProvider = _chunkLJCQ446Sjs.useYjsProvider;
|
|
129
129
|
//# sourceMappingURL=_private.js.map
|
package/dist/_private.mjs
CHANGED
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
useSignal,
|
|
25
25
|
useSyncExternalStoreWithSelector,
|
|
26
26
|
useYjsProvider
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-OSTPNTQF.mjs";
|
|
28
28
|
|
|
29
29
|
// src/lib/use-layout-effect.ts
|
|
30
30
|
import { useEffect, useLayoutEffect as useOriginalLayoutEffect } from "react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/version.ts
|
|
2
2
|
var PKG_NAME = "@liveblocks/react";
|
|
3
|
-
var PKG_VERSION = "2.
|
|
3
|
+
var PKG_VERSION = "2.18.0-yjsfactory";
|
|
4
4
|
var PKG_FORMAT = "esm";
|
|
5
5
|
|
|
6
6
|
// src/ClientSideSuspense.tsx
|
|
@@ -20,4 +20,4 @@ export {
|
|
|
20
20
|
PKG_FORMAT,
|
|
21
21
|
ClientSideSuspense
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
23
|
+
//# sourceMappingURL=chunk-6GCMTETG.mjs.map
|
|
@@ -100,12 +100,15 @@ function useSignal(signal, selector, isEqual) {
|
|
|
100
100
|
// src/liveblocks.tsx
|
|
101
101
|
|
|
102
102
|
|
|
103
|
+
var _core = require('@liveblocks/core');
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
103
107
|
|
|
104
108
|
|
|
105
109
|
|
|
106
110
|
|
|
107
111
|
|
|
108
|
-
var _core = require('@liveblocks/core');
|
|
109
112
|
|
|
110
113
|
|
|
111
114
|
|
|
@@ -130,7 +133,9 @@ var config = {
|
|
|
130
133
|
HISTORY_VERSIONS_POLL_INTERVAL: 1 * MINUTES,
|
|
131
134
|
HISTORY_VERSIONS_MAX_STALE_TIME: 5 * SECONDS,
|
|
132
135
|
NOTIFICATION_SETTINGS_POLL_INTERVAL: 1 * MINUTES,
|
|
133
|
-
NOTIFICATION_SETTINGS_MAX_STALE_TIME: 5 * SECONDS
|
|
136
|
+
NOTIFICATION_SETTINGS_MAX_STALE_TIME: 5 * SECONDS,
|
|
137
|
+
USER_NOTIFICATION_SETTINGS_INTERVAL: 5 * MINUTES,
|
|
138
|
+
USER_NOTIFICATION_SETTINGS_MAX_STALE_TIME: 1 * MINUTES
|
|
134
139
|
};
|
|
135
140
|
|
|
136
141
|
// src/lib/AsyncResult.ts
|
|
@@ -242,6 +247,8 @@ var use = (
|
|
|
242
247
|
|
|
243
248
|
|
|
244
249
|
|
|
250
|
+
|
|
251
|
+
|
|
245
252
|
// src/lib/autobind.ts
|
|
246
253
|
function autobind(self) {
|
|
247
254
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -251,7 +258,7 @@ function autobind(self) {
|
|
|
251
258
|
for (const key of Reflect.ownKeys(obj)) {
|
|
252
259
|
if (seen.has(key)) continue;
|
|
253
260
|
const descriptor = Reflect.getOwnPropertyDescriptor(obj, key);
|
|
254
|
-
if (typeof _optionalChain([descriptor, 'optionalAccess',
|
|
261
|
+
if (typeof _optionalChain([descriptor, 'optionalAccess', _2 => _2.value]) === "function") {
|
|
255
262
|
seen.add(key);
|
|
256
263
|
self[key] = self[key].bind(self);
|
|
257
264
|
}
|
|
@@ -351,7 +358,7 @@ var ThreadDB = class _ThreadDB {
|
|
|
351
358
|
/** Returns an existing thread by ID. Will never return a deleted thread. */
|
|
352
359
|
get(threadId) {
|
|
353
360
|
const thread = this.getEvenIfDeleted(threadId);
|
|
354
|
-
return _optionalChain([thread, 'optionalAccess',
|
|
361
|
+
return _optionalChain([thread, 'optionalAccess', _3 => _3.deletedAt]) ? void 0 : thread;
|
|
355
362
|
}
|
|
356
363
|
/** Returns the (possibly deleted) thread by ID. */
|
|
357
364
|
getEvenIfDeleted(threadId) {
|
|
@@ -477,7 +484,7 @@ var PaginatedResource = class {
|
|
|
477
484
|
}
|
|
478
485
|
async #fetchMore() {
|
|
479
486
|
const state = this.#signal.get();
|
|
480
|
-
if (!_optionalChain([state, 'access',
|
|
487
|
+
if (!_optionalChain([state, 'access', _4 => _4.data, 'optionalAccess', _5 => _5.cursor]) || state.data.isFetchingMore) {
|
|
481
488
|
return;
|
|
482
489
|
}
|
|
483
490
|
this.#patch({ isFetchingMore: true });
|
|
@@ -498,7 +505,7 @@ var PaginatedResource = class {
|
|
|
498
505
|
}
|
|
499
506
|
fetchMore() {
|
|
500
507
|
const state = this.#signal.get();
|
|
501
|
-
if (!_optionalChain([state, 'access',
|
|
508
|
+
if (!_optionalChain([state, 'access', _6 => _6.data, 'optionalAccess', _7 => _7.cursor])) return noop2;
|
|
502
509
|
if (!this.#pendingFetchMore) {
|
|
503
510
|
this.#pendingFetchMore = this.#fetchMore().finally(() => {
|
|
504
511
|
this.#pendingFetchMore = null;
|
|
@@ -723,6 +730,26 @@ function createStore_forPermissionHints() {
|
|
|
723
730
|
update
|
|
724
731
|
};
|
|
725
732
|
}
|
|
733
|
+
function createStore_forUserNotificationSettings(updates) {
|
|
734
|
+
const signal = new (0, _core.Signal)({});
|
|
735
|
+
function update(settings) {
|
|
736
|
+
signal.set((prevSettings) => {
|
|
737
|
+
return {
|
|
738
|
+
...prevSettings,
|
|
739
|
+
...settings
|
|
740
|
+
};
|
|
741
|
+
});
|
|
742
|
+
}
|
|
743
|
+
return {
|
|
744
|
+
signal: _core.DerivedSignal.from(
|
|
745
|
+
signal,
|
|
746
|
+
updates,
|
|
747
|
+
(base, updates2) => applyOptimisticUpdates_forUserNotificationSettings(base, updates2)
|
|
748
|
+
),
|
|
749
|
+
// Mutations
|
|
750
|
+
update
|
|
751
|
+
};
|
|
752
|
+
}
|
|
726
753
|
function createStore_forOptimistic(client) {
|
|
727
754
|
const signal = new (0, _core.Signal)([]);
|
|
728
755
|
const syncSource = client[_core.kInternal].createSyncSource();
|
|
@@ -756,15 +783,17 @@ var UmbrellaStore = class {
|
|
|
756
783
|
//
|
|
757
784
|
// Mutate inputs... ...observe clean/consistent output!
|
|
758
785
|
//
|
|
759
|
-
// .-> Base ThreadDB ---------+ +----> Clean threads by ID
|
|
786
|
+
// .-> Base ThreadDB ---------+ +----> Clean threads by ID (Part 1)
|
|
760
787
|
// / | |
|
|
761
|
-
// mutate ----> Base Notifications --+ | | +--> Clean notifications
|
|
788
|
+
// mutate ----> Base Notifications --+ | | +--> Clean notifications (Part 1)
|
|
762
789
|
// \ | | | | & notifications by ID
|
|
763
790
|
// | \ | | Apply | |
|
|
764
|
-
// | `-> OptimisticUpdates --+--+--> Optimistic --+-+--> Notification Settings
|
|
765
|
-
// \ | Updates
|
|
766
|
-
// `------- etc etc ---------+
|
|
767
|
-
// ^
|
|
791
|
+
// | `-> OptimisticUpdates --+--+--> Optimistic --+-+--> Room Notification Settings (Part 2)
|
|
792
|
+
// \ | Updates | |
|
|
793
|
+
// `------- etc etc ---------+ | +--> History Versions (Part 3)
|
|
794
|
+
// ^ |
|
|
795
|
+
// | +-----> User Notification Settings (Part 4)
|
|
796
|
+
// |
|
|
768
797
|
// |
|
|
769
798
|
// | ^ ^
|
|
770
799
|
// Signal | |
|
|
@@ -786,6 +815,7 @@ var UmbrellaStore = class {
|
|
|
786
815
|
|
|
787
816
|
|
|
788
817
|
|
|
818
|
+
|
|
789
819
|
//
|
|
790
820
|
// Output signals.
|
|
791
821
|
// (Readonly, clean, consistent. With optimistic updates applied.)
|
|
@@ -805,6 +835,8 @@ var UmbrellaStore = class {
|
|
|
805
835
|
#userThreadsLastRequestedAt = null;
|
|
806
836
|
// Room versions
|
|
807
837
|
#roomVersionsLastRequestedAtByRoom = /* @__PURE__ */ new Map();
|
|
838
|
+
// User Notification Settings
|
|
839
|
+
#userNotificationSettings;
|
|
808
840
|
constructor(client) {
|
|
809
841
|
this.#client = client[_core.kInternal].as();
|
|
810
842
|
this.optimisticUpdates = createStore_forOptimistic(this.#client);
|
|
@@ -820,6 +852,16 @@ var UmbrellaStore = class {
|
|
|
820
852
|
return nextCursor;
|
|
821
853
|
}
|
|
822
854
|
);
|
|
855
|
+
const userNotificationSettingsFetcher = async () => {
|
|
856
|
+
const result = await this.#client.getNotificationSettings();
|
|
857
|
+
this.userNotificationSettings.update(result);
|
|
858
|
+
};
|
|
859
|
+
this.userNotificationSettings = createStore_forUserNotificationSettings(
|
|
860
|
+
this.optimisticUpdates.signal
|
|
861
|
+
);
|
|
862
|
+
this.#userNotificationSettings = new SinglePageResource(
|
|
863
|
+
userNotificationSettingsFetcher
|
|
864
|
+
);
|
|
823
865
|
this.threads = new ThreadDB();
|
|
824
866
|
this.notifications = createStore_forNotifications();
|
|
825
867
|
this.roomNotificationSettings = createStore_forRoomNotificationSettings(
|
|
@@ -997,6 +1039,19 @@ var UmbrellaStore = class {
|
|
|
997
1039
|
return { signal, waitUntilLoaded: resource.waitUntilLoaded };
|
|
998
1040
|
}
|
|
999
1041
|
);
|
|
1042
|
+
const userNotificationSettings = {
|
|
1043
|
+
signal: _core.DerivedSignal.from(() => {
|
|
1044
|
+
const result = this.#userNotificationSettings.get();
|
|
1045
|
+
if (result.isLoading || result.error) {
|
|
1046
|
+
return result;
|
|
1047
|
+
}
|
|
1048
|
+
return ASYNC_OK(
|
|
1049
|
+
"settings",
|
|
1050
|
+
_core.nn.call(void 0, this.userNotificationSettings.signal.get())
|
|
1051
|
+
);
|
|
1052
|
+
}, _core.shallow),
|
|
1053
|
+
waitUntilLoaded: this.#userNotificationSettings.waitUntilLoaded
|
|
1054
|
+
};
|
|
1000
1055
|
this.outputs = {
|
|
1001
1056
|
threadifications,
|
|
1002
1057
|
threads,
|
|
@@ -1005,7 +1060,8 @@ var UmbrellaStore = class {
|
|
|
1005
1060
|
notifications,
|
|
1006
1061
|
loadingNotifications,
|
|
1007
1062
|
settingsByRoomId,
|
|
1008
|
-
versionsByRoomId
|
|
1063
|
+
versionsByRoomId,
|
|
1064
|
+
userNotificationSettings
|
|
1009
1065
|
};
|
|
1010
1066
|
autobind(this);
|
|
1011
1067
|
}
|
|
@@ -1250,6 +1306,25 @@ var UmbrellaStore = class {
|
|
|
1250
1306
|
const result = await room.getNotificationSettings({ signal });
|
|
1251
1307
|
this.roomNotificationSettings.update(roomId, result);
|
|
1252
1308
|
}
|
|
1309
|
+
/**
|
|
1310
|
+
* Refresh User Notification Settings from poller
|
|
1311
|
+
*/
|
|
1312
|
+
async refreshUserNotificationSettings(signal) {
|
|
1313
|
+
const result = await this.#client.getNotificationSettings({
|
|
1314
|
+
signal
|
|
1315
|
+
});
|
|
1316
|
+
this.userNotificationSettings.update(result);
|
|
1317
|
+
}
|
|
1318
|
+
/**
|
|
1319
|
+
* Updates user notification settings with a new value, replacing the
|
|
1320
|
+
* corresponding optimistic update.
|
|
1321
|
+
*/
|
|
1322
|
+
updateUserNotificationSettings_confirmOptimisticUpdate(settings, optimisticUpdateId) {
|
|
1323
|
+
_core.batch.call(void 0, () => {
|
|
1324
|
+
this.optimisticUpdates.remove(optimisticUpdateId);
|
|
1325
|
+
this.userNotificationSettings.update(settings);
|
|
1326
|
+
});
|
|
1327
|
+
}
|
|
1253
1328
|
};
|
|
1254
1329
|
function applyOptimisticUpdates_forThreadifications(baseThreadsDB, notificationsLUT, optimisticUpdates) {
|
|
1255
1330
|
const threadsDB = baseThreadsDB.clone();
|
|
@@ -1424,6 +1499,33 @@ function applyOptimisticUpdates_forSettings(settingsLUT, optimisticUpdates) {
|
|
|
1424
1499
|
}
|
|
1425
1500
|
return settingsByRoomId;
|
|
1426
1501
|
}
|
|
1502
|
+
function applyOptimisticUpdates_forUserNotificationSettings(baseSettings, optimisticUpdates) {
|
|
1503
|
+
const outcomingSettings = { ...baseSettings };
|
|
1504
|
+
for (const optimisticUpdate of optimisticUpdates) {
|
|
1505
|
+
switch (optimisticUpdate.type) {
|
|
1506
|
+
case "update-user-notification-settings": {
|
|
1507
|
+
const incomingSettings = optimisticUpdate.settings;
|
|
1508
|
+
for (const channelKey of _core.keys.call(void 0, incomingSettings)) {
|
|
1509
|
+
const key = channelKey;
|
|
1510
|
+
const channelUpdates = incomingSettings[key];
|
|
1511
|
+
if (channelUpdates) {
|
|
1512
|
+
const realChannelUpdates = Object.fromEntries(
|
|
1513
|
+
_core.entries.call(void 0, channelUpdates).filter(
|
|
1514
|
+
([_, value]) => value !== void 0
|
|
1515
|
+
)
|
|
1516
|
+
);
|
|
1517
|
+
outcomingSettings[key] = {
|
|
1518
|
+
...outcomingSettings[key],
|
|
1519
|
+
...realChannelUpdates
|
|
1520
|
+
};
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
break;
|
|
1524
|
+
}
|
|
1525
|
+
}
|
|
1526
|
+
}
|
|
1527
|
+
return outcomingSettings;
|
|
1528
|
+
}
|
|
1427
1529
|
function compareInboxNotifications(inboxNotificationA, inboxNotificationB) {
|
|
1428
1530
|
if (inboxNotificationA.notifiedAt > inboxNotificationB.notifiedAt) {
|
|
1429
1531
|
return 1;
|
|
@@ -1473,7 +1575,7 @@ function applyUpsertComment(thread, comment) {
|
|
|
1473
1575
|
updatedAt: new Date(
|
|
1474
1576
|
Math.max(
|
|
1475
1577
|
thread.updatedAt.getTime(),
|
|
1476
|
-
_optionalChain([comment, 'access',
|
|
1578
|
+
_optionalChain([comment, 'access', _8 => _8.editedAt, 'optionalAccess', _9 => _9.getTime, 'call', _10 => _10()]) || comment.createdAt.getTime()
|
|
1477
1579
|
)
|
|
1478
1580
|
),
|
|
1479
1581
|
comments: updatedComments
|
|
@@ -1632,7 +1734,7 @@ function selectorFor_useUnreadInboxNotificationsCount(result) {
|
|
|
1632
1734
|
);
|
|
1633
1735
|
}
|
|
1634
1736
|
function selectorFor_useUser(state, userId) {
|
|
1635
|
-
if (state === void 0 || _optionalChain([state, 'optionalAccess',
|
|
1737
|
+
if (state === void 0 || _optionalChain([state, 'optionalAccess', _11 => _11.isLoading])) {
|
|
1636
1738
|
return _nullishCoalesce(state, () => ( { isLoading: true }));
|
|
1637
1739
|
}
|
|
1638
1740
|
if (state.error) {
|
|
@@ -1650,7 +1752,7 @@ function selectorFor_useUser(state, userId) {
|
|
|
1650
1752
|
};
|
|
1651
1753
|
}
|
|
1652
1754
|
function selectorFor_useRoomInfo(state, roomId) {
|
|
1653
|
-
if (state === void 0 || _optionalChain([state, 'optionalAccess',
|
|
1755
|
+
if (state === void 0 || _optionalChain([state, 'optionalAccess', _12 => _12.isLoading])) {
|
|
1654
1756
|
return _nullishCoalesce(state, () => ( { isLoading: true }));
|
|
1655
1757
|
}
|
|
1656
1758
|
if (state.error) {
|
|
@@ -1717,10 +1819,25 @@ function makeLiveblocksExtrasForClient(client) {
|
|
|
1717
1819
|
config.USER_THREADS_POLL_INTERVAL,
|
|
1718
1820
|
{ maxStaleTimeMs: config.USER_THREADS_MAX_STALE_TIME }
|
|
1719
1821
|
);
|
|
1822
|
+
const userNotificationSettingsPoller = _core.makePoller.call(void 0,
|
|
1823
|
+
async (signal) => {
|
|
1824
|
+
try {
|
|
1825
|
+
return await store.refreshUserNotificationSettings(signal);
|
|
1826
|
+
} catch (err) {
|
|
1827
|
+
console.warn(
|
|
1828
|
+
`Polling new user notification settings failed: ${String(err)}`
|
|
1829
|
+
);
|
|
1830
|
+
throw err;
|
|
1831
|
+
}
|
|
1832
|
+
},
|
|
1833
|
+
config.USER_NOTIFICATION_SETTINGS_INTERVAL,
|
|
1834
|
+
{ maxStaleTimeMs: config.USER_NOTIFICATION_SETTINGS_MAX_STALE_TIME }
|
|
1835
|
+
);
|
|
1720
1836
|
return {
|
|
1721
1837
|
store,
|
|
1722
1838
|
notificationsPoller,
|
|
1723
|
-
userThreadsPoller
|
|
1839
|
+
userThreadsPoller,
|
|
1840
|
+
userNotificationSettingsPoller
|
|
1724
1841
|
};
|
|
1725
1842
|
}
|
|
1726
1843
|
function makeLiveblocksContextBundle(client) {
|
|
@@ -1729,6 +1846,7 @@ function makeLiveblocksContextBundle(client) {
|
|
|
1729
1846
|
const useMarkAllInboxNotificationsAsRead2 = () => useMarkAllInboxNotificationsAsRead_withClient(client);
|
|
1730
1847
|
const useDeleteInboxNotification2 = () => useDeleteInboxNotification_withClient(client);
|
|
1731
1848
|
const useDeleteAllInboxNotifications2 = () => useDeleteAllInboxNotifications_withClient(client);
|
|
1849
|
+
const useUpdateNotificationSettings2 = () => useUpdateNotificationSettings_withClient(client);
|
|
1732
1850
|
function LiveblocksProvider2(props) {
|
|
1733
1851
|
useEnsureNoLiveblocksProvider();
|
|
1734
1852
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ClientContext.Provider, { value: client, children: props.children });
|
|
@@ -1742,6 +1860,8 @@ function makeLiveblocksContextBundle(client) {
|
|
|
1742
1860
|
useMarkAllInboxNotificationsAsRead: useMarkAllInboxNotificationsAsRead2,
|
|
1743
1861
|
useDeleteInboxNotification: useDeleteInboxNotification2,
|
|
1744
1862
|
useDeleteAllInboxNotifications: useDeleteAllInboxNotifications2,
|
|
1863
|
+
useNotificationSettings: () => useNotificationSettings_withClient(client),
|
|
1864
|
+
useUpdateNotificationSettings: useUpdateNotificationSettings2,
|
|
1745
1865
|
useInboxNotificationThread: useInboxNotificationThread2,
|
|
1746
1866
|
useUserThreads_experimental,
|
|
1747
1867
|
...shared.classic,
|
|
@@ -1754,6 +1874,8 @@ function makeLiveblocksContextBundle(client) {
|
|
|
1754
1874
|
useDeleteInboxNotification: useDeleteInboxNotification2,
|
|
1755
1875
|
useDeleteAllInboxNotifications: useDeleteAllInboxNotifications2,
|
|
1756
1876
|
useInboxNotificationThread: useInboxNotificationThread2,
|
|
1877
|
+
useNotificationSettings: () => useNotificationSettingsSuspense_withClient(client),
|
|
1878
|
+
useUpdateNotificationSettings: useUpdateNotificationSettings2,
|
|
1757
1879
|
useUserThreads_experimental: useUserThreadsSuspense_experimental,
|
|
1758
1880
|
...shared.suspense
|
|
1759
1881
|
}
|
|
@@ -1938,6 +2060,72 @@ function useInboxNotificationThread_withClient(client, inboxNotificationId) {
|
|
|
1938
2060
|
)
|
|
1939
2061
|
);
|
|
1940
2062
|
}
|
|
2063
|
+
function useUpdateNotificationSettings_withClient(client) {
|
|
2064
|
+
return _react.useCallback.call(void 0,
|
|
2065
|
+
(settings) => {
|
|
2066
|
+
const { store } = getLiveblocksExtrasForClient(client);
|
|
2067
|
+
const optimisticUpdateId = store.optimisticUpdates.add({
|
|
2068
|
+
type: "update-user-notification-settings",
|
|
2069
|
+
settings
|
|
2070
|
+
});
|
|
2071
|
+
client.updateNotificationSettings(settings).then(
|
|
2072
|
+
(settings2) => {
|
|
2073
|
+
store.updateUserNotificationSettings_confirmOptimisticUpdate(
|
|
2074
|
+
settings2,
|
|
2075
|
+
optimisticUpdateId
|
|
2076
|
+
);
|
|
2077
|
+
},
|
|
2078
|
+
(err) => {
|
|
2079
|
+
store.optimisticUpdates.remove(optimisticUpdateId);
|
|
2080
|
+
if (err instanceof _core.HttpError) {
|
|
2081
|
+
if (err.status === 422) {
|
|
2082
|
+
const msg = [_optionalChain([err, 'access', _13 => _13.details, 'optionalAccess', _14 => _14.error]), _optionalChain([err, 'access', _15 => _15.details, 'optionalAccess', _16 => _16.reason])].filter(Boolean).join("\n");
|
|
2083
|
+
console.error(msg);
|
|
2084
|
+
}
|
|
2085
|
+
client[_core.kInternal].emitError(
|
|
2086
|
+
{
|
|
2087
|
+
type: "UPDATE_USER_NOTIFICATION_SETTINGS_ERROR"
|
|
2088
|
+
},
|
|
2089
|
+
err
|
|
2090
|
+
);
|
|
2091
|
+
} else {
|
|
2092
|
+
throw err;
|
|
2093
|
+
}
|
|
2094
|
+
}
|
|
2095
|
+
);
|
|
2096
|
+
},
|
|
2097
|
+
[client]
|
|
2098
|
+
);
|
|
2099
|
+
}
|
|
2100
|
+
function useNotificationSettings_withClient(client) {
|
|
2101
|
+
const updateNotificationSettings = useUpdateNotificationSettings_withClient(client);
|
|
2102
|
+
const { store, userNotificationSettingsPoller: poller } = getLiveblocksExtrasForClient(client);
|
|
2103
|
+
_react.useEffect.call(void 0, () => {
|
|
2104
|
+
void store.outputs.userNotificationSettings.waitUntilLoaded();
|
|
2105
|
+
});
|
|
2106
|
+
_react.useEffect.call(void 0, () => {
|
|
2107
|
+
poller.inc();
|
|
2108
|
+
poller.pollNowIfStale();
|
|
2109
|
+
return () => {
|
|
2110
|
+
poller.dec();
|
|
2111
|
+
};
|
|
2112
|
+
}, [poller]);
|
|
2113
|
+
const result = useSignal(store.outputs.userNotificationSettings.signal);
|
|
2114
|
+
return _react.useMemo.call(void 0, () => {
|
|
2115
|
+
return [result, updateNotificationSettings];
|
|
2116
|
+
}, [result, updateNotificationSettings]);
|
|
2117
|
+
}
|
|
2118
|
+
function useNotificationSettingsSuspense_withClient(client) {
|
|
2119
|
+
ensureNotServerSide();
|
|
2120
|
+
const store = getLiveblocksExtrasForClient(client).store;
|
|
2121
|
+
use(store.outputs.userNotificationSettings.waitUntilLoaded());
|
|
2122
|
+
const [result, updateNotificationSettings] = useNotificationSettings_withClient(client);
|
|
2123
|
+
_core.assert.call(void 0, !result.error, "Did not expect error");
|
|
2124
|
+
_core.assert.call(void 0, !result.isLoading, "Did not expect loading");
|
|
2125
|
+
return _react.useMemo.call(void 0, () => {
|
|
2126
|
+
return [result, updateNotificationSettings];
|
|
2127
|
+
}, [result, updateNotificationSettings]);
|
|
2128
|
+
}
|
|
1941
2129
|
function useUser_withClient(client, userId) {
|
|
1942
2130
|
const usersStore = client[_core.kInternal].usersStore;
|
|
1943
2131
|
const getUserState = _react.useCallback.call(void 0,
|
|
@@ -2087,7 +2275,7 @@ function createSharedContext(client) {
|
|
|
2087
2275
|
}
|
|
2088
2276
|
function useEnsureNoLiveblocksProvider(options) {
|
|
2089
2277
|
const existing = useClientOrNull();
|
|
2090
|
-
if (!_optionalChain([options, 'optionalAccess',
|
|
2278
|
+
if (!_optionalChain([options, 'optionalAccess', _17 => _17.allowNesting]) && existing !== null) {
|
|
2091
2279
|
throw new Error(
|
|
2092
2280
|
"You cannot nest multiple LiveblocksProvider instances in the same React tree."
|
|
2093
2281
|
);
|
|
@@ -2203,6 +2391,15 @@ function useUnreadInboxNotificationsCount() {
|
|
|
2203
2391
|
function useUnreadInboxNotificationsCountSuspense() {
|
|
2204
2392
|
return useUnreadInboxNotificationsCountSuspense_withClient(useClient());
|
|
2205
2393
|
}
|
|
2394
|
+
function useNotificationSettings() {
|
|
2395
|
+
return useNotificationSettings_withClient(useClient());
|
|
2396
|
+
}
|
|
2397
|
+
function useNotificationSettingsSuspense() {
|
|
2398
|
+
return useNotificationSettingsSuspense_withClient(useClient());
|
|
2399
|
+
}
|
|
2400
|
+
function useUpdateNotificationSettings() {
|
|
2401
|
+
return useUpdateNotificationSettings_withClient(useClient());
|
|
2402
|
+
}
|
|
2206
2403
|
function useUser(userId) {
|
|
2207
2404
|
const client = useClient();
|
|
2208
2405
|
return useUser_withClient(client, userId);
|
|
@@ -2223,7 +2420,7 @@ var _useUserSuspense = useUserSuspense;
|
|
|
2223
2420
|
var _useUserThreads_experimental = useUserThreads_experimental;
|
|
2224
2421
|
var _useUserThreadsSuspense_experimental = useUserThreadsSuspense_experimental;
|
|
2225
2422
|
function useSyncStatus_withClient(client, options) {
|
|
2226
|
-
const smooth = useInitial(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
2423
|
+
const smooth = useInitial(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _18 => _18.smooth]), () => ( false)));
|
|
2227
2424
|
if (smooth) {
|
|
2228
2425
|
return useSyncStatusSmooth_withClient(client);
|
|
2229
2426
|
} else {
|
|
@@ -2401,8 +2598,8 @@ function makeRoomExtrasForClient(client) {
|
|
|
2401
2598
|
if (innerError.status === 403) {
|
|
2402
2599
|
const detailedMessage = [
|
|
2403
2600
|
innerError.message,
|
|
2404
|
-
_optionalChain([innerError, 'access',
|
|
2405
|
-
_optionalChain([innerError, 'access',
|
|
2601
|
+
_optionalChain([innerError, 'access', _19 => _19.details, 'optionalAccess', _20 => _20.suggestion]),
|
|
2602
|
+
_optionalChain([innerError, 'access', _21 => _21.details, 'optionalAccess', _22 => _22.docs])
|
|
2406
2603
|
].filter(Boolean).join("\n");
|
|
2407
2604
|
_core.console.error(detailedMessage);
|
|
2408
2605
|
}
|
|
@@ -2756,7 +2953,7 @@ function useMentionSuggestionsCache() {
|
|
|
2756
2953
|
return client[_core.kInternal].mentionSuggestionsCache;
|
|
2757
2954
|
}
|
|
2758
2955
|
function useStorageStatus(options) {
|
|
2759
|
-
const smooth = useInitial(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
2956
|
+
const smooth = useInitial(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _23 => _23.smooth]), () => ( false)));
|
|
2760
2957
|
if (smooth) {
|
|
2761
2958
|
return useStorageStatusSmooth();
|
|
2762
2959
|
} else {
|
|
@@ -3070,7 +3267,7 @@ function useCreateRoomThread(roomId) {
|
|
|
3070
3267
|
thread: newThread,
|
|
3071
3268
|
roomId
|
|
3072
3269
|
});
|
|
3073
|
-
const attachmentIds = _optionalChain([attachments, 'optionalAccess',
|
|
3270
|
+
const attachmentIds = _optionalChain([attachments, 'optionalAccess', _24 => _24.map, 'call', _25 => _25((attachment) => attachment.id)]);
|
|
3074
3271
|
client[_core.kInternal].httpClient.createThread({
|
|
3075
3272
|
roomId,
|
|
3076
3273
|
threadId,
|
|
@@ -3110,7 +3307,7 @@ function useDeleteRoomThread(roomId) {
|
|
|
3110
3307
|
const { store, onMutationFailure } = getRoomExtrasForClient(client);
|
|
3111
3308
|
const userId = getCurrentUserId(client);
|
|
3112
3309
|
const existing = store.outputs.threads.get().get(threadId);
|
|
3113
|
-
if (_optionalChain([existing, 'optionalAccess',
|
|
3310
|
+
if (_optionalChain([existing, 'optionalAccess', _26 => _26.comments, 'optionalAccess', _27 => _27[0], 'optionalAccess', _28 => _28.userId]) !== userId) {
|
|
3114
3311
|
throw new Error("Only the thread creator can delete the thread");
|
|
3115
3312
|
}
|
|
3116
3313
|
const optimisticId = store.optimisticUpdates.add({
|
|
@@ -3198,7 +3395,7 @@ function useCreateRoomComment(roomId) {
|
|
|
3198
3395
|
type: "create-comment",
|
|
3199
3396
|
comment
|
|
3200
3397
|
});
|
|
3201
|
-
const attachmentIds = _optionalChain([attachments, 'optionalAccess',
|
|
3398
|
+
const attachmentIds = _optionalChain([attachments, 'optionalAccess', _29 => _29.map, 'call', _30 => _30((attachment) => attachment.id)]);
|
|
3202
3399
|
client[_core.kInternal].httpClient.createComment({ roomId, threadId, commentId, body, attachmentIds }).then(
|
|
3203
3400
|
(newComment) => {
|
|
3204
3401
|
store.createComment(newComment, optimisticId);
|
|
@@ -3254,7 +3451,7 @@ function useEditRoomComment(roomId) {
|
|
|
3254
3451
|
attachments: _nullishCoalesce(attachments, () => ( []))
|
|
3255
3452
|
}
|
|
3256
3453
|
});
|
|
3257
|
-
const attachmentIds = _optionalChain([attachments, 'optionalAccess',
|
|
3454
|
+
const attachmentIds = _optionalChain([attachments, 'optionalAccess', _31 => _31.map, 'call', _32 => _32((attachment) => attachment.id)]);
|
|
3258
3455
|
client[_core.kInternal].httpClient.editComment({ roomId, threadId, commentId, body, attachmentIds }).then(
|
|
3259
3456
|
(editedComment) => {
|
|
3260
3457
|
store.editComment(threadId, optimisticId, editedComment);
|
|
@@ -3718,7 +3915,7 @@ function useThreadsSuspense(options = {}) {
|
|
|
3718
3915
|
return result;
|
|
3719
3916
|
}
|
|
3720
3917
|
function selectorFor_useAttachmentUrl(state) {
|
|
3721
|
-
if (state === void 0 || _optionalChain([state, 'optionalAccess',
|
|
3918
|
+
if (state === void 0 || _optionalChain([state, 'optionalAccess', _33 => _33.isLoading])) {
|
|
3722
3919
|
return _nullishCoalesce(state, () => ( { isLoading: true }));
|
|
3723
3920
|
}
|
|
3724
3921
|
if (state.error) {
|
|
@@ -3933,5 +4130,8 @@ var _useUpdateMyPresence = useUpdateMyPresence;
|
|
|
3933
4130
|
|
|
3934
4131
|
|
|
3935
4132
|
|
|
3936
|
-
|
|
3937
|
-
|
|
4133
|
+
|
|
4134
|
+
|
|
4135
|
+
|
|
4136
|
+
exports.RoomContext = RoomContext; exports.useRoomOrNull = useRoomOrNull; exports.useSyncExternalStoreWithSelector = useSyncExternalStoreWithSelector; exports.useSignal = useSignal; exports.ClientContext = ClientContext; exports.getUmbrellaStoreForClient = getUmbrellaStoreForClient; exports.useClientOrNull = useClientOrNull; exports.useClient = useClient; exports.LiveblocksProvider = LiveblocksProvider; exports.createLiveblocksContext = createLiveblocksContext; exports.useInboxNotifications = useInboxNotifications; exports.useInboxNotificationsSuspense = useInboxNotificationsSuspense; exports.useMarkAllInboxNotificationsAsRead = useMarkAllInboxNotificationsAsRead; exports.useMarkInboxNotificationAsRead = useMarkInboxNotificationAsRead; exports.useDeleteAllInboxNotifications = useDeleteAllInboxNotifications; exports.useDeleteInboxNotification = useDeleteInboxNotification; exports.useUnreadInboxNotificationsCount = useUnreadInboxNotificationsCount; exports.useUnreadInboxNotificationsCountSuspense = useUnreadInboxNotificationsCountSuspense; exports.useNotificationSettings = useNotificationSettings; exports.useNotificationSettingsSuspense = useNotificationSettingsSuspense; exports.useUpdateNotificationSettings = useUpdateNotificationSettings; exports.useRoomInfo = useRoomInfo; exports.useRoomInfoSuspense = useRoomInfoSuspense; exports._useInboxNotificationThread = _useInboxNotificationThread; exports._useUser = _useUser; exports._useUserSuspense = _useUserSuspense; exports._useUserThreads_experimental = _useUserThreads_experimental; exports._useUserThreadsSuspense_experimental = _useUserThreadsSuspense_experimental; exports.useSyncStatus = useSyncStatus; exports.useErrorListener = useErrorListener; exports.useStatus = useStatus; exports.useReportTextEditor = useReportTextEditor; exports.useYjsProvider = useYjsProvider; exports.useCreateTextMention = useCreateTextMention; exports.useDeleteTextMention = useDeleteTextMention; exports.useResolveMentionSuggestions = useResolveMentionSuggestions; exports.useMentionSuggestionsCache = useMentionSuggestionsCache; exports.useStorageStatus = useStorageStatus; exports.useBatch = useBatch; exports.useLostConnectionListener = useLostConnectionListener; exports.useHistory = useHistory; exports.useUndo = useUndo; exports.useRedo = useRedo; exports.useCanUndo = useCanUndo; exports.useCanRedo = useCanRedo; exports.useOthersConnectionIds = useOthersConnectionIds; exports.useCreateRoomThread = useCreateRoomThread; exports.useDeleteRoomThread = useDeleteRoomThread; exports.useEditRoomThreadMetadata = useEditRoomThreadMetadata; exports.useCreateComment = useCreateComment; exports.useCreateRoomComment = useCreateRoomComment; exports.useEditComment = useEditComment; exports.useEditRoomComment = useEditRoomComment; exports.useDeleteComment = useDeleteComment; exports.useDeleteRoomComment = useDeleteRoomComment; exports.useAddRoomCommentReaction = useAddRoomCommentReaction; exports.useRemoveReaction = useRemoveReaction; exports.useRemoveRoomCommentReaction = useRemoveRoomCommentReaction; exports.useMarkThreadAsRead = useMarkThreadAsRead; exports.useMarkRoomThreadAsRead = useMarkRoomThreadAsRead; exports.useMarkThreadAsResolved = useMarkThreadAsResolved; exports.useMarkRoomThreadAsResolved = useMarkRoomThreadAsResolved; exports.useMarkThreadAsUnresolved = useMarkThreadAsUnresolved; exports.useMarkRoomThreadAsUnresolved = useMarkRoomThreadAsUnresolved; exports.useThreadSubscription = useThreadSubscription; exports.useHistoryVersionData = useHistoryVersionData; exports.useUpdateRoomNotificationSettings = useUpdateRoomNotificationSettings; exports.useOthersConnectionIdsSuspense = useOthersConnectionIdsSuspense; exports.useStorageStatusSuspense = useStorageStatusSuspense; exports.useAttachmentUrl = useAttachmentUrl; exports.useRoomAttachmentUrl = useRoomAttachmentUrl; exports.useAttachmentUrlSuspense = useAttachmentUrlSuspense; exports.useRoomPermissions = useRoomPermissions; exports.createRoomContext = createRoomContext; exports._RoomProvider = _RoomProvider; exports._useBroadcastEvent = _useBroadcastEvent; exports._useOthersListener = _useOthersListener; exports._useRoom = _useRoom; exports._useIsInsideRoom = _useIsInsideRoom; exports._useAddReaction = _useAddReaction; exports._useMutation = _useMutation; exports._useCreateThread = _useCreateThread; exports._useDeleteThread = _useDeleteThread; exports._useEditThreadMetadata = _useEditThreadMetadata; exports._useEventListener = _useEventListener; exports._useMyPresence = _useMyPresence; exports._useOthersMapped = _useOthersMapped; exports._useOthersMappedSuspense = _useOthersMappedSuspense; exports._useThreads = _useThreads; exports._useThreadsSuspense = _useThreadsSuspense; exports._useRoomNotificationSettings = _useRoomNotificationSettings; exports._useRoomNotificationSettingsSuspense = _useRoomNotificationSettingsSuspense; exports._useHistoryVersions = _useHistoryVersions; exports._useHistoryVersionsSuspense = _useHistoryVersionsSuspense; exports._useOther = _useOther; exports._useOthers = _useOthers; exports._useOtherSuspense = _useOtherSuspense; exports._useOthersSuspense = _useOthersSuspense; exports._useStorage = _useStorage; exports._useStorageSuspense = _useStorageSuspense; exports._useSelf = _useSelf; exports._useSelfSuspense = _useSelfSuspense; exports._useStorageRoot = _useStorageRoot; exports._useUpdateMyPresence = _useUpdateMyPresence;
|
|
4137
|
+
//# sourceMappingURL=chunk-LJCQ446S.js.map
|