@cellarnode/ui 0.172.0 → 0.173.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.
Files changed (60) hide show
  1. package/dist/chat/chat-api.d.ts.map +1 -1
  2. package/dist/chat/chat-api.js +12 -2
  3. package/dist/chat/chat-api.js.map +1 -1
  4. package/dist/chat/chat-composer.d.ts +67 -0
  5. package/dist/chat/chat-composer.d.ts.map +1 -0
  6. package/dist/chat/chat-composer.js +482 -0
  7. package/dist/chat/chat-composer.js.map +1 -0
  8. package/dist/chat/chat-labels.d.ts +5 -0
  9. package/dist/chat/chat-labels.d.ts.map +1 -0
  10. package/dist/chat/chat-labels.js +8 -0
  11. package/dist/chat/chat-labels.js.map +1 -0
  12. package/dist/chat/chat-surface.d.ts +127 -26
  13. package/dist/chat/chat-surface.d.ts.map +1 -1
  14. package/dist/chat/chat-surface.js +103 -45
  15. package/dist/chat/chat-surface.js.map +1 -1
  16. package/dist/chat/index.d.ts +2 -2
  17. package/dist/chat/index.d.ts.map +1 -1
  18. package/dist/chat/index.js.map +1 -1
  19. package/dist/chat/messenger-screen/index.d.ts +1 -1
  20. package/dist/chat/messenger-screen/index.d.ts.map +1 -1
  21. package/dist/chat/messenger-screen/message-adapters.d.ts +4 -2
  22. package/dist/chat/messenger-screen/message-adapters.d.ts.map +1 -1
  23. package/dist/chat/messenger-screen/message-adapters.js +52 -6
  24. package/dist/chat/messenger-screen/message-adapters.js.map +1 -1
  25. package/dist/chat/messenger-screen/messenger-screen.d.ts.map +1 -1
  26. package/dist/chat/messenger-screen/messenger-screen.js +2 -2
  27. package/dist/chat/messenger-screen/messenger-screen.js.map +1 -1
  28. package/dist/chat/messenger-screen/room-panel.d.ts +9 -1
  29. package/dist/chat/messenger-screen/room-panel.d.ts.map +1 -1
  30. package/dist/chat/messenger-screen/room-panel.js +114 -19
  31. package/dist/chat/messenger-screen/room-panel.js.map +1 -1
  32. package/dist/chat/messenger-screen/types.d.ts +49 -2
  33. package/dist/chat/messenger-screen/types.d.ts.map +1 -1
  34. package/dist/chat/types.d.ts +33 -5
  35. package/dist/chat/types.d.ts.map +1 -1
  36. package/dist/chat-ably/use-chat-messages.d.ts +33 -6
  37. package/dist/chat-ably/use-chat-messages.d.ts.map +1 -1
  38. package/dist/chat-ably/use-chat-messages.js +116 -17
  39. package/dist/chat-ably/use-chat-messages.js.map +1 -1
  40. package/dist/components/importer-picker-modal.d.ts +5 -0
  41. package/dist/components/importer-picker-modal.d.ts.map +1 -1
  42. package/dist/components/importer-picker-modal.js +3 -2
  43. package/dist/components/importer-picker-modal.js.map +1 -1
  44. package/dist/product-editor/index.d.ts +2 -0
  45. package/dist/product-editor/index.d.ts.map +1 -1
  46. package/dist/product-editor/index.js +1 -0
  47. package/dist/product-editor/index.js.map +1 -1
  48. package/dist/product-editor/product-readiness-approval-dialog.d.ts +23 -0
  49. package/dist/product-editor/product-readiness-approval-dialog.d.ts.map +1 -0
  50. package/dist/product-editor/product-readiness-approval-dialog.js +101 -0
  51. package/dist/product-editor/product-readiness-approval-dialog.js.map +1 -0
  52. package/dist/product-editor/tabs/product-status-tab.d.ts +2 -3
  53. package/dist/product-editor/tabs/product-status-tab.d.ts.map +1 -1
  54. package/dist/product-editor/tabs/product-status-tab.js +34 -40
  55. package/dist/product-editor/tabs/product-status-tab.js.map +1 -1
  56. package/dist/realtime/journey-offers/schemas.d.ts +21 -6
  57. package/dist/realtime/journey-offers/schemas.d.ts.map +1 -1
  58. package/dist/realtime/journey-offers/schemas.js +16 -10
  59. package/dist/realtime/journey-offers/schemas.js.map +1 -1
  60. package/package.json +1 -1
@@ -5,6 +5,7 @@ import type { SendMessageRest, HistoryFetch } from "../../chat-ably/use-chat-mes
5
5
  import type { ConnectionBannerAriaLabels } from "../connection-banner.js";
6
6
  import type { MessengerEmptyStateLabels } from "../messenger-empty-state.js";
7
7
  import type { PresenceStatus, TranslationFn } from "../types.js";
8
+ import type { ChatAttachmentLabels, ChatAttachmentUploadAdapter, ChatSurfaceAttachment } from "../chat-surface.js";
8
9
  /**
9
10
  * One chat-room roster row, normalized across both dashboards. This is
10
11
  * the union of producer-dashboard's `ChatRoomRow` and
@@ -59,6 +60,23 @@ export type MessengerMarkRoomRead = (roomId: string) => Promise<void>;
59
60
  * pre-CEL-919 behavior).
60
61
  */
61
62
  export type MessengerOrgMemberSource = () => Promise<MessengerOrgMember[]>;
63
+ /** Offer attachment row projected into chat by its canonical message UUID. */
64
+ export interface MessengerChatAttachment extends ChatSurfaceAttachment {
65
+ source: string;
66
+ linkedMessageId: string | null;
67
+ }
68
+ /** Fetch the selected offer's current attachment rows. */
69
+ export type MessengerAttachmentSource = (offerId: string) => Promise<readonly MessengerChatAttachment[]>;
70
+ export interface MessengerAttachmentContext {
71
+ roomId: string;
72
+ offerId: string;
73
+ }
74
+ /** Resolve an offer-scoped uploader for the selected room. */
75
+ export type MessengerAttachmentUploadAdapterFactory = (context: MessengerAttachmentContext) => ChatAttachmentUploadAdapter | undefined;
76
+ /** Subscribe to validated `attachment_changed` events for the selected offer. */
77
+ export type MessengerAttachmentChangeSubscription = (context: MessengerAttachmentContext, onAttachmentChanged: (event: {
78
+ attachmentId: string;
79
+ }) => void) => void | (() => void);
62
80
  /** Visible + sr-only copy overrides for the connection banner block. */
63
81
  export interface MessengerConnectionLabels {
64
82
  reconnecting?: string;
@@ -88,6 +106,16 @@ export interface MessengerScreenLabels {
88
106
  * Defaults to `"Live updates paused. Messages still send."`.
89
107
  */
90
108
  liveUpdatesPaused?: string;
109
+ reply?: string;
110
+ replyAriaLabel?: string;
111
+ replyingTo?: string;
112
+ cancelReply?: string;
113
+ attach?: string;
114
+ openAttachment?: string;
115
+ unknownAuthor?: string;
116
+ messageUnavailable?: string;
117
+ replyTargetMissing?: string;
118
+ attachment?: Partial<ChatAttachmentLabels>;
91
119
  };
92
120
  readOnly?: {
93
121
  roomClosed?: string;
@@ -121,8 +149,15 @@ export interface MessengerScreenLabels {
121
149
  */
122
150
  export interface MessengerLiveState {
123
151
  messages: ChatMessageItem[];
124
- sendMessage: (text: string, metadata?: Record<string, string | number | boolean | null> | null) => Promise<void>;
125
- retryMessage: (v2MessageId: string) => Promise<void>;
152
+ sendMessage: (text: string, metadata?: Record<string, string | number | boolean | null> | null, options?: {
153
+ replyToMessageId?: string;
154
+ v2MessageId?: string;
155
+ }) => Promise<void | {
156
+ messageId: string;
157
+ }>;
158
+ retryMessage: (v2MessageId: string) => Promise<void | {
159
+ messageId: string;
160
+ }>;
126
161
  loadMore: () => Promise<void>;
127
162
  hasMore: boolean;
128
163
  isLoadingHistory: boolean;
@@ -152,6 +187,16 @@ export interface MessengerScreenProps {
152
187
  historyFetch: HistoryFetch;
153
188
  /** Org-members fetch powering teammate attribution. Optional. */
154
189
  orgMemberSource?: MessengerOrgMemberSource;
190
+ /** Offer-scoped attachment projection. Only `source === "chat"` rows render in messages. */
191
+ attachmentSource?: MessengerAttachmentSource;
192
+ /** Offer-scoped upload/link adapter. Omit to keep the composer text-only. */
193
+ getAttachmentUploadAdapter?: MessengerAttachmentUploadAdapterFactory;
194
+ /** Active-room subscription seam for composite `attachment_changed` offer events. */
195
+ subscribeToAttachmentChanges?: MessengerAttachmentChangeSubscription;
196
+ /** Open a delivered attachment through the consumer's signed-download flow. */
197
+ onOpenAttachment?: (attachment: ChatSurfaceAttachment, context: MessengerAttachmentContext) => void | Promise<void>;
198
+ /** Localized bounded content for a file-only message. Receives file count. */
199
+ formatAttachmentOnlyContent?: (fileCount: number) => string;
155
200
  /** V2 userId — equals the Ably clientId. */
156
201
  currentUserId: string;
157
202
  /** Display name forwarded to `<ChatRoom>` + used on own bubbles. */
@@ -215,6 +260,8 @@ export interface MessengerScreenProps {
215
260
  * their caches coherent.
216
261
  */
217
262
  roomsQueryKey?: readonly unknown[];
263
+ /** Defaults to `["offer-attachments", offerId]`. */
264
+ attachmentsQueryKey?: (offerId: string) => readonly unknown[];
218
265
  /**
219
266
  * Fired after each mark-read persist settles. The composite already
220
267
  * invalidates the rooms query; consumers use this to invalidate
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/chat/messenger-screen/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/chat/messenger-screen/types.ts"],"names":[],"mappings":"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"}
@@ -13,17 +13,45 @@ export interface ChatRoom {
13
13
  lastMessageAt?: string | null;
14
14
  createdAt: string;
15
15
  }
16
+ /**
17
+ * CEL-1990 — an immutable snapshot of the message being replied to, taken by
18
+ * the backend at SEND time (migration 0177) rather than joined at read time.
19
+ * The quote therefore keeps rendering after the parent is soft-deleted: the
20
+ * content was already seen by everyone in the room, and losing the quote would
21
+ * silently change what a reply appears to be answering. Product-accepted.
22
+ */
23
+ export interface ChatReplySnapshot {
24
+ messageId: string;
25
+ /** Whitespace-collapsed, capped at 140 chars by the server. */
26
+ preview: string | null;
27
+ senderUserId: string | null;
28
+ /** Nullable: `reply_sender_org_id` is a nullable column (migration 0177). */
29
+ senderOrgId: string | null;
30
+ }
16
31
  export interface ChatMessage {
17
32
  id: string;
18
33
  roomId: string;
19
- senderOrgId: string;
34
+ /** Null for system-authored rows. */
35
+ senderOrgId: string | null;
20
36
  senderUserId?: string | null;
21
37
  content: string;
22
- messageType: "text" | "system";
38
+ messageType: "text" | "system" | "file";
23
39
  metadata?: (Record<string, unknown> & {
24
40
  clientMessageId?: string;
25
41
  }) | null;
26
42
  createdAt: string;
43
+ /** Present only on replies. Absent/null on ordinary messages. */
44
+ replyTo?: ChatReplySnapshot | null;
45
+ }
46
+ /**
47
+ * Extra, optional send parameters. An options bag rather than a fifth
48
+ * positional: `sendMessage` already takes four, this is a published package
49
+ * with live consumers, and the next addition would otherwise need a sixth.
50
+ */
51
+ export interface ChatSendOptions {
52
+ /** Parent message id. Must be a live message in the SAME room — the server
53
+ * answers 422 REPLY_PARENT_INVALID otherwise. */
54
+ replyToMessageId?: string;
27
55
  }
28
56
  export interface CursorPaginatedResponse<T> {
29
57
  data: T[];
@@ -56,13 +84,13 @@ export type ConversationEvent = {
56
84
  id: string;
57
85
  kind: "chat";
58
86
  timestamp: string;
59
- senderOrgId: string;
87
+ senderOrgId: string | null;
60
88
  message: ChatMessage;
61
89
  } | {
62
90
  id: string;
63
91
  kind: "system";
64
92
  timestamp: string;
65
- senderOrgId: string;
93
+ senderOrgId: string | null;
66
94
  message: ChatMessage;
67
95
  } | {
68
96
  id: string;
@@ -75,7 +103,7 @@ export type ConversationEvent = {
75
103
  export type TranslationFn = (key: string, fallback: string, options?: Record<string, unknown>) => string;
76
104
  export interface ChatApiClient {
77
105
  getMessages(roomId: string, cursor?: string): Promise<CursorPaginatedResponse<ChatMessage>>;
78
- sendMessage(roomId: string, content: string, messageType?: "text" | "system", metadata?: Record<string, unknown>): Promise<ChatMessage>;
106
+ sendMessage(roomId: string, content: string, messageType?: "text" | "system" | "file", metadata?: Record<string, unknown>, options?: ChatSendOptions): Promise<ChatMessage>;
79
107
  markRead(roomId: string, messageId: string): Promise<void>;
80
108
  markReadBulk(roomId: string): Promise<{
81
109
  markedRead: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/chat/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/chat/types.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,19 @@ import * as React from "react";
9
9
  * compile-time check is sufficient); callers are trusted to map the V2
10
10
  * response correctly.
11
11
  */
12
+ /**
13
+ * CEL-1990 — send-time snapshot of the message a reply answers. Declared
14
+ * here rather than imported from `../chat/types`: `chat-ably` is its own
15
+ * entrypoint and does not depend on `chat`, the same reason
16
+ * `ServerChatMessage` is local. Both mirror migration 0177's columns.
17
+ */
18
+ export interface ReplySnapshot {
19
+ messageId: string;
20
+ /** Whitespace-collapsed, 140 chars. Server-authoritative once delivered. */
21
+ preview: string | null;
22
+ senderUserId: string | null;
23
+ senderOrgId: string | null;
24
+ }
12
25
  export interface ServerChatMessage {
13
26
  /** V2 `chat_messages.id` UUID. Same value as `v2MessageId`. */
14
27
  id: string;
@@ -26,6 +39,8 @@ export interface ServerChatMessage {
26
39
  createdAt: string;
27
40
  updatedAt: string;
28
41
  deletedAt: string | null;
42
+ /** Present only on replies (CEL-1990). */
43
+ replyTo?: ReplySnapshot | null;
29
44
  }
30
45
  /**
31
46
  * Consumer-provided REST send callback. Lib generates the `v2MessageId`
@@ -41,6 +56,8 @@ export type SendMessageRest = (input: {
41
56
  content: string;
42
57
  v2MessageId: string;
43
58
  metadata?: Record<string, string | number | boolean | null> | null;
59
+ /** CEL-1990 — parent message id; the server takes the snapshot. */
60
+ replyToMessageId?: string;
44
61
  }) => Promise<ServerChatMessage>;
45
62
  /**
46
63
  * Consumer-provided history fetch callback. Cursor-paginated (matches V2's
@@ -83,6 +100,8 @@ export interface OptimisticChatMessage {
83
100
  serial: null;
84
101
  /** Populated on REST failure. */
85
102
  error?: Error;
103
+ /** CEL-1990 — the quote this message answers, else null. */
104
+ replyTo?: ReplySnapshot | null;
86
105
  }
87
106
  /**
88
107
  * Delivered message — either history-fetched, REST-200-reconciled, or
@@ -108,6 +127,8 @@ export interface DeliveredChatMessage {
108
127
  messageType: "text" | "system" | "file";
109
128
  /** Soft-delete marker from the DB. Lib does not filter; consumers decide rendering. */
110
129
  deletedAt: string | null;
130
+ /** CEL-1990 — the quote this message answers, else null. */
131
+ replyTo?: ReplySnapshot | null;
111
132
  }
112
133
  export type ChatMessageItem = OptimisticChatMessage | DeliveredChatMessage;
113
134
  /**
@@ -125,23 +146,29 @@ export interface UseChatMessagesResponse {
125
146
  messages: ChatMessageItem[];
126
147
  /**
127
148
  * Send a message. Generates a `v2MessageId`, inserts an optimistic row,
128
- * fires `sendMessageRest`. Resolves when the REST call returns (success
129
- * or failure — the latter is surfaced via the optimistic row's status,
130
- * not a thrown error here). Returns `void`; consumers read state from
131
- * `messages` to render send/delivered/failed states.
149
+ * fires `sendMessageRest`. Resolves with the canonical database message
150
+ * UUID after REST succeeds. REST failures still mark the optimistic row as
151
+ * failed, then reject so composers can preserve drafts and pending files.
132
152
  *
133
153
  * If no `sendMessageRest` is provided on `<ChatRoom>` (read-only
134
154
  * consumer like admin v2 chat monitoring), this throws synchronously
135
155
  * with a clear error message so misuse is loud.
136
156
  */
137
- sendMessage: (text: string, metadata?: Record<string, string | number | boolean | null> | null) => Promise<void>;
157
+ sendMessage: (text: string, metadata?: Record<string, string | number | boolean | null> | null, options?: {
158
+ replyToMessageId?: string;
159
+ v2MessageId?: string;
160
+ }) => Promise<{
161
+ messageId: string;
162
+ }>;
138
163
  /**
139
164
  * Re-fire `sendMessageRest` for an optimistic row whose previous send
140
165
  * rejected. Identified by `v2MessageId`. Reset the row's status to
141
166
  * `"sending"` and clears the previous `error`. No-op if the row no
142
167
  * longer exists or is not in `"failed"` state.
143
168
  */
144
- retryMessage: (v2MessageId: string) => Promise<void>;
169
+ retryMessage: (v2MessageId: string) => Promise<{
170
+ messageId: string;
171
+ } | void>;
145
172
  /**
146
173
  * Fetch the next older page via `historyFetch`. No-op when `hasMore` is
147
174
  * false, or when no `historyFetch` is provided. Sets `isLoadingMore`
@@ -1 +1 @@
1
- {"version":3,"file":"use-chat-messages.d.ts","sourceRoot":"","sources":["../../src/chat-ably/use-chat-messages.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-chat-messages.d.ts","sourceRoot":"","sources":["../../src/chat-ably/use-chat-messages.tsx"],"names":[],"mappings":"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"}
@@ -49,6 +49,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
49
49
  import * as React from "react";
50
50
  import { useMessages, useRoom } from "@ably/chat/react";
51
51
  import { ChatMessageEventType } from "@ably/chat";
52
+ /** Mirror of the server's preview rule, for the optimistic row only. */
53
+ function replyPreview(text) {
54
+ const preview = text.replace(/\s+/g, " ").trim().slice(0, 140);
55
+ return preview || null;
56
+ }
52
57
  const ChatRestCallbacksContext = React.createContext({});
53
58
  /**
54
59
  * Internal API — `<ChatRoom>` calls this to thread REST callbacks down to
@@ -86,6 +91,46 @@ function readEnvelopeKeys(event) {
86
91
  const messageType = meta.v2_message_type === "system" ? "system" : "text";
87
92
  return { v2MessageId, v2CreatedAt, messageType };
88
93
  }
94
+ const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
95
+ /**
96
+ * The Ably Chat SDK retains message metadata but drops unknown top-level
97
+ * payload fields. CEL-1990 therefore mirrors the server-owned reply snapshot
98
+ * under `metadata.v2_reply_to`. Keep absence distinct from canonical null:
99
+ * legacy events must not erase a snapshot already learned through REST.
100
+ */
101
+ function readRealtimeReplySnapshot(metadata) {
102
+ if (!metadata || typeof metadata !== "object" || Array.isArray(metadata)) {
103
+ return { present: false };
104
+ }
105
+ const record = metadata;
106
+ if (!Object.prototype.hasOwnProperty.call(record, "v2_reply_to")) {
107
+ return { present: false };
108
+ }
109
+ const raw = record.v2_reply_to;
110
+ if (raw === null)
111
+ return { present: true, value: null };
112
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
113
+ return { present: false };
114
+ }
115
+ const snapshot = raw;
116
+ const nullableString = (value) => value === null || typeof value === "string";
117
+ if (typeof snapshot.messageId !== "string" ||
118
+ !UUID_PATTERN.test(snapshot.messageId) ||
119
+ !nullableString(snapshot.preview) ||
120
+ !nullableString(snapshot.senderUserId) ||
121
+ !nullableString(snapshot.senderOrgId)) {
122
+ return { present: false };
123
+ }
124
+ return {
125
+ present: true,
126
+ value: {
127
+ messageId: snapshot.messageId,
128
+ preview: snapshot.preview,
129
+ senderUserId: snapshot.senderUserId,
130
+ senderOrgId: snapshot.senderOrgId,
131
+ },
132
+ };
133
+ }
89
134
  /**
90
135
  * Sort comparator. Primary key `v2CreatedAt`, tie-breaker `v2MessageId`
91
136
  * lexicographic. UUID v4 strings sort deterministically.
@@ -114,6 +159,7 @@ function toDelivered(row) {
114
159
  serial: null,
115
160
  messageType: row.messageType,
116
161
  deletedAt: row.deletedAt,
162
+ replyTo: row.replyTo ?? null,
117
163
  };
118
164
  }
119
165
  // ────────────────────────────────────────────────────────────────────────────
@@ -258,6 +304,7 @@ export function useChatMessages() {
258
304
  const handler = React.useCallback((event) => {
259
305
  setMessages((prev) => {
260
306
  const { v2MessageId, v2CreatedAt, messageType } = readEnvelopeKeys(event);
307
+ const realtimeReply = readRealtimeReplySnapshot(event.message.metadata);
261
308
  // Identity preference: v2MessageId (Option A canonical key). Fall
262
309
  // back to serial-match for legacy messages that predate CEL-303.
263
310
  const identityKey = v2MessageId ?? event.message.serial;
@@ -279,6 +326,9 @@ export function useChatMessages() {
279
326
  serial: event.message.serial,
280
327
  messageType,
281
328
  deletedAt: null,
329
+ replyTo: realtimeReply.present
330
+ ? realtimeReply.value
331
+ : (next[existingIndex]?.replyTo ?? null),
282
332
  };
283
333
  if (existingIndex === -1) {
284
334
  next.push(delivered);
@@ -311,6 +361,7 @@ export function useChatMessages() {
311
361
  ? event.message.timestamp.toISOString()
312
362
  : new Date().toISOString()
313
363
  : (cur.deletedAt ?? null),
364
+ replyTo: realtimeReply.present ? realtimeReply.value : (cur.replyTo ?? null),
314
365
  };
315
366
  }
316
367
  // Out-of-order updates without a matching create: ignore. Under
@@ -354,7 +405,7 @@ export function useChatMessages() {
354
405
  // analysis.
355
406
  useMessages({ listener: handler });
356
407
  // Send: generate v2MessageId, optimistic insert, fire REST, reconcile.
357
- const sendMessage = React.useCallback(async (text, metadata) => {
408
+ const sendMessage = React.useCallback(async (text, metadata, options) => {
358
409
  if (!sendMessageRest) {
359
410
  throw new Error("useChatMessages: sendMessage called but no `sendMessageRest` callback was provided on <ChatRoom>. " +
360
411
  "This consumer is read-only (e.g. admin v2 chat monitoring) — provide a sendMessageRest prop on <ChatRoom> to enable sends.");
@@ -362,7 +413,7 @@ export function useChatMessages() {
362
413
  if (!roomId) {
363
414
  throw new Error("useChatMessages: sendMessage called without a mounted <ChatRoom> ancestor.");
364
415
  }
365
- const v2MessageId = crypto.randomUUID();
416
+ const v2MessageId = options?.v2MessageId ?? crypto.randomUUID();
366
417
  const optimisticAt = new Date().toISOString();
367
418
  // Optimistic insert. ClientId is empty until we know the sender —
368
419
  // consumers can pass `useChatRoomUser()` data themselves if they
@@ -370,23 +421,62 @@ export function useChatMessages() {
370
421
  // echo will overwrite this with the canonical clientId on
371
422
  // reconcile.
372
423
  setMessages((prev) => {
373
- const next = [
374
- ...prev,
375
- {
376
- optimistic: true,
377
- status: "sending",
378
- v2MessageId,
379
- v2CreatedAt: optimisticAt,
380
- text,
381
- metadata: metadata ?? null,
382
- clientId: "",
383
- serial: null,
384
- },
385
- ];
424
+ // CEL-1990 — build the quote locally so it renders with the bubble
425
+ // rather than popping in when REST returns. Approximate by design:
426
+ // sender ids come from the cached parent and the server's canonical
427
+ // snapshot overwrites this whole object on reconcile. If the parent
428
+ // is not in the cache (replying to something scrolled out of a
429
+ // trimmed window) the quote shows an empty preview for one tick.
430
+ const parent = options?.replyToMessageId === undefined
431
+ ? undefined
432
+ : prev.find((m) => m.v2MessageId === options.replyToMessageId);
433
+ const existingIndex = prev.findIndex((message) => message.v2MessageId === v2MessageId);
434
+ const existing = existingIndex === -1 ? undefined : prev[existingIndex];
435
+ // A repeated attachment send intentionally reuses the same UUID after
436
+ // an ambiguous/lost REST acknowledgement. Never append a duplicate
437
+ // optimistic row. An Ably-delivered row also stays delivered while the
438
+ // idempotent REST confirmation is retried.
439
+ if (existing && !existing.optimistic)
440
+ return prev;
441
+ const optimistic = {
442
+ optimistic: true,
443
+ status: "sending",
444
+ v2MessageId,
445
+ v2CreatedAt: existing?.v2CreatedAt ?? optimisticAt,
446
+ text: existing?.text ?? text,
447
+ metadata: existing?.metadata ?? metadata ?? null,
448
+ clientId: existing?.clientId ?? "",
449
+ serial: null,
450
+ ...(existing?.replyTo
451
+ ? { replyTo: existing.replyTo }
452
+ : options?.replyToMessageId === undefined
453
+ ? {}
454
+ : {
455
+ replyTo: {
456
+ messageId: options.replyToMessageId,
457
+ preview: replyPreview(parent?.text ?? ""),
458
+ senderUserId: parent?.clientId || null,
459
+ senderOrgId: null,
460
+ },
461
+ }),
462
+ };
463
+ const next = [...prev];
464
+ if (existingIndex === -1)
465
+ next.push(optimistic);
466
+ else
467
+ next[existingIndex] = optimistic;
386
468
  return next.sort(compareItems);
387
469
  });
388
470
  try {
389
- const serverRow = await sendMessageRest({ roomId, content: text, v2MessageId, metadata });
471
+ const serverRow = await sendMessageRest({
472
+ roomId,
473
+ content: text,
474
+ v2MessageId,
475
+ metadata,
476
+ ...(options?.replyToMessageId === undefined
477
+ ? {}
478
+ : { replyToMessageId: options.replyToMessageId }),
479
+ });
390
480
  setMessages((prev) => {
391
481
  const idx = prev.findIndex((m) => m.v2MessageId === v2MessageId);
392
482
  if (idx === -1)
@@ -403,6 +493,7 @@ export function useChatMessages() {
403
493
  next[idx] = delivered;
404
494
  return next.sort(compareItems);
405
495
  });
496
+ return { messageId: serverRow.id };
406
497
  }
407
498
  catch (err) {
408
499
  setMessages((prev) => {
@@ -423,6 +514,7 @@ export function useChatMessages() {
423
514
  };
424
515
  return next;
425
516
  });
517
+ throw err;
426
518
  }
427
519
  }, [sendMessageRest, roomId]);
428
520
  // Retry: flip the failed row back to "sending" and re-fire REST.
@@ -445,7 +537,9 @@ export function useChatMessages() {
445
537
  const cur = current[idx];
446
538
  if (!cur || !cur.optimistic || cur.status !== "failed")
447
539
  return;
448
- const captured = { text: cur.text, metadata: cur.metadata };
540
+ // `replyTo` rides along so the retry re-sends the pointer, not just
541
+ // the text (CEL-1990).
542
+ const captured = { text: cur.text, metadata: cur.metadata, replyTo: cur.replyTo };
449
543
  // Flip to sending.
450
544
  setMessages((prev) => {
451
545
  const i = prev.findIndex((m) => m.v2MessageId === v2MessageId);
@@ -464,6 +558,10 @@ export function useChatMessages() {
464
558
  content: captured.text,
465
559
  v2MessageId,
466
560
  metadata: captured.metadata,
561
+ // CEL-1990 — without this a retried reply silently becomes an
562
+ // ordinary message: the row keeps its local quote, the server
563
+ // stores none, and the next history fetch drops it.
564
+ ...(captured.replyTo ? { replyToMessageId: captured.replyTo.messageId } : {}),
467
565
  });
468
566
  setMessages((prev) => {
469
567
  const idx = prev.findIndex((m) => m.v2MessageId === v2MessageId);
@@ -481,6 +579,7 @@ export function useChatMessages() {
481
579
  next[idx] = delivered;
482
580
  return next.sort(compareItems);
483
581
  });
582
+ return { messageId: serverRow.id };
484
583
  }
485
584
  catch (err) {
486
585
  setMessages((prev) => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-chat-messages.js","sourceRoot":"","sources":["../../src/chat-ably/use-chat-messages.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-chat-messages.js","sourceRoot":"","sources":["../../src/chat-ably/use-chat-messages.tsx"],"names":[],"mappings":"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"}