@ethora/chat-component-rn 26.5.16 → 26.5.18

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 (215) hide show
  1. package/lib/commonjs/assets/EmptyChatIllustration.js +106 -0
  2. package/lib/commonjs/assets/EmptyChatIllustration.js.map +1 -0
  3. package/lib/commonjs/assets/icons.js +13 -2
  4. package/lib/commonjs/assets/icons.js.map +1 -1
  5. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js +2 -1
  6. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  7. package/lib/commonjs/components/MainComponents/ChatHeader.js +2 -1
  8. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ChatRoom.js +5 -2
  10. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/ChooseChatMessage.js +9 -2
  12. package/lib/commonjs/components/MainComponents/ChooseChatMessage.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/EditWrapper.js +12 -4
  14. package/lib/commonjs/components/MainComponents/EditWrapper.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/MessageList.js +2 -1
  16. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/NoMessagesPlaceholder.js +11 -3
  18. package/lib/commonjs/components/MainComponents/NoMessagesPlaceholder.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +12 -7
  20. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +4 -0
  22. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/RoomList.js +2 -1
  24. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  25. package/lib/commonjs/components/MessageBubble/Avatar.js +16 -7
  26. package/lib/commonjs/components/MessageBubble/Avatar.js.map +1 -1
  27. package/lib/commonjs/components/MessageBubble/Message.js +16 -1
  28. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  29. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +9 -0
  30. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  31. package/lib/commonjs/components/styled/Button.js +4 -2
  32. package/lib/commonjs/components/styled/Button.js.map +1 -1
  33. package/lib/commonjs/components/styled/DateLabel.js +12 -4
  34. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  35. package/lib/commonjs/components/styled/SendInput.js +4 -3
  36. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  37. package/lib/commonjs/context/xmppProvider.js +12 -1
  38. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  39. package/lib/commonjs/helpers/getAvatarColor.js +33 -0
  40. package/lib/commonjs/helpers/getAvatarColor.js.map +1 -0
  41. package/lib/commonjs/helpers/getDateLabelColor.js +9 -0
  42. package/lib/commonjs/helpers/getDateLabelColor.js.map +1 -0
  43. package/lib/commonjs/helpers/getIconColor.js +9 -0
  44. package/lib/commonjs/helpers/getIconColor.js.map +1 -0
  45. package/lib/commonjs/helpers/getSenderNameColor.js +9 -0
  46. package/lib/commonjs/helpers/getSenderNameColor.js.map +1 -0
  47. package/lib/commonjs/helpers/historyPreloadScheduler.js +118 -113
  48. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  49. package/lib/commonjs/hooks/useChatFonts.js +137 -0
  50. package/lib/commonjs/hooks/useChatFonts.js.map +1 -0
  51. package/lib/commonjs/hooks/useSendMessage.js +72 -22
  52. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  53. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +4 -2
  54. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  55. package/lib/commonjs/main.js +7 -0
  56. package/lib/commonjs/main.js.map +1 -1
  57. package/lib/commonjs/networking/outboundQueue.js +22 -4
  58. package/lib/commonjs/networking/outboundQueue.js.map +1 -1
  59. package/lib/commonjs/networking/xmppClient.js +50 -0
  60. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  61. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js +22 -0
  62. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  63. package/lib/commonjs/roomStore/roomsSlice.js +22 -2
  64. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  65. package/lib/module/assets/EmptyChatIllustration.js +99 -0
  66. package/lib/module/assets/EmptyChatIllustration.js.map +1 -0
  67. package/lib/module/assets/icons.js +13 -2
  68. package/lib/module/assets/icons.js.map +1 -1
  69. package/lib/module/components/DropdownMenu/DropdownMenu.js +2 -1
  70. package/lib/module/components/DropdownMenu/DropdownMenu.js.map +1 -1
  71. package/lib/module/components/MainComponents/ChatHeader.js +2 -1
  72. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  73. package/lib/module/components/MainComponents/ChatRoom.js +5 -2
  74. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  75. package/lib/module/components/MainComponents/ChooseChatMessage.js +9 -2
  76. package/lib/module/components/MainComponents/ChooseChatMessage.js.map +1 -1
  77. package/lib/module/components/MainComponents/EditWrapper.js +12 -4
  78. package/lib/module/components/MainComponents/EditWrapper.js.map +1 -1
  79. package/lib/module/components/MainComponents/MessageList.js +2 -1
  80. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  81. package/lib/module/components/MainComponents/NoMessagesPlaceholder.js +11 -3
  82. package/lib/module/components/MainComponents/NoMessagesPlaceholder.js.map +1 -1
  83. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +12 -7
  84. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  85. package/lib/module/components/MainComponents/ReduxWrapper.js +4 -0
  86. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  87. package/lib/module/components/MainComponents/RoomList.js +2 -1
  88. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  89. package/lib/module/components/MessageBubble/Avatar.js +16 -7
  90. package/lib/module/components/MessageBubble/Avatar.js.map +1 -1
  91. package/lib/module/components/MessageBubble/Message.js +16 -1
  92. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  93. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +9 -0
  94. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  95. package/lib/module/components/styled/Button.js +4 -2
  96. package/lib/module/components/styled/Button.js.map +1 -1
  97. package/lib/module/components/styled/DateLabel.js +12 -4
  98. package/lib/module/components/styled/DateLabel.js.map +1 -1
  99. package/lib/module/components/styled/SendInput.js +4 -3
  100. package/lib/module/components/styled/SendInput.js.map +1 -1
  101. package/lib/module/context/xmppProvider.js +13 -2
  102. package/lib/module/context/xmppProvider.js.map +1 -1
  103. package/lib/module/helpers/getAvatarColor.js +28 -0
  104. package/lib/module/helpers/getAvatarColor.js.map +1 -0
  105. package/lib/module/helpers/getDateLabelColor.js +4 -0
  106. package/lib/module/helpers/getDateLabelColor.js.map +1 -0
  107. package/lib/module/helpers/getIconColor.js +4 -0
  108. package/lib/module/helpers/getIconColor.js.map +1 -0
  109. package/lib/module/helpers/getSenderNameColor.js +4 -0
  110. package/lib/module/helpers/getSenderNameColor.js.map +1 -0
  111. package/lib/module/helpers/historyPreloadScheduler.js +119 -114
  112. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  113. package/lib/module/hooks/useChatFonts.js +132 -0
  114. package/lib/module/hooks/useChatFonts.js.map +1 -0
  115. package/lib/module/hooks/useSendMessage.js +72 -22
  116. package/lib/module/hooks/useSendMessage.js.map +1 -1
  117. package/lib/module/hooks/useUnreadMessagesCounter.js +4 -2
  118. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  119. package/lib/module/main.js +2 -0
  120. package/lib/module/main.js.map +1 -1
  121. package/lib/module/networking/outboundQueue.js +21 -4
  122. package/lib/module/networking/outboundQueue.js.map +1 -1
  123. package/lib/module/networking/xmppClient.js +50 -0
  124. package/lib/module/networking/xmppClient.js.map +1 -1
  125. package/lib/module/roomStore/Middleware/newMessageMidlleware.js +22 -0
  126. package/lib/module/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  127. package/lib/module/roomStore/roomsSlice.js +20 -1
  128. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  129. package/lib/typescript/assets/EmptyChatIllustration.d.ts +10 -0
  130. package/lib/typescript/assets/EmptyChatIllustration.d.ts.map +1 -0
  131. package/lib/typescript/assets/icons.d.ts +3 -12
  132. package/lib/typescript/assets/icons.d.ts.map +1 -1
  133. package/lib/typescript/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  134. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  135. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  136. package/lib/typescript/components/MainComponents/ChooseChatMessage.d.ts.map +1 -1
  137. package/lib/typescript/components/MainComponents/EditWrapper.d.ts +5 -1
  138. package/lib/typescript/components/MainComponents/EditWrapper.d.ts.map +1 -1
  139. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  140. package/lib/typescript/components/MainComponents/NoMessagesPlaceholder.d.ts.map +1 -1
  141. package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
  142. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  143. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  144. package/lib/typescript/components/MessageBubble/Avatar.d.ts.map +1 -1
  145. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  146. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
  147. package/lib/typescript/components/styled/Button.d.ts +1 -0
  148. package/lib/typescript/components/styled/Button.d.ts.map +1 -1
  149. package/lib/typescript/components/styled/DateLabel.d.ts +9 -8
  150. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  151. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  152. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  153. package/lib/typescript/helpers/getAvatarColor.d.ts +7 -0
  154. package/lib/typescript/helpers/getAvatarColor.d.ts.map +1 -0
  155. package/lib/typescript/helpers/getDateLabelColor.d.ts +8 -0
  156. package/lib/typescript/helpers/getDateLabelColor.d.ts.map +1 -0
  157. package/lib/typescript/helpers/getIconColor.d.ts +8 -0
  158. package/lib/typescript/helpers/getIconColor.d.ts.map +1 -0
  159. package/lib/typescript/helpers/getSenderNameColor.d.ts +8 -0
  160. package/lib/typescript/helpers/getSenderNameColor.d.ts.map +1 -0
  161. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  162. package/lib/typescript/hooks/useChatFonts.d.ts +23 -0
  163. package/lib/typescript/hooks/useChatFonts.d.ts.map +1 -0
  164. package/lib/typescript/hooks/useSendMessage.d.ts +1 -1
  165. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  166. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +1 -0
  167. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  168. package/lib/typescript/main.d.ts +2 -1
  169. package/lib/typescript/main.d.ts.map +1 -1
  170. package/lib/typescript/networking/outboundQueue.d.ts +16 -1
  171. package/lib/typescript/networking/outboundQueue.d.ts.map +1 -1
  172. package/lib/typescript/networking/xmppClient.d.ts +3 -0
  173. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  174. package/lib/typescript/roomStore/Middleware/newMessageMidlleware.d.ts.map +1 -1
  175. package/lib/typescript/roomStore/roomsSlice.d.ts +3 -1
  176. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  177. package/lib/typescript/types/models/message.model.d.ts +1 -0
  178. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  179. package/lib/typescript/types/types.d.ts +53 -0
  180. package/lib/typescript/types/types.d.ts.map +1 -1
  181. package/package.json +5 -1
  182. package/src/assets/EmptyChatIllustration.tsx +49 -0
  183. package/src/assets/icons.tsx +64 -81
  184. package/src/components/DropdownMenu/DropdownMenu.tsx +2 -1
  185. package/src/components/MainComponents/ChatHeader.tsx +2 -1
  186. package/src/components/MainComponents/ChatRoom.tsx +5 -2
  187. package/src/components/MainComponents/ChooseChatMessage.tsx +5 -2
  188. package/src/components/MainComponents/EditWrapper.tsx +9 -6
  189. package/src/components/MainComponents/MessageList.tsx +2 -1
  190. package/src/components/MainComponents/NoMessagesPlaceholder.tsx +4 -1
  191. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +14 -7
  192. package/src/components/MainComponents/ReduxWrapper.tsx +4 -0
  193. package/src/components/MainComponents/RoomList.tsx +2 -1
  194. package/src/components/MessageBubble/Avatar.tsx +18 -9
  195. package/src/components/MessageBubble/Message.tsx +16 -1
  196. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +6 -0
  197. package/src/components/styled/Button.tsx +5 -1
  198. package/src/components/styled/DateLabel.tsx +10 -7
  199. package/src/components/styled/SendInput.tsx +4 -3
  200. package/src/context/xmppProvider.tsx +11 -1
  201. package/src/helpers/getAvatarColor.ts +31 -0
  202. package/src/helpers/getDateLabelColor.ts +3 -0
  203. package/src/helpers/getIconColor.ts +3 -0
  204. package/src/helpers/getSenderNameColor.ts +3 -0
  205. package/src/helpers/historyPreloadScheduler.ts +7 -1
  206. package/src/hooks/useChatFonts.ts +153 -0
  207. package/src/hooks/useSendMessage.tsx +101 -58
  208. package/src/hooks/useUnreadMessagesCounter.ts +5 -2
  209. package/src/main.ts +4 -0
  210. package/src/networking/outboundQueue.ts +25 -4
  211. package/src/networking/xmppClient.ts +47 -0
  212. package/src/roomStore/Middleware/newMessageMidlleware.tsx +25 -0
  213. package/src/roomStore/roomsSlice.ts +26 -1
  214. package/src/types/models/message.model.ts +3 -0
  215. package/src/types/types.ts +59 -1
@@ -33,6 +33,9 @@ export interface IMessage {
33
33
  xmppId?: string;
34
34
  xmppFrom?: string;
35
35
  deleted?: boolean;
36
+ // Set once a message has been corrected via XEP-0308 (<replace>), so the
37
+ // bubble can show a small "edited" marker (Slack/WhatsApp style).
38
+ isEdited?: boolean;
36
39
  }
37
40
 
38
41
  export interface ReactionMessage {
@@ -223,6 +223,45 @@ export interface PartialRoomWithMandatoryKeys {
223
223
  pinned?: boolean;
224
224
  }
225
225
 
226
+ /**
227
+ * A custom font to register at runtime via `expo-font`. On React Native a
228
+ * font must be loaded before it can be referenced by name — there is no
229
+ * web-style runtime `@font-face`. Each weight is typically its own file and
230
+ * its own family name (RN does not synthesise weights reliably).
231
+ *
232
+ * `source` accepts what `Font.loadAsync` accepts: a remote URL string (e.g. a
233
+ * hosted e-Ukraine `.ttf`), or a bundled asset via `require('./e-Ukraine.ttf')`.
234
+ */
235
+ export interface RNFontSource {
236
+ /** Family name used in text styles, e.g. "e-Ukraine" or "e-Ukraine-Medium". */
237
+ family: string;
238
+ /** Remote URL string or `require(...)` module for the font file. */
239
+ source: string | number;
240
+ }
241
+
242
+ /**
243
+ * Font configuration for the chat UI. When omitted, the component keeps the
244
+ * platform's default system font, so existing integrations are unaffected.
245
+ *
246
+ * Provide `fonts` for the SDK to load via expo-font, then set `fontFamily` to
247
+ * the family the chat should render in. If the host already loaded the font
248
+ * itself (e.g. via `@expo-google-fonts/*` or its own `useFonts`), pass only
249
+ * `fontFamily` and leave `fonts` empty.
250
+ */
251
+ export interface TypographyConfig {
252
+ /** Family applied across the chat UI. Must be loaded (via `fonts` or by the host). */
253
+ fontFamily?: string;
254
+ /** Optional per-weight families, used where the chat renders bolder text. */
255
+ weightFamilies?: {
256
+ regular?: string;
257
+ medium?: string;
258
+ semibold?: string;
259
+ bold?: string;
260
+ };
261
+ /** Fonts for the SDK to load with expo-font before applying `fontFamily`. */
262
+ fonts?: RNFontSource[];
263
+ }
264
+
226
265
  export interface IConfig {
227
266
  // ----- identity / network -----
228
267
  appId?: string;
@@ -231,7 +270,26 @@ export interface IConfig {
231
270
  projectName?: string;
232
271
 
233
272
  // ----- theming -----
234
- colors?: { primary: string; secondary: string };
273
+ colors?: {
274
+ primary: string;
275
+ secondary: string;
276
+ /** Tint for chrome icons (attach, mic/send, burger menu, edit banner,
277
+ * scroll-to-bottom FAB). Falls back to `primary`, then `#0052CD`. */
278
+ icon?: string;
279
+ /** Color of the sender's name above incoming message bubbles.
280
+ * Falls back to `primary`, then `#0052CD`. */
281
+ senderName?: string;
282
+ /** Background of initials avatars (message bubbles, chat header,
283
+ * profile modals). When omitted, each user keeps their per-name
284
+ * pastel color from the hash palette (current default). */
285
+ avatar?: string;
286
+ /** Text color of the day-separator pill ("Today", "June 8") in the
287
+ * message list; the pill background is a light tint of it. Falls
288
+ * back to `primary`, then `#0052CD`. */
289
+ dateLabel?: string;
290
+ };
291
+ /** Configurable font family / weights for the chat UI. See TypographyConfig. */
292
+ typography?: TypographyConfig;
235
293
  messageColor?: {
236
294
  backgroundMessage: string;
237
295
  backgroundMessageUser: string;