@liveblocks/react 3.13.0-ack1 → 3.13.0-metadata2

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 _chunkWH55MUS4cjs = require('./chunk-WH55MUS4.cjs');
28
+ var _chunkLLFEY367cjs = require('./chunk-LLFEY367.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 = _chunkWH55MUS4cjs.useClient.call(void 0, );
53
+ const client = _chunkLLFEY367cjs.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 _chunkWH55MUS4cjs.useSyncExternalStoreWithSelector.call(void 0,
62
+ return _chunkLLFEY367cjs.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 = _chunkWH55MUS4cjs.useResolveMentionSuggestions.call(void 0, );
84
- const mentionSuggestionsCache = _chunkWH55MUS4cjs.useMentionSuggestionsCache.call(void 0, );
83
+ const resolveMentionSuggestions = _chunkLLFEY367cjs.useResolveMentionSuggestions.call(void 0, );
84
+ const mentionSuggestionsCache = _chunkLLFEY367cjs.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 = _chunkWH55MUS4cjs.useClient.call(void 0, );
139
+ const client = _chunkLLFEY367cjs.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 = _chunkWH55MUS4cjs.getUmbrellaStoreForClient; exports.useAddRoomCommentReaction = _chunkWH55MUS4cjs.useAddRoomCommentReaction; exports.useClientOrNull = _chunkWH55MUS4cjs.useClientOrNull; exports.useCreateRoomComment = _chunkWH55MUS4cjs.useCreateRoomComment; exports.useCreateRoomThread = _chunkWH55MUS4cjs.useCreateRoomThread; exports.useCreateTextMention = _chunkWH55MUS4cjs.useCreateTextMention; exports.useDeleteRoomComment = _chunkWH55MUS4cjs.useDeleteRoomComment; exports.useDeleteRoomThread = _chunkWH55MUS4cjs.useDeleteRoomThread; exports.useDeleteTextMention = _chunkWH55MUS4cjs.useDeleteTextMention; exports.useEditRoomComment = _chunkWH55MUS4cjs.useEditRoomComment; exports.useEditRoomThreadMetadata = _chunkWH55MUS4cjs.useEditRoomThreadMetadata; exports.useGroup = useGroup; exports.useLatest = _chunkWH55MUS4cjs.useLatest; exports.useLayoutEffect = useLayoutEffect; exports.useMarkRoomThreadAsRead = _chunkWH55MUS4cjs.useMarkRoomThreadAsRead; exports.useMarkRoomThreadAsResolved = _chunkWH55MUS4cjs.useMarkRoomThreadAsResolved; exports.useMarkRoomThreadAsUnresolved = _chunkWH55MUS4cjs.useMarkRoomThreadAsUnresolved; exports.useMentionSuggestions = useMentionSuggestions; exports.useMentionSuggestionsCache = _chunkWH55MUS4cjs.useMentionSuggestionsCache; exports.useRemoveRoomCommentReaction = _chunkWH55MUS4cjs.useRemoveRoomCommentReaction; exports.useReportTextEditor = _chunkWH55MUS4cjs.useReportTextEditor; exports.useResolveMentionSuggestions = _chunkWH55MUS4cjs.useResolveMentionSuggestions; exports.useRoomAttachmentUrl = _chunkWH55MUS4cjs.useRoomAttachmentUrl; exports.useRoomPermissions = _chunkWH55MUS4cjs.useRoomPermissions; exports.useRoomThreadSubscription = _chunkWH55MUS4cjs.useRoomThreadSubscription; exports.useSignal = _chunkWH55MUS4cjs.useSignal; exports.useSyncExternalStoreWithSelector = _chunkWH55MUS4cjs.useSyncExternalStoreWithSelector; exports.useSyncSource = useSyncSource; exports.useYjsProvider = _chunkWH55MUS4cjs.useYjsProvider;
179
+ exports.getUmbrellaStoreForClient = _chunkLLFEY367cjs.getUmbrellaStoreForClient; exports.useAddRoomCommentReaction = _chunkLLFEY367cjs.useAddRoomCommentReaction; exports.useClientOrNull = _chunkLLFEY367cjs.useClientOrNull; exports.useCreateRoomComment = _chunkLLFEY367cjs.useCreateRoomComment; exports.useCreateRoomThread = _chunkLLFEY367cjs.useCreateRoomThread; exports.useCreateTextMention = _chunkLLFEY367cjs.useCreateTextMention; exports.useDeleteRoomComment = _chunkLLFEY367cjs.useDeleteRoomComment; exports.useDeleteRoomThread = _chunkLLFEY367cjs.useDeleteRoomThread; exports.useDeleteTextMention = _chunkLLFEY367cjs.useDeleteTextMention; exports.useEditRoomComment = _chunkLLFEY367cjs.useEditRoomComment; exports.useEditRoomThreadMetadata = _chunkLLFEY367cjs.useEditRoomThreadMetadata; exports.useGroup = useGroup; exports.useLatest = _chunkLLFEY367cjs.useLatest; exports.useLayoutEffect = useLayoutEffect; exports.useMarkRoomThreadAsRead = _chunkLLFEY367cjs.useMarkRoomThreadAsRead; exports.useMarkRoomThreadAsResolved = _chunkLLFEY367cjs.useMarkRoomThreadAsResolved; exports.useMarkRoomThreadAsUnresolved = _chunkLLFEY367cjs.useMarkRoomThreadAsUnresolved; exports.useMentionSuggestions = useMentionSuggestions; exports.useMentionSuggestionsCache = _chunkLLFEY367cjs.useMentionSuggestionsCache; exports.useRemoveRoomCommentReaction = _chunkLLFEY367cjs.useRemoveRoomCommentReaction; exports.useReportTextEditor = _chunkLLFEY367cjs.useReportTextEditor; exports.useResolveMentionSuggestions = _chunkLLFEY367cjs.useResolveMentionSuggestions; exports.useRoomAttachmentUrl = _chunkLLFEY367cjs.useRoomAttachmentUrl; exports.useRoomPermissions = _chunkLLFEY367cjs.useRoomPermissions; exports.useRoomThreadSubscription = _chunkLLFEY367cjs.useRoomThreadSubscription; exports.useSignal = _chunkLLFEY367cjs.useSignal; exports.useSyncExternalStoreWithSelector = _chunkLLFEY367cjs.useSyncExternalStoreWithSelector; exports.useSyncSource = useSyncSource; exports.useYjsProvider = _chunkLLFEY367cjs.useYjsProvider;
180
180
  //# sourceMappingURL=_private.cjs.map
@@ -1,5 +1,5 @@
1
- import { G as GroupAsyncResult } from './room-Bff8edwh.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-Bff8edwh.cjs';
1
+ import { G as GroupAsyncResult } from './room-BfuWPyZs.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-BfuWPyZs.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-Bff8edwh.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-Bff8edwh.js';
1
+ import { G as GroupAsyncResult } from './room-BfuWPyZs.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-BfuWPyZs.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-ZDBJCDFH.js";
28
+ } from "./chunk-W4NENJZ5.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.13.0-ack1";
3
+ var PKG_VERSION = "3.13.0-metadata2";
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-ONFO7EAV.js.map
23
+ //# sourceMappingURL=chunk-DJEC2TEZ.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.13.0-ack1";
3
+ var PKG_VERSION = "3.13.0-metadata2";
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-U3DNN4V2.cjs.map
23
+ //# sourceMappingURL=chunk-EF7B6QS4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/liveblocks/liveblocks/packages/liveblocks-react/dist/chunk-EF7B6QS4.cjs","../src/version.ts","../src/ClientSideSuspense.tsx"],"names":[],"mappings":"AAAA;ACGO,IAAM,SAAA,EAAW,mBAAA;AACjB,IAAM,YAAA,EAAiD,kBAAA;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-EF7B6QS4.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"]}
@@ -330,7 +330,7 @@ function find(it, predicate) {
330
330
 
331
331
 
332
332
  function makeThreadsFilter(query, subscriptions) {
333
- return (thread) => matchesThreadsQuery(thread, query, subscriptions) && matchesMetadata(thread, query);
333
+ return (thread) => matchesThreadsQuery(thread, query, subscriptions) && matchesThreadMetadata(thread, query);
334
334
  }
335
335
  function matchesThreadsQuery(thread, q, subscriptions) {
336
336
  let subscription = void 0;
@@ -339,7 +339,7 @@ function matchesThreadsQuery(thread, q, subscriptions) {
339
339
  }
340
340
  return (q.resolved === void 0 || thread.resolved === q.resolved) && (q.subscribed === void 0 || q.subscribed === true && subscription !== void 0 || q.subscribed === false && subscription === void 0);
341
341
  }
342
- function matchesMetadata(thread, q) {
342
+ function matchesThreadMetadata(thread, q) {
343
343
  const metadata = thread.metadata;
344
344
  return q.metadata === void 0 || Object.entries(q.metadata).every(
345
345
  ([key, op]) => (
@@ -1519,6 +1519,26 @@ var UmbrellaStore = class {
1519
1519
  (thread) => applyUpsertComment(thread, editedComment)
1520
1520
  );
1521
1521
  }
1522
+ editCommentMetadata(threadId, commentId, optimisticId, updatedMetadata, updatedAt) {
1523
+ return this.#updateThread(
1524
+ threadId,
1525
+ optimisticId,
1526
+ (thread) => {
1527
+ const comment = thread.comments.find((c) => c.id === commentId);
1528
+ if (comment === void 0) {
1529
+ return thread;
1530
+ }
1531
+ return {
1532
+ ...thread,
1533
+ updatedAt,
1534
+ comments: thread.comments.map(
1535
+ (c) => c.id === commentId ? { ...c, metadata: updatedMetadata } : c
1536
+ )
1537
+ };
1538
+ },
1539
+ updatedAt
1540
+ );
1541
+ }
1522
1542
  deleteComment(threadId, optimisticId, commentId, deletedAt) {
1523
1543
  return this.#updateThread(
1524
1544
  threadId,
@@ -1724,6 +1744,27 @@ function applyOptimisticUpdates_forThreadifications(baseThreadsDB, notifications
1724
1744
  threadsDB.upsert(applyUpsertComment(thread, optimisticUpdate.comment));
1725
1745
  break;
1726
1746
  }
1747
+ case "edit-comment-metadata": {
1748
+ const thread = threadsDB.get(optimisticUpdate.threadId);
1749
+ if (thread === void 0) break;
1750
+ if (thread.updatedAt > optimisticUpdate.updatedAt) {
1751
+ break;
1752
+ }
1753
+ const existingComment = thread.comments.find(
1754
+ (c) => c.id === optimisticUpdate.commentId
1755
+ );
1756
+ if (existingComment === void 0) break;
1757
+ threadsDB.upsert(
1758
+ applyUpsertComment(thread, {
1759
+ ...existingComment,
1760
+ metadata: {
1761
+ ...existingComment.metadata,
1762
+ ...optimisticUpdate.metadata
1763
+ }
1764
+ })
1765
+ );
1766
+ break;
1767
+ }
1727
1768
  case "delete-comment": {
1728
1769
  const thread = threadsDB.get(optimisticUpdate.threadId);
1729
1770
  if (thread === void 0) break;
@@ -1930,7 +1971,20 @@ function applyUpsertComment(thread, comment) {
1930
1971
  return updatedThread;
1931
1972
  }
1932
1973
  if (existingComment.deletedAt !== void 0) {
1933
- return thread;
1974
+ const updatedComment = {
1975
+ ...existingComment,
1976
+ metadata: {
1977
+ ...existingComment.metadata,
1978
+ ...comment.metadata
1979
+ }
1980
+ };
1981
+ const updatedComments = thread.comments.map(
1982
+ (c) => c.id === comment.id ? updatedComment : c
1983
+ );
1984
+ return {
1985
+ ...thread,
1986
+ comments: updatedComments
1987
+ };
1934
1988
  }
1935
1989
  if (existingComment.editedAt === void 0 || comment.editedAt === void 0 || existingComment.editedAt <= comment.editedAt) {
1936
1990
  const updatedComments = thread.comments.map(
@@ -3521,9 +3575,11 @@ function makeRoomContextBundle(client) {
3521
3575
  useOthersMapped,
3522
3576
  useOthersConnectionIds,
3523
3577
  useOther,
3578
+ // prettier-ignore
3524
3579
  useMutation,
3525
3580
  useThreads,
3526
3581
  useSearchComments,
3582
+ // prettier-ignore
3527
3583
  useCreateThread,
3528
3584
  useDeleteThread,
3529
3585
  useEditThreadMetadata,
@@ -3533,6 +3589,7 @@ function makeRoomContextBundle(client) {
3533
3589
  useUnsubscribeFromThread,
3534
3590
  useCreateComment,
3535
3591
  useEditComment,
3592
+ useEditCommentMetadata,
3536
3593
  useDeleteComment,
3537
3594
  useAddReaction,
3538
3595
  useRemoveReaction,
@@ -3567,8 +3624,10 @@ function makeRoomContextBundle(client) {
3567
3624
  useOthersMapped: useOthersMappedSuspense,
3568
3625
  useOthersConnectionIds: useOthersConnectionIdsSuspense,
3569
3626
  useOther: useOtherSuspense,
3627
+ // prettier-ignore
3570
3628
  useMutation,
3571
3629
  useThreads: useThreadsSuspense,
3630
+ // prettier-ignore
3572
3631
  useCreateThread,
3573
3632
  useDeleteThread,
3574
3633
  useEditThreadMetadata,
@@ -3578,6 +3637,7 @@ function makeRoomContextBundle(client) {
3578
3637
  useUnsubscribeFromThread,
3579
3638
  useCreateComment,
3580
3639
  useEditComment,
3640
+ useEditCommentMetadata,
3581
3641
  useDeleteComment,
3582
3642
  useAddReaction,
3583
3643
  useRemoveReaction,
@@ -3646,7 +3706,8 @@ function RoomProviderInner(props) {
3646
3706
  {
3647
3707
  initialPresence: props.initialPresence,
3648
3708
  initialStorage: props.initialStorage,
3649
- autoConnect: _nullishCoalesce(props.autoConnect, () => ( typeof window !== "undefined"))
3709
+ autoConnect: _nullishCoalesce(props.autoConnect, () => ( typeof window !== "undefined")),
3710
+ engine: props.engine
3650
3711
  },
3651
3712
  roomId
3652
3713
  );
@@ -3682,6 +3743,7 @@ function RoomProviderInner(props) {
3682
3743
  case _core.ServerMsgCode.COMMENT_REACTION_ADDED:
3683
3744
  case _core.ServerMsgCode.COMMENT_REACTION_REMOVED:
3684
3745
  case _core.ServerMsgCode.COMMENT_DELETED:
3746
+ case _core.ServerMsgCode.COMMENT_METADATA_UPDATED:
3685
3747
  if (!existingThread) break;
3686
3748
  store.updateThreadifications(
3687
3749
  [thread],
@@ -4089,6 +4151,7 @@ function useCreateRoomThread(roomId) {
4089
4151
  (options) => {
4090
4152
  const body = options.body;
4091
4153
  const metadata = _nullishCoalesce(options.metadata, () => ( {}));
4154
+ const commentMetadata = _nullishCoalesce(options.commentMetadata, () => ( {}));
4092
4155
  const attachments = options.attachments;
4093
4156
  const threadId = _core.createThreadId.call(void 0, );
4094
4157
  const commentId = _core.createCommentId.call(void 0, );
@@ -4102,7 +4165,8 @@ function useCreateRoomThread(roomId) {
4102
4165
  userId: getCurrentUserId(client),
4103
4166
  body,
4104
4167
  reactions: [],
4105
- attachments: _nullishCoalesce(attachments, () => ( []))
4168
+ attachments: _nullishCoalesce(attachments, () => ( [])),
4169
+ metadata: commentMetadata
4106
4170
  };
4107
4171
  const newThread = {
4108
4172
  id: threadId,
@@ -4127,6 +4191,7 @@ function useCreateRoomThread(roomId) {
4127
4191
  commentId,
4128
4192
  body,
4129
4193
  metadata,
4194
+ commentMetadata,
4130
4195
  attachmentIds
4131
4196
  }).then(
4132
4197
  (thread) => {
@@ -4140,7 +4205,8 @@ function useCreateRoomThread(roomId) {
4140
4205
  threadId,
4141
4206
  commentId,
4142
4207
  body,
4143
- metadata
4208
+ metadata,
4209
+ commentMetadata
4144
4210
  },
4145
4211
  err
4146
4212
  )
@@ -4223,13 +4289,65 @@ function useEditRoomThreadMetadata(roomId) {
4223
4289
  [client, roomId]
4224
4290
  );
4225
4291
  }
4292
+ function useEditCommentMetadata() {
4293
+ return useEditRoomCommentMetadata(useRoom().id);
4294
+ }
4295
+ function useEditRoomCommentMetadata(roomId) {
4296
+ const client = useClient();
4297
+ return _react.useCallback.call(void 0,
4298
+ (options) => {
4299
+ if (!options.metadata) {
4300
+ return;
4301
+ }
4302
+ const threadId = options.threadId;
4303
+ const commentId = options.commentId;
4304
+ const metadata = options.metadata;
4305
+ const updatedAt = /* @__PURE__ */ new Date();
4306
+ const { store, onMutationFailure } = getRoomExtrasForClient(client);
4307
+ const optimisticId = store.optimisticUpdates.add({
4308
+ type: "edit-comment-metadata",
4309
+ threadId,
4310
+ commentId,
4311
+ metadata,
4312
+ updatedAt
4313
+ });
4314
+ client[_core.kInternal].httpClient.editCommentMetadata({ roomId, threadId, commentId, metadata }).then(
4315
+ (updatedMetadata) => (
4316
+ // Replace the optimistic update by the real thing
4317
+ store.editCommentMetadata(
4318
+ threadId,
4319
+ commentId,
4320
+ optimisticId,
4321
+ updatedMetadata,
4322
+ updatedAt
4323
+ )
4324
+ ),
4325
+ (err) => onMutationFailure(
4326
+ optimisticId,
4327
+ {
4328
+ type: "EDIT_COMMENT_METADATA_ERROR",
4329
+ roomId,
4330
+ threadId,
4331
+ commentId,
4332
+ metadata
4333
+ },
4334
+ err
4335
+ )
4336
+ );
4337
+ },
4338
+ [client, roomId]
4339
+ );
4340
+ }
4226
4341
  function useCreateComment() {
4227
4342
  return useCreateRoomComment(useRoom().id);
4228
4343
  }
4229
4344
  function useCreateRoomComment(roomId) {
4230
4345
  const client = useClient();
4231
4346
  return _react.useCallback.call(void 0,
4232
- ({ threadId, body, attachments }) => {
4347
+ (options) => {
4348
+ const { threadId, body } = options;
4349
+ const metadata = _nullishCoalesce(options.metadata, () => ( {}));
4350
+ const attachments = _nullishCoalesce(options.attachments, () => ( []));
4233
4351
  const commentId = _core.createCommentId.call(void 0, );
4234
4352
  const createdAt = /* @__PURE__ */ new Date();
4235
4353
  const comment = {
@@ -4241,7 +4359,8 @@ function useCreateRoomComment(roomId) {
4241
4359
  userId: getCurrentUserId(client),
4242
4360
  body,
4243
4361
  reactions: [],
4244
- attachments: _nullishCoalesce(attachments, () => ( []))
4362
+ attachments: _nullishCoalesce(attachments, () => ( [])),
4363
+ metadata
4245
4364
  };
4246
4365
  const { store, onMutationFailure } = getRoomExtrasForClient(client);
4247
4366
  const optimisticId = store.optimisticUpdates.add({
@@ -4249,7 +4368,14 @@ function useCreateRoomComment(roomId) {
4249
4368
  comment
4250
4369
  });
4251
4370
  const attachmentIds = _optionalChain([attachments, 'optionalAccess', _57 => _57.map, 'call', _58 => _58((attachment) => attachment.id)]);
4252
- client[_core.kInternal].httpClient.createComment({ roomId, threadId, commentId, body, attachmentIds }).then(
4371
+ client[_core.kInternal].httpClient.createComment({
4372
+ roomId,
4373
+ threadId,
4374
+ commentId,
4375
+ body,
4376
+ metadata,
4377
+ attachmentIds
4378
+ }).then(
4253
4379
  (newComment) => {
4254
4380
  store.createComment(newComment, optimisticId);
4255
4381
  },
@@ -4260,7 +4386,8 @@ function useCreateRoomComment(roomId) {
4260
4386
  roomId,
4261
4387
  threadId,
4262
4388
  commentId,
4263
- body
4389
+ body,
4390
+ metadata
4264
4391
  },
4265
4392
  err
4266
4393
  )
@@ -4276,7 +4403,13 @@ function useEditComment() {
4276
4403
  function useEditRoomComment(roomId) {
4277
4404
  const client = useClient();
4278
4405
  return _react.useCallback.call(void 0,
4279
- ({ threadId, commentId, body, attachments }) => {
4406
+ ({
4407
+ threadId,
4408
+ commentId,
4409
+ body,
4410
+ attachments,
4411
+ metadata
4412
+ }) => {
4280
4413
  const editedAt = /* @__PURE__ */ new Date();
4281
4414
  const { store, onMutationFailure } = getRoomExtrasForClient(client);
4282
4415
  const existing = store.outputs.threads.get().getEvenIfDeleted(threadId);
@@ -4295,23 +4428,42 @@ function useEditRoomComment(roomId) {
4295
4428
  );
4296
4429
  return;
4297
4430
  }
4431
+ const updatedMetadata = metadata !== void 0 ? {
4432
+ ...comment.metadata,
4433
+ ...metadata
4434
+ } : comment.metadata;
4298
4435
  const optimisticId = store.optimisticUpdates.add({
4299
4436
  type: "edit-comment",
4300
4437
  comment: {
4301
4438
  ...comment,
4302
4439
  editedAt,
4303
4440
  body,
4304
- attachments: _nullishCoalesce(attachments, () => ( []))
4441
+ attachments: _nullishCoalesce(attachments, () => ( [])),
4442
+ metadata: updatedMetadata
4305
4443
  }
4306
4444
  });
4307
4445
  const attachmentIds = _optionalChain([attachments, 'optionalAccess', _59 => _59.map, 'call', _60 => _60((attachment) => attachment.id)]);
4308
- client[_core.kInternal].httpClient.editComment({ roomId, threadId, commentId, body, attachmentIds }).then(
4446
+ client[_core.kInternal].httpClient.editComment({
4447
+ roomId,
4448
+ threadId,
4449
+ commentId,
4450
+ body,
4451
+ attachmentIds,
4452
+ metadata
4453
+ }).then(
4309
4454
  (editedComment) => {
4310
4455
  store.editComment(threadId, optimisticId, editedComment);
4311
4456
  },
4312
4457
  (err) => onMutationFailure(
4313
4458
  optimisticId,
4314
- { type: "EDIT_COMMENT_ERROR", roomId, threadId, commentId, body },
4459
+ {
4460
+ type: "EDIT_COMMENT_ERROR",
4461
+ roomId,
4462
+ threadId,
4463
+ commentId,
4464
+ body,
4465
+ metadata: updatedMetadata
4466
+ },
4315
4467
  err
4316
4468
  )
4317
4469
  );
@@ -4936,6 +5088,9 @@ var _useMutation = useMutation;
4936
5088
  var _useCreateThread = useCreateThread;
4937
5089
  var _useDeleteThread = useDeleteThread;
4938
5090
  var _useEditThreadMetadata = useEditThreadMetadata;
5091
+ var _useCreateComment = useCreateComment;
5092
+ var _useEditComment = useEditComment;
5093
+ var _useEditCommentMetadata = useEditCommentMetadata;
4939
5094
  var _useEventListener = useEventListener;
4940
5095
  var _useMyPresence = useMyPresence;
4941
5096
  var _useOthersMapped = useOthersMapped;
@@ -5088,5 +5243,6 @@ var _useUpdateMyPresence = useUpdateMyPresence;
5088
5243
 
5089
5244
 
5090
5245
 
5091
- 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.useAiChatStatus = useAiChatStatus; 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._useUrlMetadata = _useUrlMetadata; exports._useUrlMetadataSuspense = _useUrlMetadataSuspense; 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._useSearchComments = _useSearchComments; 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;
5092
- //# sourceMappingURL=chunk-WH55MUS4.cjs.map
5246
+
5247
+ 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.useAiChatStatus = useAiChatStatus; 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._useUrlMetadata = _useUrlMetadata; exports._useUrlMetadataSuspense = _useUrlMetadataSuspense; 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.useCreateRoomComment = useCreateRoomComment; 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._useCreateComment = _useCreateComment; exports._useEditComment = _useEditComment; exports._useEditCommentMetadata = _useEditCommentMetadata; exports._useEventListener = _useEventListener; exports._useMyPresence = _useMyPresence; exports._useOthersMapped = _useOthersMapped; exports._useOthersMappedSuspense = _useOthersMappedSuspense; exports._useThreads = _useThreads; exports._useSearchComments = _useSearchComments; 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;
5248
+ //# sourceMappingURL=chunk-LLFEY367.cjs.map