@liveblocks/react 2.17.0-rc1 → 2.17.0-usrnotsettings1
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-J5ZDLMBE.js → chunk-4F7C4HN7.js} +214 -41
- package/dist/chunk-4F7C4HN7.js.map +1 -0
- package/dist/{chunk-DR4OUZTF.js → chunk-DT3BO7N5.js} +2 -2
- package/dist/chunk-DT3BO7N5.js.map +1 -0
- package/dist/{chunk-XWYTEJGO.mjs → chunk-KAFU5ZQA.mjs} +2 -2
- package/dist/{chunk-4KNGHD4I.mjs → chunk-LOPNJCSB.mjs} +196 -23
- package/dist/chunk-LOPNJCSB.mjs.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-Ce3twcjb.d.mts → room-DlI0Yrzf.d.mts} +74 -3
- package/dist/{room-Ce3twcjb.d.ts → room-DlI0Yrzf.d.ts} +74 -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-DR4OUZTF.js.map +0 -1
- package/dist/chunk-J5ZDLMBE.js.map +0 -1
- /package/dist/{chunk-XWYTEJGO.mjs.map → chunk-KAFU5ZQA.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-DlI0Yrzf.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-DlI0Yrzf.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 _chunk4F7C4HN7js = require('./chunk-4F7C4HN7.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 = _chunk4F7C4HN7js.useResolveMentionSuggestions.call(void 0, );
|
|
41
|
+
const mentionSuggestionsCache = _chunk4F7C4HN7js.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 = _chunk4F7C4HN7js.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 = _chunk4F7C4HN7js.getUmbrellaStoreForClient; exports.useAddRoomCommentReaction = _chunk4F7C4HN7js.useAddRoomCommentReaction; exports.useClientOrNull = _chunk4F7C4HN7js.useClientOrNull; exports.useCreateRoomComment = _chunk4F7C4HN7js.useCreateRoomComment; exports.useCreateRoomThread = _chunk4F7C4HN7js.useCreateRoomThread; exports.useCreateTextMention = _chunk4F7C4HN7js.useCreateTextMention; exports.useDeleteRoomComment = _chunk4F7C4HN7js.useDeleteRoomComment; exports.useDeleteRoomThread = _chunk4F7C4HN7js.useDeleteRoomThread; exports.useDeleteTextMention = _chunk4F7C4HN7js.useDeleteTextMention; exports.useEditRoomComment = _chunk4F7C4HN7js.useEditRoomComment; exports.useEditRoomThreadMetadata = _chunk4F7C4HN7js.useEditRoomThreadMetadata; exports.useLayoutEffect = useLayoutEffect; exports.useMarkRoomThreadAsRead = _chunk4F7C4HN7js.useMarkRoomThreadAsRead; exports.useMarkRoomThreadAsResolved = _chunk4F7C4HN7js.useMarkRoomThreadAsResolved; exports.useMarkRoomThreadAsUnresolved = _chunk4F7C4HN7js.useMarkRoomThreadAsUnresolved; exports.useMentionSuggestions = useMentionSuggestions; exports.useMentionSuggestionsCache = _chunk4F7C4HN7js.useMentionSuggestionsCache; exports.useRemoveRoomCommentReaction = _chunk4F7C4HN7js.useRemoveRoomCommentReaction; exports.useReportTextEditor = _chunk4F7C4HN7js.useReportTextEditor; exports.useResolveMentionSuggestions = _chunk4F7C4HN7js.useResolveMentionSuggestions; exports.useRoomAttachmentUrl = _chunk4F7C4HN7js.useRoomAttachmentUrl; exports.useRoomOrNull = _chunk4F7C4HN7js.useRoomOrNull; exports.useRoomPermissions = _chunk4F7C4HN7js.useRoomPermissions; exports.useSignal = _chunk4F7C4HN7js.useSignal; exports.useSyncExternalStoreWithSelector = _chunk4F7C4HN7js.useSyncExternalStoreWithSelector; exports.useSyncSource = useSyncSource; exports.useYjsProvider = _chunk4F7C4HN7js.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-LOPNJCSB.mjs";
|
|
28
28
|
|
|
29
29
|
// src/lib/use-layout-effect.ts
|
|
30
30
|
import { useEffect, useLayoutEffect as useOriginalLayoutEffect } from "react";
|
|
@@ -130,7 +130,9 @@ var config = {
|
|
|
130
130
|
HISTORY_VERSIONS_POLL_INTERVAL: 1 * MINUTES,
|
|
131
131
|
HISTORY_VERSIONS_MAX_STALE_TIME: 5 * SECONDS,
|
|
132
132
|
NOTIFICATION_SETTINGS_POLL_INTERVAL: 1 * MINUTES,
|
|
133
|
-
NOTIFICATION_SETTINGS_MAX_STALE_TIME: 5 * SECONDS
|
|
133
|
+
NOTIFICATION_SETTINGS_MAX_STALE_TIME: 5 * SECONDS,
|
|
134
|
+
USER_NOTIFICATION_SETTINGS_INTERVAL: 5 * MINUTES,
|
|
135
|
+
USER_NOTIFICATION_SETTINGS_MAX_STALE_TIME: 1 * MINUTES
|
|
134
136
|
};
|
|
135
137
|
|
|
136
138
|
// src/lib/AsyncResult.ts
|
|
@@ -159,15 +161,6 @@ function count(it, predicate) {
|
|
|
159
161
|
return total;
|
|
160
162
|
}
|
|
161
163
|
|
|
162
|
-
// src/lib/ssr.ts
|
|
163
|
-
function ensureNotServerSide() {
|
|
164
|
-
if (typeof window === "undefined") {
|
|
165
|
-
throw new Error(
|
|
166
|
-
"You cannot use the Suspense version of Liveblocks hooks server side. Make sure to only call them client side by using a ClientSideSuspense wrapper.\nFor tips, see https://liveblocks.io/docs/api-reference/liveblocks-react#ClientSideSuspense"
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
164
|
// src/lib/use-initial.ts
|
|
172
165
|
|
|
173
166
|
|
|
@@ -242,6 +235,8 @@ var use = (
|
|
|
242
235
|
|
|
243
236
|
|
|
244
237
|
|
|
238
|
+
|
|
239
|
+
|
|
245
240
|
// src/lib/autobind.ts
|
|
246
241
|
function autobind(self) {
|
|
247
242
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -251,7 +246,7 @@ function autobind(self) {
|
|
|
251
246
|
for (const key of Reflect.ownKeys(obj)) {
|
|
252
247
|
if (seen.has(key)) continue;
|
|
253
248
|
const descriptor = Reflect.getOwnPropertyDescriptor(obj, key);
|
|
254
|
-
if (typeof _optionalChain([descriptor, 'optionalAccess',
|
|
249
|
+
if (typeof _optionalChain([descriptor, 'optionalAccess', _2 => _2.value]) === "function") {
|
|
255
250
|
seen.add(key);
|
|
256
251
|
self[key] = self[key].bind(self);
|
|
257
252
|
}
|
|
@@ -351,7 +346,7 @@ var ThreadDB = class _ThreadDB {
|
|
|
351
346
|
/** Returns an existing thread by ID. Will never return a deleted thread. */
|
|
352
347
|
get(threadId) {
|
|
353
348
|
const thread = this.getEvenIfDeleted(threadId);
|
|
354
|
-
return _optionalChain([thread, 'optionalAccess',
|
|
349
|
+
return _optionalChain([thread, 'optionalAccess', _3 => _3.deletedAt]) ? void 0 : thread;
|
|
355
350
|
}
|
|
356
351
|
/** Returns the (possibly deleted) thread by ID. */
|
|
357
352
|
getEvenIfDeleted(threadId) {
|
|
@@ -477,7 +472,7 @@ var PaginatedResource = class {
|
|
|
477
472
|
}
|
|
478
473
|
async #fetchMore() {
|
|
479
474
|
const state = this.#signal.get();
|
|
480
|
-
if (!_optionalChain([state, 'access',
|
|
475
|
+
if (!_optionalChain([state, 'access', _4 => _4.data, 'optionalAccess', _5 => _5.cursor]) || state.data.isFetchingMore) {
|
|
481
476
|
return;
|
|
482
477
|
}
|
|
483
478
|
this.#patch({ isFetchingMore: true });
|
|
@@ -498,7 +493,7 @@ var PaginatedResource = class {
|
|
|
498
493
|
}
|
|
499
494
|
fetchMore() {
|
|
500
495
|
const state = this.#signal.get();
|
|
501
|
-
if (!_optionalChain([state, 'access',
|
|
496
|
+
if (!_optionalChain([state, 'access', _6 => _6.data, 'optionalAccess', _7 => _7.cursor])) return noop2;
|
|
502
497
|
if (!this.#pendingFetchMore) {
|
|
503
498
|
this.#pendingFetchMore = this.#fetchMore().finally(() => {
|
|
504
499
|
this.#pendingFetchMore = null;
|
|
@@ -723,6 +718,26 @@ function createStore_forPermissionHints() {
|
|
|
723
718
|
update
|
|
724
719
|
};
|
|
725
720
|
}
|
|
721
|
+
function createStore_forUserNotificationSettings(updates) {
|
|
722
|
+
const signal = new (0, _core.Signal)({});
|
|
723
|
+
function update(settings) {
|
|
724
|
+
signal.set((prevSettings) => {
|
|
725
|
+
return {
|
|
726
|
+
...prevSettings,
|
|
727
|
+
...settings
|
|
728
|
+
};
|
|
729
|
+
});
|
|
730
|
+
}
|
|
731
|
+
return {
|
|
732
|
+
signal: _core.DerivedSignal.from(
|
|
733
|
+
signal,
|
|
734
|
+
updates,
|
|
735
|
+
(base, updates2) => applyOptimisticUpdates_forUserNotificationSettings(base, updates2)
|
|
736
|
+
),
|
|
737
|
+
// Mutations
|
|
738
|
+
update
|
|
739
|
+
};
|
|
740
|
+
}
|
|
726
741
|
function createStore_forOptimistic(client) {
|
|
727
742
|
const signal = new (0, _core.Signal)([]);
|
|
728
743
|
const syncSource = client[_core.kInternal].createSyncSource();
|
|
@@ -762,9 +777,11 @@ var UmbrellaStore = class {
|
|
|
762
777
|
// \ | | | | & notifications by ID
|
|
763
778
|
// | \ | | Apply | |
|
|
764
779
|
// | `-> OptimisticUpdates --+--+--> Optimistic --+-+--> Notification Settings (Part 2)
|
|
765
|
-
// \ | Updates
|
|
766
|
-
// `------- etc etc ---------+
|
|
767
|
-
// ^
|
|
780
|
+
// \ | Updates | |
|
|
781
|
+
// `------- etc etc ---------+ | +--> History Versions (Part 3)
|
|
782
|
+
// ^ |
|
|
783
|
+
// | +-----> Channels Notification Settings (Part 4)
|
|
784
|
+
// |
|
|
768
785
|
// |
|
|
769
786
|
// | ^ ^
|
|
770
787
|
// Signal | |
|
|
@@ -786,6 +803,7 @@ var UmbrellaStore = class {
|
|
|
786
803
|
|
|
787
804
|
|
|
788
805
|
|
|
806
|
+
|
|
789
807
|
//
|
|
790
808
|
// Output signals.
|
|
791
809
|
// (Readonly, clean, consistent. With optimistic updates applied.)
|
|
@@ -805,6 +823,8 @@ var UmbrellaStore = class {
|
|
|
805
823
|
#userThreadsLastRequestedAt = null;
|
|
806
824
|
// Room versions
|
|
807
825
|
#roomVersionsLastRequestedAtByRoom = /* @__PURE__ */ new Map();
|
|
826
|
+
// User Notification Settings
|
|
827
|
+
#userNotificationSettings;
|
|
808
828
|
constructor(client) {
|
|
809
829
|
this.#client = client[_core.kInternal].as();
|
|
810
830
|
this.optimisticUpdates = createStore_forOptimistic(this.#client);
|
|
@@ -820,6 +840,16 @@ var UmbrellaStore = class {
|
|
|
820
840
|
return nextCursor;
|
|
821
841
|
}
|
|
822
842
|
);
|
|
843
|
+
const channelsNotificationSettingsFetcher = async () => {
|
|
844
|
+
const result = await this.#client.getNotificationSettings();
|
|
845
|
+
this.userNotificationSettings.update(result);
|
|
846
|
+
};
|
|
847
|
+
this.userNotificationSettings = createStore_forUserNotificationSettings(
|
|
848
|
+
this.optimisticUpdates.signal
|
|
849
|
+
);
|
|
850
|
+
this.#userNotificationSettings = new SinglePageResource(
|
|
851
|
+
channelsNotificationSettingsFetcher
|
|
852
|
+
);
|
|
823
853
|
this.threads = new ThreadDB();
|
|
824
854
|
this.notifications = createStore_forNotifications();
|
|
825
855
|
this.roomNotificationSettings = createStore_forRoomNotificationSettings(
|
|
@@ -997,6 +1027,19 @@ var UmbrellaStore = class {
|
|
|
997
1027
|
return { signal, waitUntilLoaded: resource.waitUntilLoaded };
|
|
998
1028
|
}
|
|
999
1029
|
);
|
|
1030
|
+
const userNotificationSettings = {
|
|
1031
|
+
signal: _core.DerivedSignal.from(() => {
|
|
1032
|
+
const result = this.#userNotificationSettings.get();
|
|
1033
|
+
if (result.isLoading || result.error) {
|
|
1034
|
+
return result;
|
|
1035
|
+
}
|
|
1036
|
+
return ASYNC_OK(
|
|
1037
|
+
"settings",
|
|
1038
|
+
_core.nn.call(void 0, this.userNotificationSettings.signal.get())
|
|
1039
|
+
);
|
|
1040
|
+
}, _core.shallow),
|
|
1041
|
+
waitUntilLoaded: this.#userNotificationSettings.waitUntilLoaded
|
|
1042
|
+
};
|
|
1000
1043
|
this.outputs = {
|
|
1001
1044
|
threadifications,
|
|
1002
1045
|
threads,
|
|
@@ -1005,7 +1048,8 @@ var UmbrellaStore = class {
|
|
|
1005
1048
|
notifications,
|
|
1006
1049
|
loadingNotifications,
|
|
1007
1050
|
settingsByRoomId,
|
|
1008
|
-
versionsByRoomId
|
|
1051
|
+
versionsByRoomId,
|
|
1052
|
+
userNotificationSettings
|
|
1009
1053
|
};
|
|
1010
1054
|
autobind(this);
|
|
1011
1055
|
}
|
|
@@ -1250,6 +1294,25 @@ var UmbrellaStore = class {
|
|
|
1250
1294
|
const result = await room.getNotificationSettings({ signal });
|
|
1251
1295
|
this.roomNotificationSettings.update(roomId, result);
|
|
1252
1296
|
}
|
|
1297
|
+
/**
|
|
1298
|
+
* Refresh User Notification Settings from poller
|
|
1299
|
+
*/
|
|
1300
|
+
async refreshUserNotificationSettings(signal) {
|
|
1301
|
+
const result = await this.#client.getNotificationSettings({
|
|
1302
|
+
signal
|
|
1303
|
+
});
|
|
1304
|
+
this.userNotificationSettings.update(result);
|
|
1305
|
+
}
|
|
1306
|
+
/**
|
|
1307
|
+
* Updates user notification settings with a new value, replacing the
|
|
1308
|
+
* corresponding optimistic update.
|
|
1309
|
+
*/
|
|
1310
|
+
updateUserNotificationSettings_confirmOptimisticUpdate(settings, optimisticUpdateId) {
|
|
1311
|
+
_core.batch.call(void 0, () => {
|
|
1312
|
+
this.optimisticUpdates.remove(optimisticUpdateId);
|
|
1313
|
+
this.userNotificationSettings.update(settings);
|
|
1314
|
+
});
|
|
1315
|
+
}
|
|
1253
1316
|
};
|
|
1254
1317
|
function applyOptimisticUpdates_forThreadifications(baseThreadsDB, notificationsLUT, optimisticUpdates) {
|
|
1255
1318
|
const threadsDB = baseThreadsDB.clone();
|
|
@@ -1424,6 +1487,33 @@ function applyOptimisticUpdates_forSettings(settingsLUT, optimisticUpdates) {
|
|
|
1424
1487
|
}
|
|
1425
1488
|
return settingsByRoomId;
|
|
1426
1489
|
}
|
|
1490
|
+
function applyOptimisticUpdates_forUserNotificationSettings(baseSettings, optimisticUpdates) {
|
|
1491
|
+
const outcomingSettings = { ...baseSettings };
|
|
1492
|
+
for (const optimisticUpdate of optimisticUpdates) {
|
|
1493
|
+
switch (optimisticUpdate.type) {
|
|
1494
|
+
case "update-user-notification-settings": {
|
|
1495
|
+
const incomingSettings = optimisticUpdate.settings;
|
|
1496
|
+
for (const channelKey of _core.keys.call(void 0, incomingSettings)) {
|
|
1497
|
+
const key = channelKey;
|
|
1498
|
+
const channelUpdates = incomingSettings[key];
|
|
1499
|
+
if (channelUpdates) {
|
|
1500
|
+
const realChannelUpdates = Object.fromEntries(
|
|
1501
|
+
_core.entries.call(void 0, channelUpdates).filter(
|
|
1502
|
+
([_, value]) => value !== void 0
|
|
1503
|
+
)
|
|
1504
|
+
);
|
|
1505
|
+
outcomingSettings[key] = {
|
|
1506
|
+
...outcomingSettings[key],
|
|
1507
|
+
...realChannelUpdates
|
|
1508
|
+
};
|
|
1509
|
+
}
|
|
1510
|
+
}
|
|
1511
|
+
break;
|
|
1512
|
+
}
|
|
1513
|
+
}
|
|
1514
|
+
}
|
|
1515
|
+
return outcomingSettings;
|
|
1516
|
+
}
|
|
1427
1517
|
function compareInboxNotifications(inboxNotificationA, inboxNotificationB) {
|
|
1428
1518
|
if (inboxNotificationA.notifiedAt > inboxNotificationB.notifiedAt) {
|
|
1429
1519
|
return 1;
|
|
@@ -1473,7 +1563,7 @@ function applyUpsertComment(thread, comment) {
|
|
|
1473
1563
|
updatedAt: new Date(
|
|
1474
1564
|
Math.max(
|
|
1475
1565
|
thread.updatedAt.getTime(),
|
|
1476
|
-
_optionalChain([comment, 'access',
|
|
1566
|
+
_optionalChain([comment, 'access', _8 => _8.editedAt, 'optionalAccess', _9 => _9.getTime, 'call', _10 => _10()]) || comment.createdAt.getTime()
|
|
1477
1567
|
)
|
|
1478
1568
|
),
|
|
1479
1569
|
comments: updatedComments
|
|
@@ -1632,7 +1722,7 @@ function selectorFor_useUnreadInboxNotificationsCount(result) {
|
|
|
1632
1722
|
);
|
|
1633
1723
|
}
|
|
1634
1724
|
function selectorFor_useUser(state, userId) {
|
|
1635
|
-
if (state === void 0 || _optionalChain([state, 'optionalAccess',
|
|
1725
|
+
if (state === void 0 || _optionalChain([state, 'optionalAccess', _11 => _11.isLoading])) {
|
|
1636
1726
|
return _nullishCoalesce(state, () => ( { isLoading: true }));
|
|
1637
1727
|
}
|
|
1638
1728
|
if (state.error) {
|
|
@@ -1650,7 +1740,7 @@ function selectorFor_useUser(state, userId) {
|
|
|
1650
1740
|
};
|
|
1651
1741
|
}
|
|
1652
1742
|
function selectorFor_useRoomInfo(state, roomId) {
|
|
1653
|
-
if (state === void 0 || _optionalChain([state, 'optionalAccess',
|
|
1743
|
+
if (state === void 0 || _optionalChain([state, 'optionalAccess', _12 => _12.isLoading])) {
|
|
1654
1744
|
return _nullishCoalesce(state, () => ( { isLoading: true }));
|
|
1655
1745
|
}
|
|
1656
1746
|
if (state.error) {
|
|
@@ -1717,10 +1807,25 @@ function makeLiveblocksExtrasForClient(client) {
|
|
|
1717
1807
|
config.USER_THREADS_POLL_INTERVAL,
|
|
1718
1808
|
{ maxStaleTimeMs: config.USER_THREADS_MAX_STALE_TIME }
|
|
1719
1809
|
);
|
|
1810
|
+
const userNotificationSettingsPoller = _core.makePoller.call(void 0,
|
|
1811
|
+
async (signal) => {
|
|
1812
|
+
try {
|
|
1813
|
+
return await store.refreshUserNotificationSettings(signal);
|
|
1814
|
+
} catch (err) {
|
|
1815
|
+
console.warn(
|
|
1816
|
+
`Polling new user notification settings failed: ${String(err)}`
|
|
1817
|
+
);
|
|
1818
|
+
throw err;
|
|
1819
|
+
}
|
|
1820
|
+
},
|
|
1821
|
+
config.USER_NOTIFICATION_SETTINGS_INTERVAL,
|
|
1822
|
+
{ maxStaleTimeMs: config.USER_NOTIFICATION_SETTINGS_MAX_STALE_TIME }
|
|
1823
|
+
);
|
|
1720
1824
|
return {
|
|
1721
1825
|
store,
|
|
1722
1826
|
notificationsPoller,
|
|
1723
|
-
userThreadsPoller
|
|
1827
|
+
userThreadsPoller,
|
|
1828
|
+
userNotificationSettingsPoller
|
|
1724
1829
|
};
|
|
1725
1830
|
}
|
|
1726
1831
|
function makeLiveblocksContextBundle(client) {
|
|
@@ -1729,6 +1834,7 @@ function makeLiveblocksContextBundle(client) {
|
|
|
1729
1834
|
const useMarkAllInboxNotificationsAsRead2 = () => useMarkAllInboxNotificationsAsRead_withClient(client);
|
|
1730
1835
|
const useDeleteInboxNotification2 = () => useDeleteInboxNotification_withClient(client);
|
|
1731
1836
|
const useDeleteAllInboxNotifications2 = () => useDeleteAllInboxNotifications_withClient(client);
|
|
1837
|
+
const useUpdateNotificationSettings2 = () => useUpdateNotificationSettings_withClient(client);
|
|
1732
1838
|
function LiveblocksProvider2(props) {
|
|
1733
1839
|
useEnsureNoLiveblocksProvider();
|
|
1734
1840
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ClientContext.Provider, { value: client, children: props.children });
|
|
@@ -1742,6 +1848,8 @@ function makeLiveblocksContextBundle(client) {
|
|
|
1742
1848
|
useMarkAllInboxNotificationsAsRead: useMarkAllInboxNotificationsAsRead2,
|
|
1743
1849
|
useDeleteInboxNotification: useDeleteInboxNotification2,
|
|
1744
1850
|
useDeleteAllInboxNotifications: useDeleteAllInboxNotifications2,
|
|
1851
|
+
useNotificationSettings: () => useNotificationSettings_withClient(client),
|
|
1852
|
+
useUpdateNotificationSettings: useUpdateNotificationSettings2,
|
|
1745
1853
|
useInboxNotificationThread: useInboxNotificationThread2,
|
|
1746
1854
|
useUserThreads_experimental,
|
|
1747
1855
|
...shared.classic,
|
|
@@ -1754,6 +1862,8 @@ function makeLiveblocksContextBundle(client) {
|
|
|
1754
1862
|
useDeleteInboxNotification: useDeleteInboxNotification2,
|
|
1755
1863
|
useDeleteAllInboxNotifications: useDeleteAllInboxNotifications2,
|
|
1756
1864
|
useInboxNotificationThread: useInboxNotificationThread2,
|
|
1865
|
+
useNotificationSettings: () => useNotificationSettingsSuspense_withClient(client),
|
|
1866
|
+
useUpdateNotificationSettings: useUpdateNotificationSettings2,
|
|
1757
1867
|
useUserThreads_experimental: useUserThreadsSuspense_experimental,
|
|
1758
1868
|
...shared.suspense
|
|
1759
1869
|
}
|
|
@@ -1787,7 +1897,6 @@ function useInboxNotifications_withClient(client, selector, isEqual) {
|
|
|
1787
1897
|
);
|
|
1788
1898
|
}
|
|
1789
1899
|
function useInboxNotificationsSuspense_withClient(client) {
|
|
1790
|
-
ensureNotServerSide();
|
|
1791
1900
|
const store = getLiveblocksExtrasForClient(client).store;
|
|
1792
1901
|
use(store.outputs.loadingNotifications.waitUntilLoaded());
|
|
1793
1902
|
const result = useInboxNotifications_withClient(client, identity2, _core.shallow);
|
|
@@ -1803,7 +1912,6 @@ function useUnreadInboxNotificationsCount_withClient(client) {
|
|
|
1803
1912
|
);
|
|
1804
1913
|
}
|
|
1805
1914
|
function useUnreadInboxNotificationsCountSuspense_withClient(client) {
|
|
1806
|
-
ensureNotServerSide();
|
|
1807
1915
|
const store = getLiveblocksExtrasForClient(client).store;
|
|
1808
1916
|
use(store.outputs.loadingNotifications.waitUntilLoaded());
|
|
1809
1917
|
const result = useUnreadInboxNotificationsCount_withClient(client);
|
|
@@ -1938,6 +2046,57 @@ function useInboxNotificationThread_withClient(client, inboxNotificationId) {
|
|
|
1938
2046
|
)
|
|
1939
2047
|
);
|
|
1940
2048
|
}
|
|
2049
|
+
function useUpdateNotificationSettings_withClient(client) {
|
|
2050
|
+
return _react.useCallback.call(void 0,
|
|
2051
|
+
(settings) => {
|
|
2052
|
+
const { store } = getLiveblocksExtrasForClient(client);
|
|
2053
|
+
const optimisticUpdateId = store.optimisticUpdates.add({
|
|
2054
|
+
type: "update-user-notification-settings",
|
|
2055
|
+
settings
|
|
2056
|
+
});
|
|
2057
|
+
client.updateNotificationSettings(settings).then(
|
|
2058
|
+
(settings2) => {
|
|
2059
|
+
store.updateUserNotificationSettings_confirmOptimisticUpdate(
|
|
2060
|
+
settings2,
|
|
2061
|
+
optimisticUpdateId
|
|
2062
|
+
);
|
|
2063
|
+
},
|
|
2064
|
+
() => {
|
|
2065
|
+
store.optimisticUpdates.remove(optimisticUpdateId);
|
|
2066
|
+
}
|
|
2067
|
+
);
|
|
2068
|
+
},
|
|
2069
|
+
[client]
|
|
2070
|
+
);
|
|
2071
|
+
}
|
|
2072
|
+
function useNotificationSettings_withClient(client) {
|
|
2073
|
+
const updateNotificationSettings = useUpdateNotificationSettings_withClient(client);
|
|
2074
|
+
const { store, userNotificationSettingsPoller: poller } = getLiveblocksExtrasForClient(client);
|
|
2075
|
+
_react.useEffect.call(void 0, () => {
|
|
2076
|
+
void store.outputs.userNotificationSettings.waitUntilLoaded();
|
|
2077
|
+
});
|
|
2078
|
+
_react.useEffect.call(void 0, () => {
|
|
2079
|
+
poller.inc();
|
|
2080
|
+
poller.pollNowIfStale();
|
|
2081
|
+
return () => {
|
|
2082
|
+
poller.dec();
|
|
2083
|
+
};
|
|
2084
|
+
}, [poller]);
|
|
2085
|
+
const settings = useSignal(store.outputs.userNotificationSettings.signal);
|
|
2086
|
+
return _react.useMemo.call(void 0, () => {
|
|
2087
|
+
return [settings, updateNotificationSettings];
|
|
2088
|
+
}, [settings, updateNotificationSettings]);
|
|
2089
|
+
}
|
|
2090
|
+
function useNotificationSettingsSuspense_withClient(client) {
|
|
2091
|
+
const store = getLiveblocksExtrasForClient(client).store;
|
|
2092
|
+
use(store.outputs.userNotificationSettings.waitUntilLoaded());
|
|
2093
|
+
const [settings, updateNotificationSettings] = useNotificationSettings_withClient(client);
|
|
2094
|
+
_core.assert.call(void 0, !settings.error, "Did not expect error");
|
|
2095
|
+
_core.assert.call(void 0, !settings.isLoading, "Did not expect loading");
|
|
2096
|
+
return _react.useMemo.call(void 0, () => {
|
|
2097
|
+
return [settings, updateNotificationSettings];
|
|
2098
|
+
}, [settings, updateNotificationSettings]);
|
|
2099
|
+
}
|
|
1941
2100
|
function useUser_withClient(client, userId) {
|
|
1942
2101
|
const usersStore = client[_core.kInternal].usersStore;
|
|
1943
2102
|
const getUserState = _react.useCallback.call(void 0,
|
|
@@ -2087,7 +2246,7 @@ function createSharedContext(client) {
|
|
|
2087
2246
|
}
|
|
2088
2247
|
function useEnsureNoLiveblocksProvider(options) {
|
|
2089
2248
|
const existing = useClientOrNull();
|
|
2090
|
-
if (!_optionalChain([options, 'optionalAccess',
|
|
2249
|
+
if (!_optionalChain([options, 'optionalAccess', _13 => _13.allowNesting]) && existing !== null) {
|
|
2091
2250
|
throw new Error(
|
|
2092
2251
|
"You cannot nest multiple LiveblocksProvider instances in the same React tree."
|
|
2093
2252
|
);
|
|
@@ -2111,7 +2270,6 @@ function LiveblocksProvider(props) {
|
|
|
2111
2270
|
lostConnectionTimeout: useInitial(o.lostConnectionTimeout),
|
|
2112
2271
|
backgroundKeepAliveTimeout: useInitial(o.backgroundKeepAliveTimeout),
|
|
2113
2272
|
polyfills: useInitial(o.polyfills),
|
|
2114
|
-
largeMessageStrategy: useInitial(o.largeMessageStrategy),
|
|
2115
2273
|
unstable_fallbackToHTTP: useInitial(o.unstable_fallbackToHTTP),
|
|
2116
2274
|
unstable_streamData: useInitial(o.unstable_streamData),
|
|
2117
2275
|
preventUnsavedChanges: useInitial(o.preventUnsavedChanges),
|
|
@@ -2163,7 +2321,6 @@ function useUserThreads_experimental(options = {}) {
|
|
|
2163
2321
|
);
|
|
2164
2322
|
}
|
|
2165
2323
|
function useUserThreadsSuspense_experimental(options = {}) {
|
|
2166
|
-
ensureNotServerSide();
|
|
2167
2324
|
const client = useClient();
|
|
2168
2325
|
const { store } = getLiveblocksExtrasForClient(client);
|
|
2169
2326
|
const queryKey = makeUserThreadsQueryKey(options.query);
|
|
@@ -2203,6 +2360,15 @@ function useUnreadInboxNotificationsCount() {
|
|
|
2203
2360
|
function useUnreadInboxNotificationsCountSuspense() {
|
|
2204
2361
|
return useUnreadInboxNotificationsCountSuspense_withClient(useClient());
|
|
2205
2362
|
}
|
|
2363
|
+
function useNotificationSettings() {
|
|
2364
|
+
return useNotificationSettings_withClient(useClient());
|
|
2365
|
+
}
|
|
2366
|
+
function useNotificationSettingsSuspense() {
|
|
2367
|
+
return useNotificationSettingsSuspense_withClient(useClient());
|
|
2368
|
+
}
|
|
2369
|
+
function useUpdateNotificationSettings() {
|
|
2370
|
+
return useUpdateNotificationSettings_withClient(useClient());
|
|
2371
|
+
}
|
|
2206
2372
|
function useUser(userId) {
|
|
2207
2373
|
const client = useClient();
|
|
2208
2374
|
return useUser_withClient(client, userId);
|
|
@@ -2223,7 +2389,7 @@ var _useUserSuspense = useUserSuspense;
|
|
|
2223
2389
|
var _useUserThreads_experimental = useUserThreads_experimental;
|
|
2224
2390
|
var _useUserThreadsSuspense_experimental = useUserThreadsSuspense_experimental;
|
|
2225
2391
|
function useSyncStatus_withClient(client, options) {
|
|
2226
|
-
const smooth = useInitial(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
2392
|
+
const smooth = useInitial(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _14 => _14.smooth]), () => ( false)));
|
|
2227
2393
|
if (smooth) {
|
|
2228
2394
|
return useSyncStatusSmooth_withClient(client);
|
|
2229
2395
|
} else {
|
|
@@ -2401,8 +2567,8 @@ function makeRoomExtrasForClient(client) {
|
|
|
2401
2567
|
if (innerError.status === 403) {
|
|
2402
2568
|
const detailedMessage = [
|
|
2403
2569
|
innerError.message,
|
|
2404
|
-
_optionalChain([innerError, 'access',
|
|
2405
|
-
_optionalChain([innerError, 'access',
|
|
2570
|
+
_optionalChain([innerError, 'access', _15 => _15.details, 'optionalAccess', _16 => _16.suggestion]),
|
|
2571
|
+
_optionalChain([innerError, 'access', _17 => _17.details, 'optionalAccess', _18 => _18.docs])
|
|
2406
2572
|
].filter(Boolean).join("\n");
|
|
2407
2573
|
_core.console.error(detailedMessage);
|
|
2408
2574
|
}
|
|
@@ -2756,7 +2922,7 @@ function useMentionSuggestionsCache() {
|
|
|
2756
2922
|
return client[_core.kInternal].mentionSuggestionsCache;
|
|
2757
2923
|
}
|
|
2758
2924
|
function useStorageStatus(options) {
|
|
2759
|
-
const smooth = useInitial(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
2925
|
+
const smooth = useInitial(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _19 => _19.smooth]), () => ( false)));
|
|
2760
2926
|
if (smooth) {
|
|
2761
2927
|
return useStorageStatusSmooth();
|
|
2762
2928
|
} else {
|
|
@@ -3070,7 +3236,7 @@ function useCreateRoomThread(roomId) {
|
|
|
3070
3236
|
thread: newThread,
|
|
3071
3237
|
roomId
|
|
3072
3238
|
});
|
|
3073
|
-
const attachmentIds = _optionalChain([attachments, 'optionalAccess',
|
|
3239
|
+
const attachmentIds = _optionalChain([attachments, 'optionalAccess', _20 => _20.map, 'call', _21 => _21((attachment) => attachment.id)]);
|
|
3074
3240
|
client[_core.kInternal].httpClient.createThread({
|
|
3075
3241
|
roomId,
|
|
3076
3242
|
threadId,
|
|
@@ -3110,7 +3276,7 @@ function useDeleteRoomThread(roomId) {
|
|
|
3110
3276
|
const { store, onMutationFailure } = getRoomExtrasForClient(client);
|
|
3111
3277
|
const userId = getCurrentUserId(client);
|
|
3112
3278
|
const existing = store.outputs.threads.get().get(threadId);
|
|
3113
|
-
if (_optionalChain([existing, 'optionalAccess',
|
|
3279
|
+
if (_optionalChain([existing, 'optionalAccess', _22 => _22.comments, 'optionalAccess', _23 => _23[0], 'optionalAccess', _24 => _24.userId]) !== userId) {
|
|
3114
3280
|
throw new Error("Only the thread creator can delete the thread");
|
|
3115
3281
|
}
|
|
3116
3282
|
const optimisticId = store.optimisticUpdates.add({
|
|
@@ -3198,7 +3364,7 @@ function useCreateRoomComment(roomId) {
|
|
|
3198
3364
|
type: "create-comment",
|
|
3199
3365
|
comment
|
|
3200
3366
|
});
|
|
3201
|
-
const attachmentIds = _optionalChain([attachments, 'optionalAccess',
|
|
3367
|
+
const attachmentIds = _optionalChain([attachments, 'optionalAccess', _25 => _25.map, 'call', _26 => _26((attachment) => attachment.id)]);
|
|
3202
3368
|
client[_core.kInternal].httpClient.createComment({ roomId, threadId, commentId, body, attachmentIds }).then(
|
|
3203
3369
|
(newComment) => {
|
|
3204
3370
|
store.createComment(newComment, optimisticId);
|
|
@@ -3254,7 +3420,7 @@ function useEditRoomComment(roomId) {
|
|
|
3254
3420
|
attachments: _nullishCoalesce(attachments, () => ( []))
|
|
3255
3421
|
}
|
|
3256
3422
|
});
|
|
3257
|
-
const attachmentIds = _optionalChain([attachments, 'optionalAccess',
|
|
3423
|
+
const attachmentIds = _optionalChain([attachments, 'optionalAccess', _27 => _27.map, 'call', _28 => _28((attachment) => attachment.id)]);
|
|
3258
3424
|
client[_core.kInternal].httpClient.editComment({ roomId, threadId, commentId, body, attachmentIds }).then(
|
|
3259
3425
|
(editedComment) => {
|
|
3260
3426
|
store.editComment(threadId, optimisticId, editedComment);
|
|
@@ -3558,7 +3724,6 @@ function useRoomNotificationSettings() {
|
|
|
3558
3724
|
}, [settings, updateRoomNotificationSettings]);
|
|
3559
3725
|
}
|
|
3560
3726
|
function useRoomNotificationSettingsSuspense() {
|
|
3561
|
-
ensureNotServerSide();
|
|
3562
3727
|
const client = useClient();
|
|
3563
3728
|
const store = getRoomExtrasForClient(client).store;
|
|
3564
3729
|
const room = useRoom();
|
|
@@ -3623,7 +3788,6 @@ function useHistoryVersions() {
|
|
|
3623
3788
|
return useSignal(store.outputs.versionsByRoomId.getOrCreate(room.id).signal);
|
|
3624
3789
|
}
|
|
3625
3790
|
function useHistoryVersionsSuspense() {
|
|
3626
|
-
ensureNotServerSide();
|
|
3627
3791
|
const client = useClient();
|
|
3628
3792
|
const room = useRoom();
|
|
3629
3793
|
const store = getRoomExtrasForClient(client).store;
|
|
@@ -3658,6 +3822,13 @@ function useUpdateRoomNotificationSettings() {
|
|
|
3658
3822
|
[client, room]
|
|
3659
3823
|
);
|
|
3660
3824
|
}
|
|
3825
|
+
function ensureNotServerSide() {
|
|
3826
|
+
if (typeof window === "undefined") {
|
|
3827
|
+
throw new Error(
|
|
3828
|
+
"You cannot use the Suspense version of this hook on the server side. Make sure to only call them on the client side.\nFor tips, see https://liveblocks.io/docs/api-reference/liveblocks-react#suspense-avoid-ssr"
|
|
3829
|
+
);
|
|
3830
|
+
}
|
|
3831
|
+
}
|
|
3661
3832
|
function useSuspendUntilPresenceReady() {
|
|
3662
3833
|
ensureNotServerSide();
|
|
3663
3834
|
const room = useRoom();
|
|
@@ -3706,7 +3877,6 @@ function useStorageStatusSuspense(options) {
|
|
|
3706
3877
|
return useStorageStatus(options);
|
|
3707
3878
|
}
|
|
3708
3879
|
function useThreadsSuspense(options = {}) {
|
|
3709
|
-
ensureNotServerSide();
|
|
3710
3880
|
const client = useClient();
|
|
3711
3881
|
const room = useRoom();
|
|
3712
3882
|
const { store } = getRoomExtrasForClient(client);
|
|
@@ -3718,7 +3888,7 @@ function useThreadsSuspense(options = {}) {
|
|
|
3718
3888
|
return result;
|
|
3719
3889
|
}
|
|
3720
3890
|
function selectorFor_useAttachmentUrl(state) {
|
|
3721
|
-
if (state === void 0 || _optionalChain([state, 'optionalAccess',
|
|
3891
|
+
if (state === void 0 || _optionalChain([state, 'optionalAccess', _29 => _29.isLoading])) {
|
|
3722
3892
|
return _nullishCoalesce(state, () => ( { isLoading: true }));
|
|
3723
3893
|
}
|
|
3724
3894
|
if (state.error) {
|
|
@@ -3933,5 +4103,8 @@ var _useUpdateMyPresence = useUpdateMyPresence;
|
|
|
3933
4103
|
|
|
3934
4104
|
|
|
3935
4105
|
|
|
3936
|
-
|
|
3937
|
-
|
|
4106
|
+
|
|
4107
|
+
|
|
4108
|
+
|
|
4109
|
+
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;
|
|
4110
|
+
//# sourceMappingURL=chunk-4F7C4HN7.js.map
|