@liveblocks/react 2.15.2 → 2.16.0-toolbars2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
- export { C as CreateThreadError, 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-0rxzsE_0.mjs';
2
- import { useEffect } from 'react';
1
+ export { C as CreateThreadError, 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-ne1TCZyH.mjs';
2
+ import { useLayoutEffect as useLayoutEffect$1 } from 'react';
3
3
  import { ISignal, SyncSource } from '@liveblocks/core';
4
- import 'react/jsx-runtime';
5
4
  import '@liveblocks/client';
5
+ import 'react/jsx-runtime';
6
6
 
7
- declare const useLayoutEffect: typeof useEffect;
7
+ declare const useLayoutEffect: typeof useLayoutEffect$1;
8
8
 
9
9
  /**
10
10
  * @private For internal use only. Do not rely on this hook.
@@ -1,10 +1,10 @@
1
- export { C as CreateThreadError, 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-0rxzsE_0.js';
2
- import { useEffect } from 'react';
1
+ export { C as CreateThreadError, 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-ne1TCZyH.js';
2
+ import { useLayoutEffect as useLayoutEffect$1 } from 'react';
3
3
  import { ISignal, SyncSource } from '@liveblocks/core';
4
- import 'react/jsx-runtime';
5
4
  import '@liveblocks/client';
5
+ import 'react/jsx-runtime';
6
6
 
7
- declare const useLayoutEffect: typeof useEffect;
7
+ declare const useLayoutEffect: typeof useLayoutEffect$1;
8
8
 
9
9
  /**
10
10
  * @private For internal use only. Do not rely on this hook.
package/dist/_private.js CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
 
27
27
 
28
- var _chunkDEAPV4GEjs = require('./chunk-DEAPV4GE.js');
28
+ var _chunkVJYVOAD5js = require('./chunk-VJYVOAD5.js');
29
29
 
30
30
  // src/lib/use-layout-effect.ts
31
31
  var _react = require('react');
@@ -38,8 +38,8 @@ var MENTION_SUGGESTIONS_DEBOUNCE = 500;
38
38
  function useMentionSuggestions(roomId, search) {
39
39
  const [mentionSuggestions, setMentionSuggestions] = _react.useState.call(void 0, );
40
40
  const lastInvokedAt = _react.useRef.call(void 0, );
41
- const resolveMentionSuggestions = _chunkDEAPV4GEjs.useResolveMentionSuggestions.call(void 0, );
42
- const mentionSuggestionsCache = _chunkDEAPV4GEjs.useMentionSuggestionsCache.call(void 0, );
41
+ const resolveMentionSuggestions = _chunkVJYVOAD5js.useResolveMentionSuggestions.call(void 0, );
42
+ const mentionSuggestionsCache = _chunkVJYVOAD5js.useMentionSuggestionsCache.call(void 0, );
43
43
  _react.useEffect.call(void 0, () => {
44
44
  if (search === void 0 || !resolveMentionSuggestions) {
45
45
  return;
@@ -88,7 +88,7 @@ function useMentionSuggestions(roomId, search) {
88
88
 
89
89
 
90
90
  function useSyncSource() {
91
- const client = _chunkDEAPV4GEjs.useClient.call(void 0, );
91
+ const client = _chunkVJYVOAD5js.useClient.call(void 0, );
92
92
  const createSyncSource = client[_core.kInternal].createSyncSource;
93
93
  const [syncSource, setSyncSource] = _react.useState.call(void 0, );
94
94
  _react.useEffect.call(void 0, () => {
@@ -127,5 +127,5 @@ function useSyncSource() {
127
127
 
128
128
 
129
129
 
130
- exports.CreateThreadError = _chunkDEAPV4GEjs.CreateThreadError; exports.getUmbrellaStoreForClient = _chunkDEAPV4GEjs.getUmbrellaStoreForClient; exports.useAddRoomCommentReaction = _chunkDEAPV4GEjs.useAddRoomCommentReaction; exports.useClientOrNull = _chunkDEAPV4GEjs.useClientOrNull; exports.useCreateRoomComment = _chunkDEAPV4GEjs.useCreateRoomComment; exports.useCreateRoomThread = _chunkDEAPV4GEjs.useCreateRoomThread; exports.useCreateTextMention = _chunkDEAPV4GEjs.useCreateTextMention; exports.useDeleteRoomComment = _chunkDEAPV4GEjs.useDeleteRoomComment; exports.useDeleteRoomThread = _chunkDEAPV4GEjs.useDeleteRoomThread; exports.useDeleteTextMention = _chunkDEAPV4GEjs.useDeleteTextMention; exports.useEditRoomComment = _chunkDEAPV4GEjs.useEditRoomComment; exports.useEditRoomThreadMetadata = _chunkDEAPV4GEjs.useEditRoomThreadMetadata; exports.useLayoutEffect = useLayoutEffect; exports.useMarkRoomThreadAsRead = _chunkDEAPV4GEjs.useMarkRoomThreadAsRead; exports.useMarkRoomThreadAsResolved = _chunkDEAPV4GEjs.useMarkRoomThreadAsResolved; exports.useMarkRoomThreadAsUnresolved = _chunkDEAPV4GEjs.useMarkRoomThreadAsUnresolved; exports.useMentionSuggestions = useMentionSuggestions; exports.useMentionSuggestionsCache = _chunkDEAPV4GEjs.useMentionSuggestionsCache; exports.useRemoveRoomCommentReaction = _chunkDEAPV4GEjs.useRemoveRoomCommentReaction; exports.useReportTextEditor = _chunkDEAPV4GEjs.useReportTextEditor; exports.useResolveMentionSuggestions = _chunkDEAPV4GEjs.useResolveMentionSuggestions; exports.useRoomAttachmentUrl = _chunkDEAPV4GEjs.useRoomAttachmentUrl; exports.useRoomOrNull = _chunkDEAPV4GEjs.useRoomOrNull; exports.useRoomPermissions = _chunkDEAPV4GEjs.useRoomPermissions; exports.useSignal = _chunkDEAPV4GEjs.useSignal; exports.useSyncExternalStoreWithSelector = _chunkDEAPV4GEjs.useSyncExternalStoreWithSelector; exports.useSyncSource = useSyncSource; exports.useYjsProvider = _chunkDEAPV4GEjs.useYjsProvider;
130
+ exports.CreateThreadError = _chunkVJYVOAD5js.CreateThreadError; exports.getUmbrellaStoreForClient = _chunkVJYVOAD5js.getUmbrellaStoreForClient; exports.useAddRoomCommentReaction = _chunkVJYVOAD5js.useAddRoomCommentReaction; exports.useClientOrNull = _chunkVJYVOAD5js.useClientOrNull; exports.useCreateRoomComment = _chunkVJYVOAD5js.useCreateRoomComment; exports.useCreateRoomThread = _chunkVJYVOAD5js.useCreateRoomThread; exports.useCreateTextMention = _chunkVJYVOAD5js.useCreateTextMention; exports.useDeleteRoomComment = _chunkVJYVOAD5js.useDeleteRoomComment; exports.useDeleteRoomThread = _chunkVJYVOAD5js.useDeleteRoomThread; exports.useDeleteTextMention = _chunkVJYVOAD5js.useDeleteTextMention; exports.useEditRoomComment = _chunkVJYVOAD5js.useEditRoomComment; exports.useEditRoomThreadMetadata = _chunkVJYVOAD5js.useEditRoomThreadMetadata; exports.useLayoutEffect = useLayoutEffect; exports.useMarkRoomThreadAsRead = _chunkVJYVOAD5js.useMarkRoomThreadAsRead; exports.useMarkRoomThreadAsResolved = _chunkVJYVOAD5js.useMarkRoomThreadAsResolved; exports.useMarkRoomThreadAsUnresolved = _chunkVJYVOAD5js.useMarkRoomThreadAsUnresolved; exports.useMentionSuggestions = useMentionSuggestions; exports.useMentionSuggestionsCache = _chunkVJYVOAD5js.useMentionSuggestionsCache; exports.useRemoveRoomCommentReaction = _chunkVJYVOAD5js.useRemoveRoomCommentReaction; exports.useReportTextEditor = _chunkVJYVOAD5js.useReportTextEditor; exports.useResolveMentionSuggestions = _chunkVJYVOAD5js.useResolveMentionSuggestions; exports.useRoomAttachmentUrl = _chunkVJYVOAD5js.useRoomAttachmentUrl; exports.useRoomOrNull = _chunkVJYVOAD5js.useRoomOrNull; exports.useRoomPermissions = _chunkVJYVOAD5js.useRoomPermissions; exports.useSignal = _chunkVJYVOAD5js.useSignal; exports.useSyncExternalStoreWithSelector = _chunkVJYVOAD5js.useSyncExternalStoreWithSelector; exports.useSyncSource = useSyncSource; exports.useYjsProvider = _chunkVJYVOAD5js.useYjsProvider;
131
131
  //# sourceMappingURL=_private.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/use-layout-effect.ts","../src/use-mention-suggestions.ts","../src/use-sync-source.ts"],"names":["useEffect","mentionSuggestions","useState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,WAAW,mBAAmB,+BAA+B;AAI/D,IAAM,kBACX,OAAO,WAAW,cAAc,0BAA0B;;;ACP5D,SAAS,iBAAiB;AAC1B,SAAS,aAAAA,YAAW,QAAQ,gBAAgB;AAO5C,IAAM,+BAA+B;AAQ9B,SAAS,sBAAsB,QAAgB,QAAiB;AACrE,QAAM,CAAC,oBAAoB,qBAAqB,IAAI,SAAmB;AACvE,QAAM,gBAAgB,OAAe;AAErC,QAAM,4BAA4B,6BAA6B;AAC/D,QAAM,0BAA0B,2BAA2B;AAE3D,EAAAA,WAAU,MAAM;AACd,QAAI,WAAW,UAAa,CAAC,2BAA2B;AACtD;AAAA,IACF;AAEA,UAAM,gCAAgC,EAAE,MAAM,QAAQ,OAAO;AAC7D,UAAM,6BAA6B,UAAU,6BAA6B;AAC1E,QAAI;AACJ,QAAI,aAAa;AAEjB,UAAM,wBAAwB,YAAY;AACxC,UAAI;AACF,sBAAc,UAAU,YAAY,IAAI;AACxC,cAAMC,sBAAqB,MAAM;AAAA,UAC/B;AAAA,QACF;AAEA,YAAI,CAAC,YAAY;AACf,gCAAsBA,mBAAkB;AACxC,kCAAwB;AAAA,YACtB;AAAA,YACAA;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAO,OAAiB,OAAO;AAAA,MACzC;AAAA,IACF;AAEA,QAAI,wBAAwB,IAAI,0BAA0B,GAAG;AAE3D;AAAA,QACE,wBAAwB,IAAI,0BAA0B;AAAA,MACxD;AAAA,IACF,WACE,CAAC,cAAc,WACf,KAAK,IAAI,YAAY,IAAI,IAAI,cAAc,OAAO,IAChD,8BACF;AAGA,WAAK,sBAAsB;AAAA,IAC7B,OAAO;AAEL,wBAAkB,OAAO,WAAW,MAAM;AACxC,aAAK,sBAAsB;AAAA,MAC7B,GAAG,4BAA4B;AAAA,IACjC;AAEA,WAAO,MAAM;AACX,mBAAa;AACb,aAAO,aAAa,eAAe;AAAA,IACrC;AAAA,EACF,GAAG,CAAC,QAAQ,QAAQ,2BAA2B,uBAAuB,CAAC;AAEvE,SAAO;AACT;;;AC9EA,SAAS,iBAAiB;AAC1B,SAAS,aAAAD,YAAW,YAAAE,iBAAgB;AAO7B,SAAS,gBAAwC;AACtD,QAAM,SAAS,UAAU;AACzB,QAAM,mBAAmB,OAAO,SAAS,EAAE;AAC3C,QAAM,CAAC,YAAY,aAAa,IAAIA,UAAiC;AAErE,EAAAF,WAAU,MAAM;AAEd,UAAM,gBAAgB,iBAAiB;AACvC,kBAAc,aAAa;AAC3B,WAAO,MAAM,cAAc,QAAQ;AAAA,EACrC,GAAG,CAAC,gBAAgB,CAAC;AAErB,SAAO;AACT","sourcesContent":["/* eslint-disable no-restricted-syntax */\n\nimport { useEffect, useLayoutEffect as useOriginalLayoutEffect } from \"react\";\n\n// On React 18.2.0 and earlier, useLayoutEffect triggers a warning when\n// executed on the server, so this workaround should be used instead.\nexport const useLayoutEffect =\n typeof window !== \"undefined\" ? useOriginalLayoutEffect : useEffect;\n","import { stringify } from \"@liveblocks/core\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport {\n useMentionSuggestionsCache,\n useResolveMentionSuggestions,\n} from \"./room\";\n\nconst MENTION_SUGGESTIONS_DEBOUNCE = 500;\n\n/**\n * @private For internal use only. Do not rely on this hook.\n *\n * Simplistic debounced search, we don't need to worry too much about deduping\n * and race conditions as there can only be one search at a time.\n */\nexport function useMentionSuggestions(roomId: string, search?: string) {\n const [mentionSuggestions, setMentionSuggestions] = useState<string[]>();\n const lastInvokedAt = useRef<number>();\n\n const resolveMentionSuggestions = useResolveMentionSuggestions();\n const mentionSuggestionsCache = useMentionSuggestionsCache();\n\n useEffect(() => {\n if (search === undefined || !resolveMentionSuggestions) {\n return;\n }\n\n const resolveMentionSuggestionsArgs = { text: search, roomId };\n const mentionSuggestionsCacheKey = stringify(resolveMentionSuggestionsArgs);\n let debounceTimeout: number | undefined;\n let isCanceled = false;\n\n const getMentionSuggestions = async () => {\n try {\n lastInvokedAt.current = performance.now();\n const mentionSuggestions = await resolveMentionSuggestions(\n resolveMentionSuggestionsArgs\n );\n\n if (!isCanceled) {\n setMentionSuggestions(mentionSuggestions);\n mentionSuggestionsCache.set(\n mentionSuggestionsCacheKey,\n mentionSuggestions\n );\n }\n } catch (error) {\n console.error((error as Error)?.message);\n }\n };\n\n if (mentionSuggestionsCache.has(mentionSuggestionsCacheKey)) {\n // If there are already cached mention suggestions, use them immediately.\n setMentionSuggestions(\n mentionSuggestionsCache.get(mentionSuggestionsCacheKey)\n );\n } else if (\n !lastInvokedAt.current ||\n Math.abs(performance.now() - lastInvokedAt.current) >\n MENTION_SUGGESTIONS_DEBOUNCE\n ) {\n // If on the debounce's leading edge (either because it's the first invokation or enough\n // time has passed since the last debounce), get mention suggestions immediately.\n void getMentionSuggestions();\n } else {\n // Otherwise, wait for the debounce delay.\n debounceTimeout = window.setTimeout(() => {\n void getMentionSuggestions();\n }, MENTION_SUGGESTIONS_DEBOUNCE);\n }\n\n return () => {\n isCanceled = true;\n window.clearTimeout(debounceTimeout);\n };\n }, [search, roomId, resolveMentionSuggestions, mentionSuggestionsCache]);\n\n return mentionSuggestions;\n}\n","import type { SyncSource } from \"@liveblocks/core\";\nimport { kInternal } from \"@liveblocks/core\";\nimport { useEffect, useState } from \"react\";\n\nimport { useClient } from \"./liveblocks\";\n\n/**\n * @private For internal use only. Do not rely on this hook.\n */\nexport function useSyncSource(): SyncSource | undefined {\n const client = useClient();\n const createSyncSource = client[kInternal].createSyncSource;\n const [syncSource, setSyncSource] = useState<SyncSource | undefined>();\n\n useEffect(() => {\n // Create new sync source on mount\n const newSyncSource = createSyncSource();\n setSyncSource(newSyncSource);\n return () => newSyncSource.destroy();\n }, [createSyncSource]);\n\n return syncSource;\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/liveblocks/liveblocks/packages/liveblocks-react/dist/_private.js","../src/lib/use-layout-effect.ts","../src/use-mention-suggestions.ts","../src/use-sync-source.ts"],"names":["useEffect","mentionSuggestions","useState"],"mappings":"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","file":"/home/runner/work/liveblocks/liveblocks/packages/liveblocks-react/dist/_private.js","sourcesContent":[null,"/* eslint-disable no-restricted-syntax */\n\nimport { useEffect, useLayoutEffect as useOriginalLayoutEffect } from \"react\";\n\n// On React 18.2.0 and earlier, useLayoutEffect triggers a warning when\n// executed on the server, so this workaround should be used instead.\nexport const useLayoutEffect =\n typeof window !== \"undefined\" ? useOriginalLayoutEffect : useEffect;\n","import { stringify } from \"@liveblocks/core\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport {\n useMentionSuggestionsCache,\n useResolveMentionSuggestions,\n} from \"./room\";\n\nconst MENTION_SUGGESTIONS_DEBOUNCE = 500;\n\n/**\n * @private For internal use only. Do not rely on this hook.\n *\n * Simplistic debounced search, we don't need to worry too much about deduping\n * and race conditions as there can only be one search at a time.\n */\nexport function useMentionSuggestions(roomId: string, search?: string) {\n const [mentionSuggestions, setMentionSuggestions] = useState<string[]>();\n const lastInvokedAt = useRef<number>();\n\n const resolveMentionSuggestions = useResolveMentionSuggestions();\n const mentionSuggestionsCache = useMentionSuggestionsCache();\n\n useEffect(() => {\n if (search === undefined || !resolveMentionSuggestions) {\n return;\n }\n\n const resolveMentionSuggestionsArgs = { text: search, roomId };\n const mentionSuggestionsCacheKey = stringify(resolveMentionSuggestionsArgs);\n let debounceTimeout: number | undefined;\n let isCanceled = false;\n\n const getMentionSuggestions = async () => {\n try {\n lastInvokedAt.current = performance.now();\n const mentionSuggestions = await resolveMentionSuggestions(\n resolveMentionSuggestionsArgs\n );\n\n if (!isCanceled) {\n setMentionSuggestions(mentionSuggestions);\n mentionSuggestionsCache.set(\n mentionSuggestionsCacheKey,\n mentionSuggestions\n );\n }\n } catch (error) {\n console.error((error as Error)?.message);\n }\n };\n\n if (mentionSuggestionsCache.has(mentionSuggestionsCacheKey)) {\n // If there are already cached mention suggestions, use them immediately.\n setMentionSuggestions(\n mentionSuggestionsCache.get(mentionSuggestionsCacheKey)\n );\n } else if (\n !lastInvokedAt.current ||\n Math.abs(performance.now() - lastInvokedAt.current) >\n MENTION_SUGGESTIONS_DEBOUNCE\n ) {\n // If on the debounce's leading edge (either because it's the first invokation or enough\n // time has passed since the last debounce), get mention suggestions immediately.\n void getMentionSuggestions();\n } else {\n // Otherwise, wait for the debounce delay.\n debounceTimeout = window.setTimeout(() => {\n void getMentionSuggestions();\n }, MENTION_SUGGESTIONS_DEBOUNCE);\n }\n\n return () => {\n isCanceled = true;\n window.clearTimeout(debounceTimeout);\n };\n }, [search, roomId, resolveMentionSuggestions, mentionSuggestionsCache]);\n\n return mentionSuggestions;\n}\n","import type { SyncSource } from \"@liveblocks/core\";\nimport { kInternal } from \"@liveblocks/core\";\nimport { useEffect, useState } from \"react\";\n\nimport { useClient } from \"./liveblocks\";\n\n/**\n * @private For internal use only. Do not rely on this hook.\n */\nexport function useSyncSource(): SyncSource | undefined {\n const client = useClient();\n const createSyncSource = client[kInternal].createSyncSource;\n const [syncSource, setSyncSource] = useState<SyncSource | undefined>();\n\n useEffect(() => {\n // Create new sync source on mount\n const newSyncSource = createSyncSource();\n setSyncSource(newSyncSource);\n return () => newSyncSource.destroy();\n }, [createSyncSource]);\n\n return syncSource;\n}\n"]}
package/dist/_private.mjs CHANGED
@@ -25,7 +25,7 @@ import {
25
25
  useSignal,
26
26
  useSyncExternalStoreWithSelector,
27
27
  useYjsProvider
28
- } from "./chunk-EEYUKRIA.mjs";
28
+ } from "./chunk-FQKGWA7O.mjs";
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 = "2.15.2";
3
+ var PKG_VERSION = "2.16.0-toolbars2";
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-Z5VZOX7K.mjs.map
23
+ //# sourceMappingURL=chunk-3SVPWXCC.mjs.map
@@ -270,16 +270,8 @@ function shallow2(a, b) {
270
270
  // src/ThreadDB.ts
271
271
  import { batch, MutableSignal, SortedList } from "@liveblocks/core";
272
272
 
273
- // src/lib/guards.ts
274
- import { isPlainObject as isPlainObject2 } from "@liveblocks/core";
275
- function isStartsWith(blob) {
276
- return isPlainObject2(blob) && isString(blob.startsWith);
277
- }
278
- function isString(value) {
279
- return typeof value === "string";
280
- }
281
-
282
273
  // src/lib/querying.ts
274
+ import { isStartsWithOperator } from "@liveblocks/core";
283
275
  function makeThreadsFilter(query) {
284
276
  return (thread) => matchesQuery(thread, query) && matchesMetadata(thread, query);
285
277
  }
@@ -299,8 +291,8 @@ function matchesMetadata(thread, q) {
299
291
  );
300
292
  }
301
293
  function matchesOperator(value, op) {
302
- if (isStartsWith(op)) {
303
- return isString(value) && value.startsWith(op.startsWith);
294
+ if (isStartsWithOperator(op)) {
295
+ return typeof value === "string" && value.startsWith(op.startsWith);
304
296
  } else {
305
297
  return value === op;
306
298
  }
@@ -928,7 +920,8 @@ var UmbrellaStore = class {
928
920
  );
929
921
  const loadingNotifications = {
930
922
  signal: DerivedSignal.from(() => {
931
- const result = this.#notificationsPaginationState.get();
923
+ const resource = this.#notificationsPaginationState;
924
+ const result = resource.get();
932
925
  if (result.isLoading || result.error) {
933
926
  return result;
934
927
  }
@@ -994,12 +987,10 @@ var UmbrellaStore = class {
994
987
  if (result.isLoading || result.error) {
995
988
  return result;
996
989
  } else {
997
- return {
998
- isLoading: false,
999
- versions: Object.values(
1000
- this.historyVersions.signal.get()[roomId] ?? {}
1001
- )
1002
- };
990
+ return ASYNC_OK(
991
+ "versions",
992
+ Object.values(this.historyVersions.signal.get()[roomId] ?? {})
993
+ );
1003
994
  }
1004
995
  }, shallow3);
1005
996
  return { signal, waitUntilLoaded: resource.waitUntilLoaded };
@@ -2119,11 +2110,7 @@ function LiveblocksProvider(props) {
2119
2110
  function createLiveblocksContext(client) {
2120
2111
  return getOrCreateContextBundle(client);
2121
2112
  }
2122
- function useUserThreads_experimental(options = {
2123
- query: {
2124
- metadata: {}
2125
- }
2126
- }) {
2113
+ function useUserThreads_experimental(options = {}) {
2127
2114
  const client = useClient();
2128
2115
  const { store, userThreadsPoller: poller } = getLiveblocksExtrasForClient(client);
2129
2116
  const queryKey = makeUserThreadsQueryKey(options.query);
@@ -2149,11 +2136,7 @@ function useUserThreads_experimental(options = {
2149
2136
  store.outputs.loadingUserThreads.getOrCreate(queryKey).signal
2150
2137
  );
2151
2138
  }
2152
- function useUserThreadsSuspense_experimental(options = {
2153
- query: {
2154
- metadata: {}
2155
- }
2156
- }) {
2139
+ function useUserThreadsSuspense_experimental(options = {}) {
2157
2140
  const client = useClient();
2158
2141
  const { store } = getLiveblocksExtrasForClient(client);
2159
2142
  const queryKey = makeUserThreadsQueryKey(options.query);
@@ -2694,7 +2677,7 @@ function RoomProviderInner(props) {
2694
2677
  "RoomProvider id property is required. For more information: https://liveblocks.io/docs/errors/liveblocks-react/RoomProvider-id-property-is-required"
2695
2678
  );
2696
2679
  }
2697
- if (!isString(roomId)) {
2680
+ if (typeof roomId !== "string") {
2698
2681
  throw new Error("RoomProvider id property should be a string.");
2699
2682
  }
2700
2683
  const majorReactVersion = parseInt(reactVersion) || 1;
@@ -4057,4 +4040,4 @@ export {
4057
4040
  _useStorageRoot,
4058
4041
  _useUpdateMyPresence
4059
4042
  };
4060
- //# sourceMappingURL=chunk-EEYUKRIA.mjs.map
4043
+ //# sourceMappingURL=chunk-FQKGWA7O.mjs.map