@liveblocks/react 3.7.0-preview1 → 3.7.0

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.cjs CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
 
27
27
 
28
- var _chunk42HXAXEDcjs = require('./chunk-42HXAXED.cjs');
28
+ var _chunkW2H56LB3cjs = require('./chunk-W2H56LB3.cjs');
29
29
 
30
30
  // src/lib/use-layout-effect.ts
31
31
  var _react = require('react');
@@ -50,7 +50,7 @@ function selectorFor_useGroup(state) {
50
50
  };
51
51
  }
52
52
  function useGroup(groupId) {
53
- const client = _chunk42HXAXEDcjs.useClient.call(void 0, );
53
+ const client = _chunkW2H56LB3cjs.useClient.call(void 0, );
54
54
  const store = client[_core.kInternal].httpClient.groupsStore;
55
55
  const getGroupState = _react.useCallback.call(void 0,
56
56
  () => store.getItemState(groupId),
@@ -59,7 +59,7 @@ function useGroup(groupId) {
59
59
  _react.useEffect.call(void 0, () => {
60
60
  void store.enqueue(groupId);
61
61
  }, [store, groupId]);
62
- return _chunk42HXAXEDcjs.useSyncExternalStoreWithSelector.call(void 0,
62
+ return _chunkW2H56LB3cjs.useSyncExternalStoreWithSelector.call(void 0,
63
63
  store.subscribe,
64
64
  getGroupState,
65
65
  getGroupState,
@@ -80,8 +80,8 @@ function normalizeMentionSuggestions(suggestions) {
80
80
  function useMentionSuggestions(roomId, search) {
81
81
  const [mentionSuggestions, setMentionSuggestions] = _react.useState.call(void 0, );
82
82
  const lastInvokedAt = _react.useRef.call(void 0, );
83
- const resolveMentionSuggestions = _chunk42HXAXEDcjs.useResolveMentionSuggestions.call(void 0, );
84
- const mentionSuggestionsCache = _chunk42HXAXEDcjs.useMentionSuggestionsCache.call(void 0, );
83
+ const resolveMentionSuggestions = _chunkW2H56LB3cjs.useResolveMentionSuggestions.call(void 0, );
84
+ const mentionSuggestionsCache = _chunkW2H56LB3cjs.useMentionSuggestionsCache.call(void 0, );
85
85
  _react.useEffect.call(void 0, () => {
86
86
  if (search === void 0 || !resolveMentionSuggestions) {
87
87
  return;
@@ -136,7 +136,7 @@ function useMentionSuggestions(roomId, search) {
136
136
 
137
137
 
138
138
  function useSyncSource() {
139
- const client = _chunk42HXAXEDcjs.useClient.call(void 0, );
139
+ const client = _chunkW2H56LB3cjs.useClient.call(void 0, );
140
140
  const createSyncSource = client[_core.kInternal].createSyncSource;
141
141
  const [syncSource, setSyncSource] = _react.useState.call(void 0, );
142
142
  _react.useEffect.call(void 0, () => {
@@ -176,5 +176,5 @@ function useSyncSource() {
176
176
 
177
177
 
178
178
 
179
- exports.getUmbrellaStoreForClient = _chunk42HXAXEDcjs.getUmbrellaStoreForClient; exports.useAddRoomCommentReaction = _chunk42HXAXEDcjs.useAddRoomCommentReaction; exports.useClientOrNull = _chunk42HXAXEDcjs.useClientOrNull; exports.useCreateRoomComment = _chunk42HXAXEDcjs.useCreateRoomComment; exports.useCreateRoomThread = _chunk42HXAXEDcjs.useCreateRoomThread; exports.useCreateTextMention = _chunk42HXAXEDcjs.useCreateTextMention; exports.useDeleteRoomComment = _chunk42HXAXEDcjs.useDeleteRoomComment; exports.useDeleteRoomThread = _chunk42HXAXEDcjs.useDeleteRoomThread; exports.useDeleteTextMention = _chunk42HXAXEDcjs.useDeleteTextMention; exports.useEditRoomComment = _chunk42HXAXEDcjs.useEditRoomComment; exports.useEditRoomThreadMetadata = _chunk42HXAXEDcjs.useEditRoomThreadMetadata; exports.useGroup = useGroup; exports.useLatest = _chunk42HXAXEDcjs.useLatest; exports.useLayoutEffect = useLayoutEffect; exports.useMarkRoomThreadAsRead = _chunk42HXAXEDcjs.useMarkRoomThreadAsRead; exports.useMarkRoomThreadAsResolved = _chunk42HXAXEDcjs.useMarkRoomThreadAsResolved; exports.useMarkRoomThreadAsUnresolved = _chunk42HXAXEDcjs.useMarkRoomThreadAsUnresolved; exports.useMentionSuggestions = useMentionSuggestions; exports.useMentionSuggestionsCache = _chunk42HXAXEDcjs.useMentionSuggestionsCache; exports.useRemoveRoomCommentReaction = _chunk42HXAXEDcjs.useRemoveRoomCommentReaction; exports.useReportTextEditor = _chunk42HXAXEDcjs.useReportTextEditor; exports.useResolveMentionSuggestions = _chunk42HXAXEDcjs.useResolveMentionSuggestions; exports.useRoomAttachmentUrl = _chunk42HXAXEDcjs.useRoomAttachmentUrl; exports.useRoomPermissions = _chunk42HXAXEDcjs.useRoomPermissions; exports.useRoomThreadSubscription = _chunk42HXAXEDcjs.useRoomThreadSubscription; exports.useSignal = _chunk42HXAXEDcjs.useSignal; exports.useSyncExternalStoreWithSelector = _chunk42HXAXEDcjs.useSyncExternalStoreWithSelector; exports.useSyncSource = useSyncSource; exports.useYjsProvider = _chunk42HXAXEDcjs.useYjsProvider;
179
+ exports.getUmbrellaStoreForClient = _chunkW2H56LB3cjs.getUmbrellaStoreForClient; exports.useAddRoomCommentReaction = _chunkW2H56LB3cjs.useAddRoomCommentReaction; exports.useClientOrNull = _chunkW2H56LB3cjs.useClientOrNull; exports.useCreateRoomComment = _chunkW2H56LB3cjs.useCreateRoomComment; exports.useCreateRoomThread = _chunkW2H56LB3cjs.useCreateRoomThread; exports.useCreateTextMention = _chunkW2H56LB3cjs.useCreateTextMention; exports.useDeleteRoomComment = _chunkW2H56LB3cjs.useDeleteRoomComment; exports.useDeleteRoomThread = _chunkW2H56LB3cjs.useDeleteRoomThread; exports.useDeleteTextMention = _chunkW2H56LB3cjs.useDeleteTextMention; exports.useEditRoomComment = _chunkW2H56LB3cjs.useEditRoomComment; exports.useEditRoomThreadMetadata = _chunkW2H56LB3cjs.useEditRoomThreadMetadata; exports.useGroup = useGroup; exports.useLatest = _chunkW2H56LB3cjs.useLatest; exports.useLayoutEffect = useLayoutEffect; exports.useMarkRoomThreadAsRead = _chunkW2H56LB3cjs.useMarkRoomThreadAsRead; exports.useMarkRoomThreadAsResolved = _chunkW2H56LB3cjs.useMarkRoomThreadAsResolved; exports.useMarkRoomThreadAsUnresolved = _chunkW2H56LB3cjs.useMarkRoomThreadAsUnresolved; exports.useMentionSuggestions = useMentionSuggestions; exports.useMentionSuggestionsCache = _chunkW2H56LB3cjs.useMentionSuggestionsCache; exports.useRemoveRoomCommentReaction = _chunkW2H56LB3cjs.useRemoveRoomCommentReaction; exports.useReportTextEditor = _chunkW2H56LB3cjs.useReportTextEditor; exports.useResolveMentionSuggestions = _chunkW2H56LB3cjs.useResolveMentionSuggestions; exports.useRoomAttachmentUrl = _chunkW2H56LB3cjs.useRoomAttachmentUrl; exports.useRoomPermissions = _chunkW2H56LB3cjs.useRoomPermissions; exports.useRoomThreadSubscription = _chunkW2H56LB3cjs.useRoomThreadSubscription; exports.useSignal = _chunkW2H56LB3cjs.useSignal; exports.useSyncExternalStoreWithSelector = _chunkW2H56LB3cjs.useSyncExternalStoreWithSelector; exports.useSyncSource = useSyncSource; exports.useYjsProvider = _chunkW2H56LB3cjs.useYjsProvider;
180
180
  //# sourceMappingURL=_private.cjs.map
@@ -1,5 +1,5 @@
1
- import { G as GroupAsyncResult } from './room-RdHnZMhs.cjs';
2
- export { g as getUmbrellaStoreForClient, a as useAddRoomCommentReaction, u as useClientOrNull, b as useCreateRoomComment, c as useCreateRoomThread, d as useCreateTextMention, e as useDeleteRoomComment, f as useDeleteRoomThread, h as useDeleteTextMention, i as useEditRoomComment, j as useEditRoomThreadMetadata, k as useMarkRoomThreadAsRead, l as useMarkRoomThreadAsResolved, m as useMarkRoomThreadAsUnresolved, n as useMentionSuggestionsCache, o as useRemoveRoomCommentReaction, p as useReportTextEditor, q as useResolveMentionSuggestions, r as useRoomAttachmentUrl, s as useRoomPermissions, t as useRoomThreadSubscription, v as useYjsProvider } from './room-RdHnZMhs.cjs';
1
+ import { G as GroupAsyncResult } from './room-mUz5TTmo.cjs';
2
+ export { g as getUmbrellaStoreForClient, a as useAddRoomCommentReaction, u as useClientOrNull, b as useCreateRoomComment, c as useCreateRoomThread, d as useCreateTextMention, e as useDeleteRoomComment, f as useDeleteRoomThread, h as useDeleteTextMention, i as useEditRoomComment, j as useEditRoomThreadMetadata, k as useMarkRoomThreadAsRead, l as useMarkRoomThreadAsResolved, m as useMarkRoomThreadAsUnresolved, n as useMentionSuggestionsCache, o as useRemoveRoomCommentReaction, p as useReportTextEditor, q as useResolveMentionSuggestions, r as useRoomAttachmentUrl, s as useRoomPermissions, t as useRoomThreadSubscription, v as useYjsProvider } from './room-mUz5TTmo.cjs';
3
3
  import { MutableRefObject, useEffect } from 'react';
4
4
  import { MentionData, ISignal, SyncSource } from '@liveblocks/core';
5
5
  import '@liveblocks/client';
@@ -1,5 +1,5 @@
1
- import { G as GroupAsyncResult } from './room-RdHnZMhs.js';
2
- export { g as getUmbrellaStoreForClient, a as useAddRoomCommentReaction, u as useClientOrNull, b as useCreateRoomComment, c as useCreateRoomThread, d as useCreateTextMention, e as useDeleteRoomComment, f as useDeleteRoomThread, h as useDeleteTextMention, i as useEditRoomComment, j as useEditRoomThreadMetadata, k as useMarkRoomThreadAsRead, l as useMarkRoomThreadAsResolved, m as useMarkRoomThreadAsUnresolved, n as useMentionSuggestionsCache, o as useRemoveRoomCommentReaction, p as useReportTextEditor, q as useResolveMentionSuggestions, r as useRoomAttachmentUrl, s as useRoomPermissions, t as useRoomThreadSubscription, v as useYjsProvider } from './room-RdHnZMhs.js';
1
+ import { G as GroupAsyncResult } from './room-mUz5TTmo.js';
2
+ export { g as getUmbrellaStoreForClient, a as useAddRoomCommentReaction, u as useClientOrNull, b as useCreateRoomComment, c as useCreateRoomThread, d as useCreateTextMention, e as useDeleteRoomComment, f as useDeleteRoomThread, h as useDeleteTextMention, i as useEditRoomComment, j as useEditRoomThreadMetadata, k as useMarkRoomThreadAsRead, l as useMarkRoomThreadAsResolved, m as useMarkRoomThreadAsUnresolved, n as useMentionSuggestionsCache, o as useRemoveRoomCommentReaction, p as useReportTextEditor, q as useResolveMentionSuggestions, r as useRoomAttachmentUrl, s as useRoomPermissions, t as useRoomThreadSubscription, v as useYjsProvider } from './room-mUz5TTmo.js';
3
3
  import { MutableRefObject, useEffect } from 'react';
4
4
  import { MentionData, ISignal, SyncSource } from '@liveblocks/core';
5
5
  import '@liveblocks/client';
package/dist/_private.js CHANGED
@@ -25,7 +25,7 @@ import {
25
25
  useSignal,
26
26
  useSyncExternalStoreWithSelector,
27
27
  useYjsProvider
28
- } from "./chunk-LYWCKEAX.js";
28
+ } from "./chunk-WGUV4Z4E.js";
29
29
 
30
30
  // src/lib/use-layout-effect.ts
31
31
  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 = "3.7.0-preview1";
3
+ var PKG_VERSION = "3.7.0";
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-AUFFB5BH.js.map
23
+ //# sourceMappingURL=chunk-KYXF6473.js.map
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/version.ts
2
2
  var PKG_NAME = "@liveblocks/react";
3
- var PKG_VERSION = "3.7.0-preview1";
3
+ var PKG_VERSION = "3.7.0";
4
4
  var PKG_FORMAT = "cjs";
5
5
 
6
6
  // src/ClientSideSuspense.tsx
@@ -20,4 +20,4 @@ function ClientSideSuspense(props) {
20
20
 
21
21
 
22
22
  exports.PKG_NAME = PKG_NAME; exports.PKG_VERSION = PKG_VERSION; exports.PKG_FORMAT = PKG_FORMAT; exports.ClientSideSuspense = ClientSideSuspense;
23
- //# sourceMappingURL=chunk-X5PYKCZB.cjs.map
23
+ //# sourceMappingURL=chunk-OXA6JGB4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/liveblocks/liveblocks/packages/liveblocks-react/dist/chunk-OXA6JGB4.cjs","../src/version.ts","../src/ClientSideSuspense.tsx"],"names":[],"mappings":"AAAA;ACGO,IAAM,SAAA,EAAW,mBAAA;AACjB,IAAM,YAAA,EAAiD,OAAA;AACvD,IAAM,WAAA,EAAgD,KAAA;ADD7D;AACA;AEJA,8BAA8C;AAkC1C,+CAAA;AAVG,SAAS,kBAAA,CAAmB,KAAA,EAAc;AAC/C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,EAAA,EAAI,6BAAA,KAAc,CAAA;AAE5C,EAAA,8BAAA,CAAU,EAAA,GAAM;AAGd,IAAA,UAAA,CAAW,IAAI,CAAA;AAAA,EACjB,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,uBACE,6BAAA,eAAC,EAAA,EAAS,QAAA,EAAU,KAAA,CAAM,QAAA,EACvB,QAAA,EAAA,QAAA,EACG,OAAO,KAAA,CAAM,SAAA,IAAa,WAAA,EACxB,KAAA,CAAM,QAAA,CAAS,EAAA,EACf,KAAA,CAAM,SAAA,EACR,KAAA,CAAM,SAAA,CACZ,CAAA;AAEJ;AF5BA;AACA;AACE;AACA;AACA;AACA;AACF,iJAAC","file":"/home/runner/work/liveblocks/liveblocks/packages/liveblocks-react/dist/chunk-OXA6JGB4.cjs","sourcesContent":[null,"declare const __VERSION__: string;\ndeclare const TSUP_FORMAT: string;\n\nexport const PKG_NAME = \"@liveblocks/react\";\nexport const PKG_VERSION = typeof __VERSION__ === \"string\" && __VERSION__;\nexport const PKG_FORMAT = typeof TSUP_FORMAT === \"string\" && TSUP_FORMAT;\n","import type { ReactNode } from \"react\";\nimport { Suspense, useEffect, useState } from \"react\";\n\ntype Props = {\n fallback: ReactNode;\n children: (() => ReactNode | undefined) | ReactNode | undefined;\n};\n\n/**\n * Almost like a normal <Suspense> component, except that for server-side\n * renders, the fallback will be used.\n *\n * The child props will have to be provided in a function, i.e. change:\n *\n * <Suspense fallback={<Loading />}>\n * <MyRealComponent a={1} />\n * </Suspense>\n *\n * To:\n *\n * <ClientSideSuspense fallback={<Loading />}>\n * <MyRealComponent a={1} />\n * </ClientSideSuspense>\n *\n */\nexport function ClientSideSuspense(props: Props) {\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n // Effects are never executed on the server side. The point of this is to\n // delay the flipping of this boolean until after hydration has happened.\n setMounted(true);\n }, []);\n\n return (\n <Suspense fallback={props.fallback}>\n {mounted\n ? typeof props.children === \"function\"\n ? props.children()\n : props.children\n : props.fallback}\n </Suspense>\n );\n}\n"]}
@@ -491,6 +491,9 @@ function makeUserThreadsQueryKey(query) {
491
491
  function makeAiChatsQueryKey(query) {
492
492
  return _core.stableStringify.call(void 0, _nullishCoalesce(query, () => ( {})));
493
493
  }
494
+ function makeInboxNotificationsQueryKey(query) {
495
+ return _core.stableStringify.call(void 0, _nullishCoalesce(query, () => ( {})));
496
+ }
494
497
  function usify(promise) {
495
498
  if ("status" in promise) {
496
499
  return promise;
@@ -919,7 +922,6 @@ var UmbrellaStore = class {
919
922
  // Notifications
920
923
  #notificationsLastRequestedAt = null;
921
924
  // Keeps track of when we successfully requested an inbox notifications update for the last time. Will be `null` as long as the first successful fetch hasn't happened yet.
922
- #notificationsPaginationState;
923
925
  // Room Threads
924
926
  #roomThreadsLastRequestedAtByRoom = /* @__PURE__ */ new Map();
925
927
  // User Threads
@@ -932,21 +934,6 @@ var UmbrellaStore = class {
932
934
  this.#client = client[_core.kInternal].as();
933
935
  this.optimisticUpdates = createStore_forOptimistic(this.#client);
934
936
  this.permissionHints = createStore_forPermissionHints();
935
- this.#notificationsPaginationState = new PaginatedResource(
936
- async (cursor) => {
937
- const result = await this.#client.getInboxNotifications({ cursor });
938
- this.updateThreadifications(
939
- result.threads,
940
- result.inboxNotifications,
941
- result.subscriptions
942
- );
943
- if (this.#notificationsLastRequestedAt === null) {
944
- this.#notificationsLastRequestedAt = result.requestedAt;
945
- }
946
- const nextCursor = result.nextCursor;
947
- return nextCursor;
948
- }
949
- );
950
937
  const notificationSettingsFetcher = async () => {
951
938
  const result = await this.#client.getNotificationSettings();
952
939
  this.notificationSettings.update(result);
@@ -1076,25 +1063,46 @@ var UmbrellaStore = class {
1076
1063
  return { signal, waitUntilLoaded: resource.waitUntilLoaded };
1077
1064
  }
1078
1065
  );
1079
- const loadingNotifications = {
1080
- signal: _core.DerivedSignal.from(() => {
1081
- const resource = this.#notificationsPaginationState;
1082
- const result = resource.get();
1083
- if (result.isLoading || result.error) {
1084
- return result;
1085
- }
1086
- const page = result.data;
1066
+ const loadingNotifications = new (0, _core.DefaultMap)(
1067
+ (queryKey) => {
1068
+ const query = JSON.parse(queryKey);
1069
+ const resource = new PaginatedResource(async (cursor) => {
1070
+ const result = await this.#client.getInboxNotifications({
1071
+ cursor,
1072
+ query
1073
+ });
1074
+ this.updateThreadifications(
1075
+ result.threads,
1076
+ result.inboxNotifications,
1077
+ result.subscriptions
1078
+ );
1079
+ if (this.#notificationsLastRequestedAt === null) {
1080
+ this.#notificationsLastRequestedAt = result.requestedAt;
1081
+ }
1082
+ const nextCursor = result.nextCursor;
1083
+ return nextCursor;
1084
+ });
1085
+ const signal = _core.DerivedSignal.from(() => {
1086
+ const result = resource.get();
1087
+ if (result.isLoading || result.error) {
1088
+ return result;
1089
+ }
1090
+ const page = result.data;
1091
+ return {
1092
+ isLoading: false,
1093
+ inboxNotifications: this.outputs.notifications.get().sortedNotifications,
1094
+ hasFetchedAll: page.hasFetchedAll,
1095
+ isFetchingMore: page.isFetchingMore,
1096
+ fetchMoreError: page.fetchMoreError,
1097
+ fetchMore: page.fetchMore
1098
+ };
1099
+ }, _core.shallow2);
1087
1100
  return {
1088
- isLoading: false,
1089
- inboxNotifications: this.outputs.notifications.get().sortedNotifications,
1090
- hasFetchedAll: page.hasFetchedAll,
1091
- isFetchingMore: page.isFetchingMore,
1092
- fetchMoreError: page.fetchMoreError,
1093
- fetchMore: page.fetchMore
1101
+ signal,
1102
+ waitUntilLoaded: resource.waitUntilLoaded
1094
1103
  };
1095
- }),
1096
- waitUntilLoaded: this.#notificationsPaginationState.waitUntilLoaded
1097
- };
1104
+ }
1105
+ );
1098
1106
  const roomSubscriptionSettingsByRoomId = new (0, _core.DefaultMap)(
1099
1107
  (roomId) => {
1100
1108
  const resource = new SinglePageResource(async () => {
@@ -2119,7 +2127,7 @@ function makeLiveblocksContextBundle(client) {
2119
2127
  const shared = createSharedContext(client);
2120
2128
  const bundle = {
2121
2129
  LiveblocksProvider: LiveblocksProvider2,
2122
- useInboxNotifications: () => useInboxNotifications_withClient(client, identity2, _core.shallow),
2130
+ useInboxNotifications: (options) => useInboxNotifications_withClient(client, identity2, _core.shallow, options),
2123
2131
  useUnreadInboxNotificationsCount: () => useUnreadInboxNotificationsCount_withClient(client),
2124
2132
  useMarkInboxNotificationAsRead: useMarkInboxNotificationAsRead2,
2125
2133
  useMarkAllInboxNotificationsAsRead: useMarkAllInboxNotificationsAsRead2,
@@ -2138,7 +2146,7 @@ function makeLiveblocksContextBundle(client) {
2138
2146
  ...shared.classic,
2139
2147
  suspense: {
2140
2148
  LiveblocksProvider: LiveblocksProvider2,
2141
- useInboxNotifications: () => useInboxNotificationsSuspense_withClient(client),
2149
+ useInboxNotifications: (options) => useInboxNotificationsSuspense_withClient(client, options),
2142
2150
  useUnreadInboxNotificationsCount: () => useUnreadInboxNotificationsCountSuspense_withClient(client),
2143
2151
  useMarkInboxNotificationAsRead: useMarkInboxNotificationAsRead2,
2144
2152
  useMarkAllInboxNotificationsAsRead: useMarkAllInboxNotificationsAsRead2,
@@ -2159,10 +2167,11 @@ function makeLiveblocksContextBundle(client) {
2159
2167
  };
2160
2168
  return bundle;
2161
2169
  }
2162
- function useInboxNotifications_withClient(client, selector, isEqual) {
2170
+ function useInboxNotifications_withClient(client, selector, isEqual, options) {
2163
2171
  const { store, notificationsPoller: poller } = getLiveblocksExtrasForClient(client);
2172
+ const queryKey = makeInboxNotificationsQueryKey(_optionalChain([options, 'optionalAccess', _13 => _13.query]));
2164
2173
  _react.useEffect.call(void 0,
2165
- () => void store.outputs.loadingNotifications.waitUntilLoaded()
2174
+ () => void store.outputs.loadingNotifications.getOrCreate(queryKey).waitUntilLoaded()
2166
2175
  // NOTE: Deliberately *not* using a dependency array here!
2167
2176
  //
2168
2177
  // It is important to call waitUntil on *every* render.
@@ -2180,16 +2189,24 @@ function useInboxNotifications_withClient(client, selector, isEqual) {
2180
2189
  };
2181
2190
  }, [poller]);
2182
2191
  return useSignal(
2183
- store.outputs.loadingNotifications.signal,
2192
+ store.outputs.loadingNotifications.getOrCreate(queryKey).signal,
2184
2193
  selector,
2185
2194
  isEqual
2186
2195
  );
2187
2196
  }
2188
- function useInboxNotificationsSuspense_withClient(client) {
2197
+ function useInboxNotificationsSuspense_withClient(client, options) {
2189
2198
  ensureNotServerSide();
2190
2199
  const store = getLiveblocksExtrasForClient(client).store;
2191
- use(store.outputs.loadingNotifications.waitUntilLoaded());
2192
- const result = useInboxNotifications_withClient(client, identity2, _core.shallow);
2200
+ const queryKey = makeInboxNotificationsQueryKey(_optionalChain([options, 'optionalAccess', _14 => _14.query]));
2201
+ use(
2202
+ store.outputs.loadingNotifications.getOrCreate(queryKey).waitUntilLoaded()
2203
+ );
2204
+ const result = useInboxNotifications_withClient(
2205
+ client,
2206
+ identity2,
2207
+ _core.shallow,
2208
+ options
2209
+ );
2193
2210
  _core.assert.call(void 0, !result.error, "Did not expect error");
2194
2211
  _core.assert.call(void 0, !result.isLoading, "Did not expect loading");
2195
2212
  return result;
@@ -2204,7 +2221,10 @@ function useUnreadInboxNotificationsCount_withClient(client) {
2204
2221
  function useUnreadInboxNotificationsCountSuspense_withClient(client) {
2205
2222
  ensureNotServerSide();
2206
2223
  const store = getLiveblocksExtrasForClient(client).store;
2207
- use(store.outputs.loadingNotifications.waitUntilLoaded());
2224
+ const queryKey = makeInboxNotificationsQueryKey(void 0);
2225
+ use(
2226
+ store.outputs.loadingNotifications.getOrCreate(queryKey).waitUntilLoaded()
2227
+ );
2208
2228
  const result = useUnreadInboxNotificationsCount_withClient(client);
2209
2229
  _core.assert.call(void 0, !result.isLoading, "Did not expect loading");
2210
2230
  _core.assert.call(void 0, !result.error, "Did not expect error");
@@ -2356,7 +2376,7 @@ function useUpdateNotificationSettings_withClient(client) {
2356
2376
  store.optimisticUpdates.remove(optimisticUpdateId);
2357
2377
  if (err instanceof _core.HttpError) {
2358
2378
  if (err.status === 422) {
2359
- 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");
2379
+ const msg = [_optionalChain([err, 'access', _15 => _15.details, 'optionalAccess', _16 => _16.error]), _optionalChain([err, 'access', _17 => _17.details, 'optionalAccess', _18 => _18.reason])].filter(Boolean).join("\n");
2360
2380
  _core.console.error(msg);
2361
2381
  }
2362
2382
  client[_core.kInternal].emitError(
@@ -2591,7 +2611,7 @@ function useGroupInfoSuspense_withClient(client, groupId) {
2591
2611
  function useAiChats(options) {
2592
2612
  const client = useClient();
2593
2613
  const store = getUmbrellaStoreForClient(client);
2594
- const queryKey = makeAiChatsQueryKey(_optionalChain([options, 'optionalAccess', _17 => _17.query]));
2614
+ const queryKey = makeAiChatsQueryKey(_optionalChain([options, 'optionalAccess', _19 => _19.query]));
2595
2615
  useEnsureAiConnection(client);
2596
2616
  _react.useEffect.call(void 0,
2597
2617
  () => void store.outputs.aiChats.getOrCreate(queryKey).waitUntilLoaded()
@@ -2615,7 +2635,7 @@ function useAiChatsSuspense(options) {
2615
2635
  const client = useClient();
2616
2636
  const store = getUmbrellaStoreForClient(client);
2617
2637
  useEnsureAiConnection(client);
2618
- const queryKey = makeAiChatsQueryKey(_optionalChain([options, 'optionalAccess', _18 => _18.query]));
2638
+ const queryKey = makeAiChatsQueryKey(_optionalChain([options, 'optionalAccess', _20 => _20.query]));
2619
2639
  use(store.outputs.aiChats.getOrCreate(queryKey).waitUntilLoaded());
2620
2640
  const result = useAiChats(options);
2621
2641
  _core.assert.call(void 0, !result.error, "Did not expect error");
@@ -2627,7 +2647,7 @@ function useAiChatMessages(chatId, options) {
2627
2647
  const store = getUmbrellaStoreForClient(client);
2628
2648
  useEnsureAiConnection(client);
2629
2649
  _react.useEffect.call(void 0,
2630
- () => void store.outputs.messagesByChatId.getOrCreate(chatId).getOrCreate(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _19 => _19.branchId]), () => ( null))).waitUntilLoaded()
2650
+ () => void store.outputs.messagesByChatId.getOrCreate(chatId).getOrCreate(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _21 => _21.branchId]), () => ( null))).waitUntilLoaded()
2631
2651
  // NOTE: Deliberately *not* using a dependency array here!
2632
2652
  //
2633
2653
  // It is important to call waitUntil on *every* render.
@@ -2638,7 +2658,7 @@ function useAiChatMessages(chatId, options) {
2638
2658
  // *next* render after that, a *new* fetch/promise will get created.
2639
2659
  );
2640
2660
  return useSignal(
2641
- store.outputs.messagesByChatId.getOrCreate(chatId).getOrCreate(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _20 => _20.branchId]), () => ( null))).signal
2661
+ store.outputs.messagesByChatId.getOrCreate(chatId).getOrCreate(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _22 => _22.branchId]), () => ( null))).signal
2642
2662
  );
2643
2663
  }
2644
2664
  function useAiChatMessagesSuspense(chatId, options) {
@@ -2647,7 +2667,7 @@ function useAiChatMessagesSuspense(chatId, options) {
2647
2667
  const store = getUmbrellaStoreForClient(client);
2648
2668
  useEnsureAiConnection(client);
2649
2669
  use(
2650
- store.outputs.messagesByChatId.getOrCreate(chatId).getOrCreate(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _21 => _21.branchId]), () => ( null))).waitUntilLoaded()
2670
+ store.outputs.messagesByChatId.getOrCreate(chatId).getOrCreate(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _23 => _23.branchId]), () => ( null))).waitUntilLoaded()
2651
2671
  );
2652
2672
  const result = useAiChatMessages(chatId, options);
2653
2673
  _core.assert.call(void 0, !result.error, "Did not expect error");
@@ -2730,7 +2750,7 @@ function useSendAiMessage(chatId, options) {
2730
2750
  "chatId must be provided to either `useSendAiMessage` or its returned function."
2731
2751
  )));
2732
2752
  const messages = client[_core.kInternal].ai.signals.getChatMessagesForBranch\u03A3(resolvedChatId).get();
2733
- if (process.env.NODE_ENV !== "production" && !messageOptionsCopilotId && !_optionalChain([options, 'optionalAccess', _22 => _22.copilotId])) {
2753
+ if (process.env.NODE_ENV !== "production" && !messageOptionsCopilotId && !_optionalChain([options, 'optionalAccess', _24 => _24.copilotId])) {
2734
2754
  _core.console.warn(
2735
2755
  `No copilot ID was provided to useSendAiMessage when sending the message "${messageText.slice(
2736
2756
  0,
@@ -2742,8 +2762,8 @@ To ensure the correct copilot ID is used, specify it either through the hook as
2742
2762
  )}\u2026", copilotId: "co_xxx" })'`
2743
2763
  );
2744
2764
  }
2745
- const resolvedCopilotId = _nullishCoalesce(_nullishCoalesce(messageOptionsCopilotId, () => ( _optionalChain([options, 'optionalAccess', _23 => _23.copilotId]))), () => ( client[_core.kInternal].ai.getLastUsedCopilotId(resolvedChatId)));
2746
- const lastMessageId = _nullishCoalesce(_optionalChain([messages, 'access', _24 => _24[messages.length - 1], 'optionalAccess', _25 => _25.id]), () => ( null));
2765
+ const resolvedCopilotId = _nullishCoalesce(_nullishCoalesce(messageOptionsCopilotId, () => ( _optionalChain([options, 'optionalAccess', _25 => _25.copilotId]))), () => ( client[_core.kInternal].ai.getLastUsedCopilotId(resolvedChatId)));
2766
+ const lastMessageId = _nullishCoalesce(_optionalChain([messages, 'access', _26 => _26[messages.length - 1], 'optionalAccess', _27 => _27.id]), () => ( null));
2747
2767
  const content = [{ type: "text", text: messageText }];
2748
2768
  const newMessageId = client[_core.kInternal].ai[_core.kInternal].context.messagesStore.createOptimistically(
2749
2769
  resolvedChatId,
@@ -2763,10 +2783,10 @@ To ensure the correct copilot ID is used, specify it either through the hook as
2763
2783
  { id: newMessageId, parentMessageId: lastMessageId, content },
2764
2784
  targetMessageId,
2765
2785
  {
2766
- stream: _nullishCoalesce(messageOptions.stream, () => ( _optionalChain([options, 'optionalAccess', _26 => _26.stream]))),
2786
+ stream: _nullishCoalesce(messageOptions.stream, () => ( _optionalChain([options, 'optionalAccess', _28 => _28.stream]))),
2767
2787
  copilotId: resolvedCopilotId,
2768
- timeout: _nullishCoalesce(messageOptions.timeout, () => ( _optionalChain([options, 'optionalAccess', _27 => _27.timeout]))),
2769
- knowledge: _nullishCoalesce(messageOptions.knowledge, () => ( _optionalChain([options, 'optionalAccess', _28 => _28.knowledge])))
2788
+ timeout: _nullishCoalesce(messageOptions.timeout, () => ( _optionalChain([options, 'optionalAccess', _29 => _29.timeout]))),
2789
+ knowledge: _nullishCoalesce(messageOptions.knowledge, () => ( _optionalChain([options, 'optionalAccess', _30 => _30.knowledge])))
2770
2790
  }
2771
2791
  );
2772
2792
  return newMessage;
@@ -2774,10 +2794,10 @@ To ensure the correct copilot ID is used, specify it either through the hook as
2774
2794
  [
2775
2795
  client,
2776
2796
  chatId,
2777
- _optionalChain([options, 'optionalAccess', _29 => _29.copilotId]),
2778
- _optionalChain([options, 'optionalAccess', _30 => _30.stream]),
2779
- _optionalChain([options, 'optionalAccess', _31 => _31.timeout]),
2780
- _optionalChain([options, 'optionalAccess', _32 => _32.knowledge])
2797
+ _optionalChain([options, 'optionalAccess', _31 => _31.copilotId]),
2798
+ _optionalChain([options, 'optionalAccess', _32 => _32.stream]),
2799
+ _optionalChain([options, 'optionalAccess', _33 => _33.timeout]),
2800
+ _optionalChain([options, 'optionalAccess', _34 => _34.knowledge])
2781
2801
  ]
2782
2802
  );
2783
2803
  }
@@ -2813,7 +2833,7 @@ function createSharedContext(client) {
2813
2833
  }
2814
2834
  function useEnsureNoLiveblocksProvider(options) {
2815
2835
  const existing = useClientOrNull();
2816
- if (!_optionalChain([options, 'optionalAccess', _33 => _33.allowNesting]) && existing !== null) {
2836
+ if (!_optionalChain([options, 'optionalAccess', _35 => _35.allowNesting]) && existing !== null) {
2817
2837
  throw new Error(
2818
2838
  "You cannot nest multiple LiveblocksProvider instances in the same React tree."
2819
2839
  );
@@ -2898,11 +2918,16 @@ function useUserThreadsSuspense_experimental(options = {}) {
2898
2918
  _core.assert.call(void 0, !result.isLoading, "Did not expect loading");
2899
2919
  return result;
2900
2920
  }
2901
- function useInboxNotifications() {
2902
- return useInboxNotifications_withClient(useClient(), identity2, _core.shallow);
2921
+ function useInboxNotifications(options) {
2922
+ return useInboxNotifications_withClient(
2923
+ useClient(),
2924
+ identity2,
2925
+ _core.shallow,
2926
+ options
2927
+ );
2903
2928
  }
2904
- function useInboxNotificationsSuspense() {
2905
- return useInboxNotificationsSuspense_withClient(useClient());
2929
+ function useInboxNotificationsSuspense(options) {
2930
+ return useInboxNotificationsSuspense_withClient(useClient(), options);
2906
2931
  }
2907
2932
  function useInboxNotificationThread(inboxNotificationId) {
2908
2933
  return useInboxNotificationThread_withClient(
@@ -2969,7 +2994,7 @@ var _useAiChatSuspense = useAiChatSuspense;
2969
2994
  var _useAiChatMessages = useAiChatMessages;
2970
2995
  var _useAiChatMessagesSuspense = useAiChatMessagesSuspense;
2971
2996
  function useSyncStatus_withClient(client, options) {
2972
- const smooth = useInitial(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _34 => _34.smooth]), () => ( false)));
2997
+ const smooth = useInitial(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _36 => _36.smooth]), () => ( false)));
2973
2998
  if (smooth) {
2974
2999
  return useSyncStatusSmooth_withClient(client);
2975
3000
  } else {
@@ -3148,8 +3173,8 @@ function makeRoomExtrasForClient(client) {
3148
3173
  if (innerError.status === 403) {
3149
3174
  const detailedMessage = [
3150
3175
  innerError.message,
3151
- _optionalChain([innerError, 'access', _35 => _35.details, 'optionalAccess', _36 => _36.suggestion]),
3152
- _optionalChain([innerError, 'access', _37 => _37.details, 'optionalAccess', _38 => _38.docs])
3176
+ _optionalChain([innerError, 'access', _37 => _37.details, 'optionalAccess', _38 => _38.suggestion]),
3177
+ _optionalChain([innerError, 'access', _39 => _39.details, 'optionalAccess', _40 => _40.docs])
3153
3178
  ].filter(Boolean).join("\n");
3154
3179
  _core.console.error(detailedMessage);
3155
3180
  }
@@ -3444,7 +3469,7 @@ function RoomProviderInner(props) {
3444
3469
  }
3445
3470
  function useRoom(options) {
3446
3471
  const room = useRoomOrNull();
3447
- if (room === null && !_optionalChain([options, 'optionalAccess', _39 => _39.allowOutsideRoom])) {
3472
+ if (room === null && !_optionalChain([options, 'optionalAccess', _41 => _41.allowOutsideRoom])) {
3448
3473
  throw new Error("RoomProvider is missing from the React tree.");
3449
3474
  }
3450
3475
  return room;
@@ -3794,7 +3819,7 @@ function useCreateRoomThread(roomId) {
3794
3819
  thread: newThread,
3795
3820
  roomId
3796
3821
  });
3797
- const attachmentIds = _optionalChain([attachments, 'optionalAccess', _40 => _40.map, 'call', _41 => _41((attachment) => attachment.id)]);
3822
+ const attachmentIds = _optionalChain([attachments, 'optionalAccess', _42 => _42.map, 'call', _43 => _43((attachment) => attachment.id)]);
3798
3823
  client[_core.kInternal].httpClient.createThread({
3799
3824
  roomId,
3800
3825
  threadId,
@@ -3834,7 +3859,7 @@ function useDeleteRoomThread(roomId) {
3834
3859
  const { store, onMutationFailure } = getRoomExtrasForClient(client);
3835
3860
  const userId = getCurrentUserId(client);
3836
3861
  const existing = store.outputs.threads.get().get(threadId);
3837
- if (_optionalChain([existing, 'optionalAccess', _42 => _42.comments, 'optionalAccess', _43 => _43[0], 'optionalAccess', _44 => _44.userId]) !== userId) {
3862
+ if (_optionalChain([existing, 'optionalAccess', _44 => _44.comments, 'optionalAccess', _45 => _45[0], 'optionalAccess', _46 => _46.userId]) !== userId) {
3838
3863
  throw new Error("Only the thread creator can delete the thread");
3839
3864
  }
3840
3865
  const optimisticId = store.optimisticUpdates.add({
@@ -3922,7 +3947,7 @@ function useCreateRoomComment(roomId) {
3922
3947
  type: "create-comment",
3923
3948
  comment
3924
3949
  });
3925
- const attachmentIds = _optionalChain([attachments, 'optionalAccess', _45 => _45.map, 'call', _46 => _46((attachment) => attachment.id)]);
3950
+ const attachmentIds = _optionalChain([attachments, 'optionalAccess', _47 => _47.map, 'call', _48 => _48((attachment) => attachment.id)]);
3926
3951
  client[_core.kInternal].httpClient.createComment({ roomId, threadId, commentId, body, attachmentIds }).then(
3927
3952
  (newComment) => {
3928
3953
  store.createComment(newComment, optimisticId);
@@ -3978,7 +4003,7 @@ function useEditRoomComment(roomId) {
3978
4003
  attachments: _nullishCoalesce(attachments, () => ( []))
3979
4004
  }
3980
4005
  });
3981
- const attachmentIds = _optionalChain([attachments, 'optionalAccess', _47 => _47.map, 'call', _48 => _48((attachment) => attachment.id)]);
4006
+ const attachmentIds = _optionalChain([attachments, 'optionalAccess', _49 => _49.map, 'call', _50 => _50((attachment) => attachment.id)]);
3982
4007
  client[_core.kInternal].httpClient.editComment({ roomId, threadId, commentId, body, attachmentIds }).then(
3983
4008
  (editedComment) => {
3984
4009
  store.editComment(threadId, optimisticId, editedComment);
@@ -4319,7 +4344,7 @@ function useRoomThreadSubscription(roomId, threadId) {
4319
4344
  }
4320
4345
  return {
4321
4346
  status: "subscribed",
4322
- unreadSince: _nullishCoalesce(_optionalChain([notification, 'optionalAccess', _49 => _49.readAt]), () => ( null)),
4347
+ unreadSince: _nullishCoalesce(_optionalChain([notification, 'optionalAccess', _51 => _51.readAt]), () => ( null)),
4323
4348
  subscribe,
4324
4349
  unsubscribe
4325
4350
  };
@@ -4530,7 +4555,7 @@ function useThreadsSuspense(options = {}) {
4530
4555
  return result;
4531
4556
  }
4532
4557
  function selectorFor_useAttachmentUrl(state) {
4533
- if (state === void 0 || _optionalChain([state, 'optionalAccess', _50 => _50.isLoading])) {
4558
+ if (state === void 0 || _optionalChain([state, 'optionalAccess', _52 => _52.isLoading])) {
4534
4559
  return _nullishCoalesce(state, () => ( { isLoading: true }));
4535
4560
  }
4536
4561
  if (state.error) {
@@ -4758,4 +4783,4 @@ var _useUpdateMyPresence = useUpdateMyPresence;
4758
4783
 
4759
4784
 
4760
4785
  exports.ClientContext = ClientContext; exports.useClientOrNull = useClientOrNull; exports.useClient = useClient; exports.RoomContext = RoomContext; exports.useLatest = useLatest; exports.RegisterAiKnowledge = RegisterAiKnowledge; exports.RegisterAiTool = RegisterAiTool; exports.useSyncExternalStoreWithSelector = useSyncExternalStoreWithSelector; exports.useSignal = useSignal; exports.getUmbrellaStoreForClient = getUmbrellaStoreForClient; exports.useCreateAiChat = useCreateAiChat; exports.useDeleteAiChat = useDeleteAiChat; exports.useSendAiMessage = useSendAiMessage; 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.useGroupInfo = useGroupInfo; exports.useGroupInfoSuspense = useGroupInfoSuspense; exports._useInboxNotificationThread = _useInboxNotificationThread; exports._useUser = _useUser; exports._useUserSuspense = _useUserSuspense; exports._useUserThreads_experimental = _useUserThreads_experimental; exports._useUserThreadsSuspense_experimental = _useUserThreadsSuspense_experimental; exports._useAiChats = _useAiChats; exports._useAiChatsSuspense = _useAiChatsSuspense; exports._useAiChat = _useAiChat; exports._useAiChatSuspense = _useAiChatSuspense; exports._useAiChatMessages = _useAiChatMessages; exports._useAiChatMessagesSuspense = _useAiChatMessagesSuspense; 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.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.useSubscribeToThread = useSubscribeToThread; exports.useUnsubscribeFromThread = useUnsubscribeFromThread; exports.useThreadSubscription = useThreadSubscription; exports.useRoomThreadSubscription = useRoomThreadSubscription; exports.useHistoryVersionData = useHistoryVersionData; exports.useUpdateRoomSubscriptionSettings = useUpdateRoomSubscriptionSettings; exports.useOthersConnectionIdsSuspense = useOthersConnectionIdsSuspense; 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._useRoomSubscriptionSettings = _useRoomSubscriptionSettings; exports._useRoomSubscriptionSettingsSuspense = _useRoomSubscriptionSettingsSuspense; 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;
4761
- //# sourceMappingURL=chunk-42HXAXED.cjs.map
4786
+ //# sourceMappingURL=chunk-W2H56LB3.cjs.map