@ethora/chat-component 26.7.4 → 26.7.6

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 (152) hide show
  1. package/README.md +72 -16
  2. package/dist/ChatProfileModal-hxsWI8cx.js +2139 -0
  3. package/dist/FilePreviewModal-CwWnHsB1.js +736 -0
  4. package/dist/ManageDataModal-CDPXcC93.js +159 -0
  5. package/dist/MarkdownBody-DBJGraWM.js +16874 -0
  6. package/dist/SideDrawer-Dr_lkaOW.js +226 -0
  7. package/dist/UserProfileModal-Q_jhXpsX.js +568 -0
  8. package/dist/UserSettingsModal-OcAJao-d.js +50 -0
  9. package/dist/{VideoCallOverlay-BUfKp87t.js → VideoCallOverlay-CC4sShdK.js} +9 -10
  10. package/dist/VisibilityModal-DkMhx_2k.js +132 -0
  11. package/dist/assets/icons.d.ts +30 -0
  12. package/dist/components/ContextMenu/ContextMenuComponents.d.ts +1 -3
  13. package/dist/components/EmojiPicker/LazyEmojiPicker.d.ts +3 -0
  14. package/dist/components/ExampleComponents/CustomMessage.d.ts +3 -3
  15. package/dist/components/Files/FilesList.d.ts +12 -0
  16. package/dist/components/Files/FilesPanel.d.ts +3 -0
  17. package/dist/components/Files/fileCategory.d.ts +13 -0
  18. package/dist/components/InputComponents/AttachmentPreview.d.ts +17 -0
  19. package/dist/components/InputComponents/MentionDropdown.d.ts +13 -0
  20. package/dist/components/InputComponents/MentionPickerModal.d.ts +19 -0
  21. package/dist/components/MainComponents/AttachmentList.d.ts +7 -0
  22. package/dist/components/MainComponents/ChatErrorBoundary.d.ts +53 -0
  23. package/dist/components/MainComponents/ChatErrorScreen.d.ts +24 -0
  24. package/dist/components/MainComponents/HeaderLogo.d.ts +18 -0
  25. package/dist/components/MainComponents/MediaMessage.d.ts +5 -0
  26. package/dist/components/MainComponents/MessageContainer.d.ts +2 -2
  27. package/dist/components/MainComponents/ReduxWrapper.d.ts +1 -2
  28. package/dist/components/MainComponents/SystemMessage.d.ts +1 -2
  29. package/dist/components/MenuRoom/MenuRoom.d.ts +1 -0
  30. package/dist/components/MessageBubble/CustomDivider.d.ts +3 -3
  31. package/dist/components/MessageBubble/Message.d.ts +2 -2
  32. package/dist/components/MessageBubble/MessageTranslate.d.ts +28 -10
  33. package/dist/components/MessageBubble/QuickReplies.d.ts +19 -0
  34. package/dist/components/Modals/ChatProfileModal/ChatProfileMemberRow.d.ts +18 -0
  35. package/dist/components/Modals/FilePreviewModal/FilePreviewModal.d.ts +17 -0
  36. package/dist/components/Modals/FilePreviewModal/ImageLightbox.d.ts +35 -0
  37. package/dist/components/Modals/FilePreviewModal/PdfView.d.ts +14 -3
  38. package/dist/components/Modals/NewChatModal/styledNewChatComponents.d.ts +12 -0
  39. package/dist/components/Modals/SettingsModals/Visibility/StyledComponents.d.ts +1 -1
  40. package/dist/components/Modals/SideDrawer/DrawerProfileParts.d.ts +13 -0
  41. package/dist/components/Modals/SideDrawer/SideDrawer.d.ts +44 -0
  42. package/dist/components/Modals/modalComponents.d.ts +6 -0
  43. package/dist/components/Modals/styledModalComponents.d.ts +14 -3
  44. package/dist/components/RoomComponents/ChatRoomItem.d.ts +0 -1
  45. package/dist/components/RoomComponents/OnlineUsersPopover.d.ts +0 -1
  46. package/dist/components/UsersList/StyledComponents.d.ts +5 -1
  47. package/dist/components/UsersList/UsersList.d.ts +23 -0
  48. package/dist/components/styled/Button.d.ts +11 -1
  49. package/dist/components/styled/ChatWrapperBox.d.ts +3 -1
  50. package/dist/components/styled/PdfMessage.d.ts +13 -0
  51. package/dist/components/styled/RoomListComponents/index.d.ts +22 -1
  52. package/dist/components/styled/SendInput.d.ts +19 -5
  53. package/dist/components/styled/StyledComponents.d.ts +1 -1
  54. package/dist/components/styled/StyledInputComponents/MediaComponents.d.ts +18 -0
  55. package/dist/components/styled/StyledInputComponents/StyledInputComponents.d.ts +21 -0
  56. package/dist/components/styled/TreadLabel.d.ts +2 -2
  57. package/dist/components/styled/UnsupportedType.d.ts +1 -1
  58. package/dist/examples/quiz/QuizDemo.d.ts +3 -0
  59. package/dist/examples/quiz/quizScript.d.ts +38 -0
  60. package/dist/examples/quiz/useDemoSession.d.ts +42 -0
  61. package/dist/examples/quiz/useQuizFlow.d.ts +47 -0
  62. package/dist/firebase-config.d.ts +2 -4
  63. package/dist/handleCopyClick-CpmPa6VI.js +32 -0
  64. package/dist/helpers/MarkdownBody.d.ts +7 -0
  65. package/dist/helpers/attachments.d.ts +33 -0
  66. package/dist/helpers/botMarkup.d.ts +30 -0
  67. package/dist/helpers/constants/MODAL_TYPES.d.ts +11 -7
  68. package/dist/helpers/ethoraLogger.d.ts +8 -0
  69. package/dist/helpers/fileKind.d.ts +17 -0
  70. package/dist/helpers/hiddenRooms.d.ts +1 -1
  71. package/dist/helpers/historyPreloadScheduler.d.ts +1 -0
  72. package/dist/helpers/lazyEmoji.d.ts +3 -0
  73. package/dist/helpers/localStorageUser.d.ts +1 -1
  74. package/dist/helpers/markdownSanitizeSchema.d.ts +3 -0
  75. package/dist/helpers/mentions.d.ts +63 -0
  76. package/dist/helpers/parseMessageBody.d.ts +12 -2
  77. package/dist/helpers/pdf/loadPdfjs.d.ts +64 -0
  78. package/dist/helpers/quickReplies.d.ts +31 -0
  79. package/dist/helpers/remarkLineBreaks.d.ts +42 -0
  80. package/dist/helpers/resolveMessageTranslation.d.ts +34 -0
  81. package/dist/helpers/roomImageGallery.d.ts +53 -0
  82. package/dist/helpers/secureFileUrl.d.ts +8 -0
  83. package/dist/helpers/sendFailureWatchdog.d.ts +62 -0
  84. package/dist/helpers/transformTranslatations.d.ts +1 -2
  85. package/dist/hooks/pushSubscriptionSweep.d.ts +41 -0
  86. package/dist/hooks/useChatWrapperInit.d.ts +1 -0
  87. package/dist/hooks/useFilesEndpointSupport.d.ts +9 -0
  88. package/dist/hooks/useInView.d.ts +17 -0
  89. package/dist/hooks/useMentionComposer.d.ts +45 -0
  90. package/dist/hooks/useMessageHeapState.d.ts +1 -1
  91. package/dist/hooks/useMessageTranslation.d.ts +4 -3
  92. package/dist/hooks/useModalDismiss.d.ts +27 -0
  93. package/dist/hooks/useMyFiles.d.ts +16 -0
  94. package/dist/hooks/usePdfThumbnail.d.ts +22 -0
  95. package/dist/hooks/useRoomMute.d.ts +19 -0
  96. package/dist/hooks/useRoomState.d.ts +1 -1
  97. package/dist/hooks/useSendMessage.d.ts +4 -3
  98. package/dist/hooks/useTypography.d.ts +1 -1
  99. package/dist/hooks/useUnreadMessagesCounter.d.ts +11 -2
  100. package/dist/index.esm-B-3fyDHY.js +28 -0
  101. package/dist/index.esm-CRM4VCRa.js +943 -0
  102. package/dist/index.esm-msbp26WN.js +3352 -0
  103. package/dist/index.esm2017-CL0mvq6y.js +1578 -0
  104. package/dist/main-B-8IhwaP.js +31837 -0
  105. package/dist/main.css +1 -1
  106. package/dist/main.d.ts +16 -0
  107. package/dist/main.js +19 -18
  108. package/dist/module-DGXkb0R_.js +2960 -0
  109. package/dist/native-CDi4YD_s.js +13 -0
  110. package/dist/networking/api-requests/files.api.d.ts +19 -0
  111. package/dist/networking/api-requests/rooms.api.d.ts +10 -2
  112. package/dist/networking/api-requests/translate.api.d.ts +15 -0
  113. package/dist/networking/api-requests/user.api.d.ts +2 -0
  114. package/dist/networking/sharedRequest.d.ts +4 -0
  115. package/dist/networking/xmpp/allRoomPresences.xmpp.d.ts +3 -1
  116. package/dist/networking/xmpp/createTimeoutPromise.xmpp.d.ts +14 -0
  117. package/dist/networking/xmpp/sendTextMessage.xmpp.d.ts +2 -1
  118. package/dist/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts +2 -1
  119. package/dist/networking/xmppClient.d.ts +12 -3
  120. package/dist/pdf-B5b7qHu6.js +17130 -0
  121. package/dist/pdf.worker.min-COYn-gId.js +24385 -0
  122. package/dist/roomStore/index.d.ts +20 -0
  123. package/dist/roomStore/persistEncryption.d.ts +51 -0
  124. package/dist/roomStore/roomsSlice.d.ts +49 -6
  125. package/dist/styles/classNames.d.ts +35 -0
  126. package/dist/styles/motion.d.ts +44 -0
  127. package/dist/styles/tokens.d.ts +27 -0
  128. package/dist/testIds.d.ts +1 -1
  129. package/dist/types/models/attachment.model.d.ts +33 -0
  130. package/dist/types/models/config.model.d.ts +179 -19
  131. package/dist/types/models/file.model.d.ts +20 -0
  132. package/dist/types/models/message.model.d.ts +16 -6
  133. package/dist/types/models/room.model.d.ts +12 -2
  134. package/dist/types/types.d.ts +3 -1
  135. package/dist/utils/resendMessage.d.ts +22 -1
  136. package/dist/utils/translateModePolicy.d.ts +1 -0
  137. package/dist/wavesurfer.esm-D_a19qBW.js +952 -0
  138. package/package.json +22 -2
  139. package/dist/VideoCallOverlay-BUfKp87t.js.map +0 -1
  140. package/dist/components/MainComponents/VirtualList.d.ts +0 -10
  141. package/dist/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.d.ts +0 -6
  142. package/dist/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.d.ts +0 -6
  143. package/dist/components/Modals/SettingsModals/ManageDataModal/StyledComponents.d.ts +0 -0
  144. package/dist/components/Modals/SettingsModals/ProfileShares/ProfileShares.d.ts +0 -6
  145. package/dist/components/Modals/SettingsModals/Referrals/Referrals.d.ts +0 -6
  146. package/dist/hooks/useMessageQueue.d.ts +0 -4
  147. package/dist/main-DFqqDiy-.js +0 -55707
  148. package/dist/main-DFqqDiy-.js.map +0 -1
  149. package/dist/main.js.map +0 -1
  150. package/dist/networking/xmpp/getHistory.xmpp.d.ts +0 -3
  151. package/dist/networking/xmpp/listenerManager.d.ts +0 -17
  152. package/dist/utils/xmppMemoryMonitor.d.ts +0 -16
@@ -1,6 +1,7 @@
1
1
  import { IUser } from './user.model';
2
2
  import { TranslationObject } from '../types';
3
3
  import { Iso639_1Codes } from './language.model';
4
+ import { IAttachment } from './attachment.model';
4
5
  export interface IMessage {
5
6
  id: string;
6
7
  user: IUser;
@@ -17,6 +18,7 @@ export interface IMessage {
17
18
  mimetype?: string;
18
19
  location?: string;
19
20
  pending?: boolean;
21
+ failed?: boolean;
20
22
  timestamp?: number;
21
23
  showInChannel?: string;
22
24
  activeMessage?: boolean;
@@ -31,8 +33,17 @@ export interface IMessage {
31
33
  langSource?: Iso639_1Codes;
32
34
  originalName?: string;
33
35
  size?: string;
36
+ /**
37
+ * Every file carried by this message, oldest wire format included:
38
+ * `attachments[0]` mirrors the flat `location`/`mimetype`/`originalName`
39
+ * fields above. Undefined on messages that predate multi-attach, so read
40
+ * it through `getMessageAttachments()` rather than directly.
41
+ */
42
+ attachments?: IAttachment[];
34
43
  xmppId?: string;
35
44
  xmppFrom?: string;
45
+ quickReplies?: unknown;
46
+ mentions?: IMentionSpan[];
36
47
  callLog?: {
37
48
  callId: string;
38
49
  direction: 'outgoing' | 'incoming';
@@ -47,12 +58,11 @@ export interface ReactionMessage {
47
58
  }
48
59
  export interface IReply extends IMessage {
49
60
  }
50
- export interface MessageBubble {
51
- backgroundMessageUser?: string;
52
- backgroundMessage?: string;
53
- colorUser?: string;
54
- color?: string;
55
- borderRadius?: number;
61
+ export interface IMentionSpan {
62
+ jid: string;
63
+ name: string;
64
+ offset: number;
65
+ length: number;
56
66
  }
57
67
  export interface MessageProps {
58
68
  message: IMessage;
@@ -54,8 +54,17 @@ export interface IRoom {
54
54
  firstMessageTimestamp?: number;
55
55
  };
56
56
  historyComplete?: boolean;
57
- historyPreloadState?: 'idle' | 'loading' | 'done' | 'error';
57
+ historyPreloadState?: 'idle' | 'loading' | 'partial' | 'done' | 'error';
58
58
  unreadCapped?: boolean;
59
+ /**
60
+ * The caller's own mute preference for this room, as reported by the
61
+ * backend (`GET /v1/chats/my` / `/v1/chats/my/{chatName}`). Only a real
62
+ * backend that supports mute ever sends this field - prod doesn't yet, so
63
+ * this stays `undefined` (not `false`) there. Treat `undefined` as "not
64
+ * muted" for behaviour, but as "unsupported" for whether to show a mute
65
+ * toggle at all (see useRoomMute's `isSupported`).
66
+ */
67
+ muted?: boolean;
59
68
  }
60
69
  export interface ApiRoom {
61
70
  name: string;
@@ -71,6 +80,8 @@ export interface ApiRoom {
71
80
  createdAt?: string;
72
81
  updatedAt?: string;
73
82
  __v?: string;
83
+ /** See IRoom.muted - only present when the backend supports per-chat mute. */
84
+ muted?: boolean;
74
85
  }
75
86
  export interface PostRoom {
76
87
  title: string;
@@ -95,7 +106,6 @@ export interface DeleteRoomMember {
95
106
  }
96
107
  export interface IRoomCompressed extends Pick<IRoom, 'jid'> {
97
108
  }
98
- export type PartialRoomWithMandatoryKeys = Partial<IRoom> & Pick<IRoom, 'jid' | 'title'>;
99
109
  export interface ConfigRoom {
100
110
  jid: string;
101
111
  pinned: boolean;
@@ -7,5 +7,7 @@ export * from './models/action.model';
7
7
  export * from './models/modal.model';
8
8
  export * from './models/language.model';
9
9
  export * from './models/media.model';
10
+ export * from './models/attachment.model';
11
+ export * from './models/file.model';
10
12
  export { MODAL_TYPES } from '../helpers/constants/MODAL_TYPES';
11
- export type { TranslationObject } from '../helpers/transformTranslatations';
13
+ export type { TranslationObject, Translation, } from '../helpers/transformTranslatations';
@@ -1,8 +1,29 @@
1
1
  import { IMessage } from '../types/types';
2
2
  type ResendOptions = {
3
3
  respectTranslateConfig?: boolean;
4
+ /**
5
+ * Re-send under the ORIGINAL message id instead of minting a new one.
6
+ *
7
+ * This is what the "not delivered - retry" control in the message bubble
8
+ * uses, and it is the only duplicate-safe way to retry:
9
+ *
10
+ * - the id is the client id carried on the stanza, so if the first
11
+ * attempt WAS accepted after all, its late echo reconciles onto the
12
+ * same message entry instead of appearing as a second bubble;
13
+ * - the original message is left in place (no local delete, and no
14
+ * `deleteMessageStanza` broadcast to the room), so a recipient who
15
+ * already received the first attempt does not see it retracted and
16
+ * then re-sent;
17
+ * - xmppClient's send queue de-duplicates by id, so a retry issued while
18
+ * the first attempt is still queued (the offline case) is absorbed
19
+ * rather than putting a second copy on the wire.
20
+ *
21
+ * Default `false` keeps the pre-existing "resend as a brand new message"
22
+ * behaviour for hosts already calling this utility directly.
23
+ */
24
+ preserveMessageId?: boolean;
4
25
  };
5
- export declare function resendMessage(message: Pick<IMessage, 'body' | 'roomJid'> & {
26
+ export declare function resendMessage(message: Pick<IMessage, 'body' | 'roomJid' | 'mentions'> & {
6
27
  originalMessageId: string;
7
28
  isReply?: boolean;
8
29
  showInChannel?: string;
@@ -17,3 +17,4 @@ export declare const canReaderChooseTranslateMode: (translates?: IConfig["transl
17
17
  * fallback for a reader who never has.
18
18
  */
19
19
  export declare const resolveTranslateMode: (translates?: IConfig["translates"], readerMode?: TranslateMode) => TranslateMode;
20
+ export declare const shouldTagOutgoingTranslateSource: (translatesEnabled: boolean | undefined, translateSendEnabled: boolean | undefined) => boolean;