@repzo/widget-react-native 1.3.1 → 1.4.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 (224) hide show
  1. package/CHANGELOG.md +137 -5
  2. package/README.md +64 -12
  3. package/lib/commonjs/api/client.js +96 -23
  4. package/lib/commonjs/api/client.js.map +1 -1
  5. package/lib/commonjs/attachments/file-size.js +52 -0
  6. package/lib/commonjs/attachments/file-size.js.map +1 -0
  7. package/lib/commonjs/attachments/local-previews.js +40 -0
  8. package/lib/commonjs/attachments/local-previews.js.map +1 -0
  9. package/lib/commonjs/attachments/pickers.js +20 -29
  10. package/lib/commonjs/attachments/pickers.js.map +1 -1
  11. package/lib/commonjs/i18n.js +22 -3
  12. package/lib/commonjs/i18n.js.map +1 -1
  13. package/lib/commonjs/locales.js +12 -3
  14. package/lib/commonjs/locales.js.map +1 -1
  15. package/lib/commonjs/state/widget-store.js +277 -30
  16. package/lib/commonjs/state/widget-store.js.map +1 -1
  17. package/lib/commonjs/storage.js +3 -1
  18. package/lib/commonjs/storage.js.map +1 -1
  19. package/lib/commonjs/types.js.map +1 -1
  20. package/lib/commonjs/ui/WidgetProvider.js +33 -13
  21. package/lib/commonjs/ui/WidgetProvider.js.map +1 -1
  22. package/lib/commonjs/ui/components/AttachmentChips.js +109 -40
  23. package/lib/commonjs/ui/components/AttachmentChips.js.map +1 -1
  24. package/lib/commonjs/ui/components/ConversationRow.js +65 -10
  25. package/lib/commonjs/ui/components/ConversationRow.js.map +1 -1
  26. package/lib/commonjs/ui/components/ImageViewer.js +229 -24
  27. package/lib/commonjs/ui/components/ImageViewer.js.map +1 -1
  28. package/lib/commonjs/ui/components/RatingCard.js +5 -2
  29. package/lib/commonjs/ui/components/RatingCard.js.map +1 -1
  30. package/lib/commonjs/ui/components/ZoomableImage.js +58 -10
  31. package/lib/commonjs/ui/components/ZoomableImage.js.map +1 -1
  32. package/lib/commonjs/ui/hooks/use-retained-state.js +39 -0
  33. package/lib/commonjs/ui/hooks/use-retained-state.js.map +1 -0
  34. package/lib/commonjs/ui/screens/chat/ChatView.js +637 -164
  35. package/lib/commonjs/ui/screens/chat/ChatView.js.map +1 -1
  36. package/lib/commonjs/ui/screens/chat/ChatView.styles.js +138 -1
  37. package/lib/commonjs/ui/screens/chat/ChatView.styles.js.map +1 -1
  38. package/lib/commonjs/ui/screens/conversations/ConversationsList.js +1 -0
  39. package/lib/commonjs/ui/screens/conversations/ConversationsList.js.map +1 -1
  40. package/lib/commonjs/ui/screens/home/HomeView.js +38 -55
  41. package/lib/commonjs/ui/screens/home/HomeView.js.map +1 -1
  42. package/lib/commonjs/ui/screens/home/HomeView.styles.js +36 -45
  43. package/lib/commonjs/ui/screens/home/HomeView.styles.js.map +1 -1
  44. package/lib/commonjs/ui/utils/html.js +13 -0
  45. package/lib/commonjs/ui/utils/html.js.map +1 -1
  46. package/lib/commonjs/ui/utils/image-load-queue.js +114 -0
  47. package/lib/commonjs/ui/utils/image-load-queue.js.map +1 -0
  48. package/lib/commonjs/ui/utils/inline-attachments.js +88 -0
  49. package/lib/commonjs/ui/utils/inline-attachments.js.map +1 -0
  50. package/lib/module/api/client.js +96 -23
  51. package/lib/module/api/client.js.map +1 -1
  52. package/lib/module/attachments/file-size.js +47 -0
  53. package/lib/module/attachments/file-size.js.map +1 -0
  54. package/lib/module/attachments/local-previews.js +33 -0
  55. package/lib/module/attachments/local-previews.js.map +1 -0
  56. package/lib/module/attachments/pickers.js +15 -25
  57. package/lib/module/attachments/pickers.js.map +1 -1
  58. package/lib/module/i18n.js +22 -3
  59. package/lib/module/i18n.js.map +1 -1
  60. package/lib/module/locales.js +12 -3
  61. package/lib/module/locales.js.map +1 -1
  62. package/lib/module/state/widget-store.js +279 -32
  63. package/lib/module/state/widget-store.js.map +1 -1
  64. package/lib/module/storage.js +2 -0
  65. package/lib/module/storage.js.map +1 -1
  66. package/lib/module/types.js.map +1 -1
  67. package/lib/module/ui/WidgetProvider.js +33 -13
  68. package/lib/module/ui/WidgetProvider.js.map +1 -1
  69. package/lib/module/ui/components/AttachmentChips.js +111 -42
  70. package/lib/module/ui/components/AttachmentChips.js.map +1 -1
  71. package/lib/module/ui/components/ConversationRow.js +65 -10
  72. package/lib/module/ui/components/ConversationRow.js.map +1 -1
  73. package/lib/module/ui/components/ImageViewer.js +231 -26
  74. package/lib/module/ui/components/ImageViewer.js.map +1 -1
  75. package/lib/module/ui/components/RatingCard.js +5 -2
  76. package/lib/module/ui/components/RatingCard.js.map +1 -1
  77. package/lib/module/ui/components/ZoomableImage.js +58 -10
  78. package/lib/module/ui/components/ZoomableImage.js.map +1 -1
  79. package/lib/module/ui/hooks/use-retained-state.js +34 -0
  80. package/lib/module/ui/hooks/use-retained-state.js.map +1 -0
  81. package/lib/module/ui/screens/chat/ChatView.js +641 -168
  82. package/lib/module/ui/screens/chat/ChatView.js.map +1 -1
  83. package/lib/module/ui/screens/chat/ChatView.styles.js +140 -2
  84. package/lib/module/ui/screens/chat/ChatView.styles.js.map +1 -1
  85. package/lib/module/ui/screens/conversations/ConversationsList.js +1 -0
  86. package/lib/module/ui/screens/conversations/ConversationsList.js.map +1 -1
  87. package/lib/module/ui/screens/home/HomeView.js +40 -57
  88. package/lib/module/ui/screens/home/HomeView.js.map +1 -1
  89. package/lib/module/ui/screens/home/HomeView.styles.js +36 -45
  90. package/lib/module/ui/screens/home/HomeView.styles.js.map +1 -1
  91. package/lib/module/ui/utils/html.js +12 -0
  92. package/lib/module/ui/utils/html.js.map +1 -1
  93. package/lib/module/ui/utils/image-load-queue.js +109 -0
  94. package/lib/module/ui/utils/image-load-queue.js.map +1 -0
  95. package/lib/module/ui/utils/inline-attachments.js +85 -0
  96. package/lib/module/ui/utils/inline-attachments.js.map +1 -0
  97. package/lib/typescript/commonjs/api/client.d.ts +12 -4
  98. package/lib/typescript/commonjs/api/client.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/attachments/file-size.d.ts +15 -0
  100. package/lib/typescript/commonjs/attachments/file-size.d.ts.map +1 -0
  101. package/lib/typescript/commonjs/attachments/local-previews.d.ts +14 -0
  102. package/lib/typescript/commonjs/attachments/local-previews.d.ts.map +1 -0
  103. package/lib/typescript/commonjs/attachments/pickers.d.ts +15 -2
  104. package/lib/typescript/commonjs/attachments/pickers.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/i18n.d.ts +12 -3
  106. package/lib/typescript/commonjs/i18n.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/locales.d.ts.map +1 -1
  108. package/lib/typescript/commonjs/state/widget-store.d.ts +40 -1
  109. package/lib/typescript/commonjs/state/widget-store.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/storage.d.ts +2 -0
  111. package/lib/typescript/commonjs/storage.d.ts.map +1 -1
  112. package/lib/typescript/commonjs/types.d.ts +41 -0
  113. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/ui/WidgetProvider.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/ui/components/AttachmentChips.d.ts +13 -3
  116. package/lib/typescript/commonjs/ui/components/AttachmentChips.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/ui/components/ConversationRow.d.ts +15 -1
  118. package/lib/typescript/commonjs/ui/components/ConversationRow.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/ui/components/ImageViewer.d.ts +26 -6
  120. package/lib/typescript/commonjs/ui/components/ImageViewer.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/ui/components/RatingCard.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/ui/components/ZoomableImage.d.ts +10 -1
  123. package/lib/typescript/commonjs/ui/components/ZoomableImage.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/ui/hooks/use-retained-state.d.ts +11 -0
  125. package/lib/typescript/commonjs/ui/hooks/use-retained-state.d.ts.map +1 -0
  126. package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts +4 -4
  127. package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts +144 -0
  129. package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts +26 -1
  131. package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.types.d.ts +2 -0
  134. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.types.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/ui/screens/home/HomeView.d.ts +7 -5
  136. package/lib/typescript/commonjs/ui/screens/home/HomeView.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/ui/screens/home/HomeView.styles.d.ts +30 -35
  138. package/lib/typescript/commonjs/ui/screens/home/HomeView.styles.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/ui/screens/home/HomeView.types.d.ts +5 -6
  140. package/lib/typescript/commonjs/ui/screens/home/HomeView.types.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/ui/utils/html.d.ts +5 -0
  142. package/lib/typescript/commonjs/ui/utils/html.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/ui/utils/image-load-queue.d.ts +44 -0
  144. package/lib/typescript/commonjs/ui/utils/image-load-queue.d.ts.map +1 -0
  145. package/lib/typescript/commonjs/ui/utils/inline-attachments.d.ts +29 -0
  146. package/lib/typescript/commonjs/ui/utils/inline-attachments.d.ts.map +1 -0
  147. package/lib/typescript/module/api/client.d.ts +12 -4
  148. package/lib/typescript/module/api/client.d.ts.map +1 -1
  149. package/lib/typescript/module/attachments/file-size.d.ts +15 -0
  150. package/lib/typescript/module/attachments/file-size.d.ts.map +1 -0
  151. package/lib/typescript/module/attachments/local-previews.d.ts +14 -0
  152. package/lib/typescript/module/attachments/local-previews.d.ts.map +1 -0
  153. package/lib/typescript/module/attachments/pickers.d.ts +15 -2
  154. package/lib/typescript/module/attachments/pickers.d.ts.map +1 -1
  155. package/lib/typescript/module/i18n.d.ts +12 -3
  156. package/lib/typescript/module/i18n.d.ts.map +1 -1
  157. package/lib/typescript/module/locales.d.ts.map +1 -1
  158. package/lib/typescript/module/state/widget-store.d.ts +40 -1
  159. package/lib/typescript/module/state/widget-store.d.ts.map +1 -1
  160. package/lib/typescript/module/storage.d.ts +2 -0
  161. package/lib/typescript/module/storage.d.ts.map +1 -1
  162. package/lib/typescript/module/types.d.ts +41 -0
  163. package/lib/typescript/module/types.d.ts.map +1 -1
  164. package/lib/typescript/module/ui/WidgetProvider.d.ts.map +1 -1
  165. package/lib/typescript/module/ui/components/AttachmentChips.d.ts +13 -3
  166. package/lib/typescript/module/ui/components/AttachmentChips.d.ts.map +1 -1
  167. package/lib/typescript/module/ui/components/ConversationRow.d.ts +15 -1
  168. package/lib/typescript/module/ui/components/ConversationRow.d.ts.map +1 -1
  169. package/lib/typescript/module/ui/components/ImageViewer.d.ts +26 -6
  170. package/lib/typescript/module/ui/components/ImageViewer.d.ts.map +1 -1
  171. package/lib/typescript/module/ui/components/RatingCard.d.ts.map +1 -1
  172. package/lib/typescript/module/ui/components/ZoomableImage.d.ts +10 -1
  173. package/lib/typescript/module/ui/components/ZoomableImage.d.ts.map +1 -1
  174. package/lib/typescript/module/ui/hooks/use-retained-state.d.ts +11 -0
  175. package/lib/typescript/module/ui/hooks/use-retained-state.d.ts.map +1 -0
  176. package/lib/typescript/module/ui/screens/chat/ChatView.d.ts +4 -4
  177. package/lib/typescript/module/ui/screens/chat/ChatView.d.ts.map +1 -1
  178. package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts +144 -0
  179. package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts.map +1 -1
  180. package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts +26 -1
  181. package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts.map +1 -1
  182. package/lib/typescript/module/ui/screens/conversations/ConversationsList.d.ts.map +1 -1
  183. package/lib/typescript/module/ui/screens/conversations/ConversationsList.types.d.ts +2 -0
  184. package/lib/typescript/module/ui/screens/conversations/ConversationsList.types.d.ts.map +1 -1
  185. package/lib/typescript/module/ui/screens/home/HomeView.d.ts +7 -5
  186. package/lib/typescript/module/ui/screens/home/HomeView.d.ts.map +1 -1
  187. package/lib/typescript/module/ui/screens/home/HomeView.styles.d.ts +30 -35
  188. package/lib/typescript/module/ui/screens/home/HomeView.styles.d.ts.map +1 -1
  189. package/lib/typescript/module/ui/screens/home/HomeView.types.d.ts +5 -6
  190. package/lib/typescript/module/ui/screens/home/HomeView.types.d.ts.map +1 -1
  191. package/lib/typescript/module/ui/utils/html.d.ts +5 -0
  192. package/lib/typescript/module/ui/utils/html.d.ts.map +1 -1
  193. package/lib/typescript/module/ui/utils/image-load-queue.d.ts +44 -0
  194. package/lib/typescript/module/ui/utils/image-load-queue.d.ts.map +1 -0
  195. package/lib/typescript/module/ui/utils/inline-attachments.d.ts +29 -0
  196. package/lib/typescript/module/ui/utils/inline-attachments.d.ts.map +1 -0
  197. package/package.json +1 -1
  198. package/src/api/client.ts +116 -34
  199. package/src/attachments/file-size.ts +42 -0
  200. package/src/attachments/local-previews.ts +32 -0
  201. package/src/attachments/pickers.ts +23 -25
  202. package/src/i18n.ts +22 -3
  203. package/src/locales.ts +12 -3
  204. package/src/state/widget-store.ts +322 -50
  205. package/src/storage.ts +2 -0
  206. package/src/types.ts +41 -0
  207. package/src/ui/WidgetProvider.tsx +35 -8
  208. package/src/ui/components/AttachmentChips.tsx +100 -29
  209. package/src/ui/components/ConversationRow.tsx +90 -9
  210. package/src/ui/components/ImageViewer.tsx +242 -24
  211. package/src/ui/components/RatingCard.tsx +5 -2
  212. package/src/ui/components/ZoomableImage.tsx +58 -5
  213. package/src/ui/hooks/use-retained-state.ts +35 -0
  214. package/src/ui/screens/chat/ChatView.styles.ts +139 -1
  215. package/src/ui/screens/chat/ChatView.tsx +721 -197
  216. package/src/ui/screens/chat/ChatView.types.ts +26 -1
  217. package/src/ui/screens/conversations/ConversationsList.tsx +1 -0
  218. package/src/ui/screens/conversations/ConversationsList.types.ts +2 -0
  219. package/src/ui/screens/home/HomeView.styles.ts +36 -45
  220. package/src/ui/screens/home/HomeView.tsx +54 -70
  221. package/src/ui/screens/home/HomeView.types.ts +5 -6
  222. package/src/ui/utils/html.ts +26 -0
  223. package/src/ui/utils/image-load-queue.ts +108 -0
  224. package/src/ui/utils/inline-attachments.ts +71 -0
@@ -1,21 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  /**
4
- * Home space — branded greeting header, the "start a conversation" card, a
5
- * preview of recent threads and a team/availability strip.
4
+ * Home space — branded greeting header, the newest conversation in a "Recent
5
+ * message" card, the "start a conversation" card under it and a
6
+ * team/availability strip.
6
7
  * Port of `client/src/widget/components/HomeView.tsx`.
7
8
  *
8
9
  * The header meets the white body on a straight seam, the same as the web
9
10
  * widget. Whether that seam is a hard edge or the background washing out into
10
- * white is the dashboard's `homeBackgroundFade` toggle, and the start card sits
11
- * astride it either way: top over the brand background, bottom over white.
11
+ * white is the dashboard's `homeBackgroundFade` toggle, and the first card (the
12
+ * recent message, or the start card when there is none) sits astride it either
13
+ * way: top over the brand background, bottom over white.
12
14
  *
13
15
  * Everything on this screen comes from the widget config or the conversations
14
16
  * the visitor already has; nothing here assumes a field the backend does not
15
17
  * send today.
16
18
  */
17
19
 
18
- import { Fragment, useEffect, useRef, useState } from 'react';
20
+ import { useEffect, useRef, useState } from 'react';
19
21
  import { Animated, Easing, Image, Pressable, ScrollView, StyleSheet, Text, View } from 'react-native';
20
22
  import { Avatar } from "../../components/Avatar.js";
21
23
  import { ConversationRow } from "../../components/ConversationRow.js";
@@ -27,7 +29,7 @@ import { globalStyles } from "../../styles/global.js";
27
29
  import { contrastingTextColor, palette, spacing, withAlpha } from "../../styles/theme.js";
28
30
  import { flipForRTL } from "../../utils/rtl.js";
29
31
  import { personalizeGreeting } from "./greeting.js";
30
- import { CLOSE_ICON_SIZE, HEADER_BOTTOM_PADDING, HEADER_FADE_HEIGHT, HEADER_MIN_HEIGHT, LOGO_HEIGHT, LOGO_MAX_WIDTH, START_CARD_LIFT, styles } from "./HomeView.styles.js";
32
+ import { CLOSE_ICON_SIZE, HEADER_BOTTOM_PADDING, HEADER_FADE_HEIGHT, HEADER_MIN_HEIGHT, LEAD_CARD_LIFT, LOGO_HEIGHT, LOGO_MAX_WIDTH, styles } from "./HomeView.styles.js";
31
33
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
32
34
  /**
33
35
  * The admin's explicit black/white toggle always wins. Older configs can omit
@@ -48,7 +50,7 @@ export function HomeView({
48
50
  color,
49
51
  visitorName,
50
52
  conversationCount,
51
- recentConversations,
53
+ recentConversation,
52
54
  unreadByConversation,
53
55
  teamAgents,
54
56
  isOnline,
@@ -60,7 +62,6 @@ export function HomeView({
60
62
  labels,
61
63
  onClose,
62
64
  onStartConversation,
63
- onViewConversations,
64
65
  onOpenConversation
65
66
  }) {
66
67
  const heading = personalizeGreeting(config?.welcomeHeading, visitorName, 'Hi there');
@@ -79,13 +80,13 @@ export function HomeView({
79
80
  const fade = config?.homeBackgroundFade ? /*#__PURE__*/_jsx(FadeOverlay, {
80
81
  height: HEADER_FADE_HEIGHT
81
82
  }) : null;
82
- const showRecent = showPreviousConversations && recentConversations.length > 0;
83
- const showViewAll = conversationCount > recentConversations.length;
83
+ const recent = showPreviousConversations ? recentConversation : undefined;
84
+ const hasLeadCards = !!recent || allowNewConversations;
84
85
  const showEmptyHint = showPreviousConversations && conversationCount === 0 && allowNewConversations;
85
86
  // One agent already has their face in the row above; repeating it reads as a bug.
86
87
  const showAvatarStack = teamAgents.length >= 2;
87
88
 
88
- // The start card is pulled up over the seam by a fixed amount, so the header
89
+ // The first card is pulled up over the seam by a fixed amount, so the header
89
90
  // pads its bottom by that same amount and the greeting never slides under it.
90
91
  // The header reaches up under the status bar (no white strip above it), so
91
92
  // it grows by that inset and keeps its content where it was.
@@ -93,8 +94,8 @@ export function HomeView({
93
94
  const headerStyle = [styles.header, topInset > 0 ? {
94
95
  paddingTop: spacing.xl + topInset,
95
96
  minHeight: HEADER_MIN_HEIGHT + topInset
96
- } : null, allowNewConversations ? {
97
- paddingBottom: HEADER_BOTTOM_PADDING + START_CARD_LIFT
97
+ } : null, hasLeadCards ? {
98
+ paddingBottom: HEADER_BOTTOM_PADDING + LEAD_CARD_LIFT
98
99
  } : null];
99
100
  const headerContent = /*#__PURE__*/_jsxs(_Fragment, {
100
101
  children: [/*#__PURE__*/_jsxs(View, {
@@ -155,10 +156,31 @@ export function HomeView({
155
156
  children: [headerContent, fade]
156
157
  }), /*#__PURE__*/_jsxs(View, {
157
158
  style: styles.body,
158
- children: [allowNewConversations ? /*#__PURE__*/_jsx(View, {
159
- style: styles.startCardSlot,
160
- children: /*#__PURE__*/_jsx(FadeSlideIn, {
159
+ children: [hasLeadCards ? /*#__PURE__*/_jsxs(View, {
160
+ style: styles.leadCards,
161
+ children: [recent ? /*#__PURE__*/_jsx(FadeSlideIn, {
161
162
  delay: 40,
163
+ children: /*#__PURE__*/_jsxs(View, {
164
+ style: styles.recentCard,
165
+ children: [/*#__PURE__*/_jsx(Text, {
166
+ style: styles.recentTitle,
167
+ accessibilityRole: "header",
168
+ children: labels.recentTitle
169
+ }), /*#__PURE__*/_jsx(ConversationRow, {
170
+ variant: "card",
171
+ conversation: recent,
172
+ color: color,
173
+ fallbackName: labels.team,
174
+ timeLabels: labels.time,
175
+ unreadCount: unreadByConversation[recent.id] ?? 0,
176
+ unreadLabel: labels.unread,
177
+ lastMessageLabels: labels.lastMessage,
178
+ horizontalPadding: spacing.xl,
179
+ onPress: () => onOpenConversation(recent.id)
180
+ })]
181
+ })
182
+ }) : null, allowNewConversations ? /*#__PURE__*/_jsx(FadeSlideIn, {
183
+ delay: 80,
162
184
  children: /*#__PURE__*/_jsxs(Pressable, {
163
185
  onPress: onStartConversation,
164
186
  accessibilityRole: "button",
@@ -191,11 +213,11 @@ export function HomeView({
191
213
  style: flipForRTL()
192
214
  })]
193
215
  })
194
- })
216
+ }) : null]
195
217
  }) : null, /*#__PURE__*/_jsxs(View, {
196
218
  style: styles.bodyContent,
197
219
  children: [offlineMessage ? /*#__PURE__*/_jsx(FadeSlideIn, {
198
- delay: 70,
220
+ delay: 110,
199
221
  children: /*#__PURE__*/_jsxs(View, {
200
222
  style: styles.offlineNotice,
201
223
  children: [/*#__PURE__*/_jsx(AlertIcon, {
@@ -205,45 +227,6 @@ export function HomeView({
205
227
  children: offlineMessage
206
228
  })]
207
229
  })
208
- }) : null, showRecent ? /*#__PURE__*/_jsxs(FadeSlideIn, {
209
- delay: 140,
210
- children: [/*#__PURE__*/_jsxs(View, {
211
- style: styles.recentHeader,
212
- children: [/*#__PURE__*/_jsx(Text, {
213
- style: styles.recentTitle,
214
- children: labels.recentTitle
215
- }), showViewAll ? /*#__PURE__*/_jsx(Pressable, {
216
- onPress: onViewConversations,
217
- accessibilityRole: "button",
218
- accessibilityLabel: labels.viewPrevious,
219
- hitSlop: 10,
220
- style: ({
221
- pressed
222
- }) => [styles.viewAllButton, pressed && globalStyles.pressed],
223
- children: /*#__PURE__*/_jsx(Text, {
224
- style: [styles.viewAllLabel, {
225
- color
226
- }],
227
- children: labels.viewAll
228
- })
229
- }) : null]
230
- }), /*#__PURE__*/_jsx(View, {
231
- style: [globalStyles.card, styles.recentCard],
232
- children: recentConversations.map((conversation, index) => /*#__PURE__*/_jsxs(Fragment, {
233
- children: [index > 0 ? /*#__PURE__*/_jsx(View, {
234
- style: [globalStyles.divider, styles.recentDivider]
235
- }) : null, /*#__PURE__*/_jsx(ConversationRow, {
236
- conversation: conversation,
237
- color: color,
238
- fallbackName: labels.team,
239
- timeLabels: labels.time,
240
- unreadCount: unreadByConversation[conversation.id] ?? 0,
241
- unreadLabel: labels.unread,
242
- horizontalPadding: spacing.lg,
243
- onPress: () => onOpenConversation(conversation.id)
244
- })]
245
- }, conversation.id))
246
- })]
247
230
  }) : null, /*#__PURE__*/_jsx(View, {
248
231
  style: styles.spacer,
249
232
  children: showEmptyHint ? /*#__PURE__*/_jsx(FadeSlideIn, {
@@ -1 +1 @@
1
- {"version":3,"names":["Fragment","useEffect","useRef","useState","Animated","Easing","Image","Pressable","ScrollView","StyleSheet","Text","View","Avatar","ConversationRow","FadeOverlay","GradientBackground","AlertIcon","ArrowRightIcon","ChatIcon","ChatOutlineIcon","CloseIcon","useReduceMotion","useTopInset","globalStyles","contrastingTextColor","palette","spacing","withAlpha","flipForRTL","personalizeGreeting","CLOSE_ICON_SIZE","HEADER_BOTTOM_PADDING","HEADER_FADE_HEIGHT","HEADER_MIN_HEIGHT","LOGO_HEIGHT","LOGO_MAX_WIDTH","START_CARD_LIFT","styles","jsx","_jsx","jsxs","_jsxs","_Fragment","resolveHeaderTextColor","config","fallbackColor","homeHeaderTextColor","white","ink","homeBackgroundType","homeBackgroundGradientStart","homeBackgroundColor","HomeView","color","visitorName","conversationCount","recentConversations","unreadByConversation","teamAgents","isOnline","offlineMessage","startConversationLabel","replyTimeLabel","allowNewConversations","showPreviousConversations","labels","onClose","onStartConversation","onViewConversations","onOpenConversation","heading","welcomeHeading","subheading","welcomeSubheading","textColor","secondaryTextColor","startIconColor","backgroundType","gradientColors","homeBackgroundGradientMiddle","homeBackgroundGradientEnd","filter","Boolean","fade","homeBackgroundFade","height","showRecent","length","showViewAll","showEmptyHint","showAvatarStack","topInset","headerStyle","header","paddingTop","xl","minHeight","paddingBottom","headerContent","children","style","headerTop","homeLogoUrl","HomeLogo","uri","onPress","accessibilityRole","accessibilityLabel","close","hitSlop","closeButton","size","headerSpacer","FadeSlideIn","screen","contentContainerStyle","contentContainer","keyboardShouldPersistTaps","homeBackgroundImageUrl","source","absoluteFill","resizeMode","accessibilityIgnoresInvertColors","imageScrim","colors","backgroundColor","body","startCardSlot","delay","android_ripple","borderSoft","pressed","startCard","startCardPressed","startIcon","startCopy","startTitle","startSubtitle","bodyContent","offlineNotice","offlineText","recentHeader","recentTitle","viewPrevious","viewAllButton","viewAllLabel","viewAll","card","recentCard","map","conversation","index","divider","recentDivider","fallbackName","team","timeLabels","time","unreadCount","id","unreadLabel","unread","horizontalPadding","lg","spacer","emptyHint","disabled","emptyHintText","noConversations","statusStrip","avatarStack","agent","avatar","name","avatarStackItem","avatarStackOverlap","statusDot","online","textSubtle","statusText","numberOfLines","statusOnline","statusAway","aspectRatio","setAspectRatio","logo","width","Math","min","onLoad","event","nativeEvent","reduceMotion","progress","Value","current","undefined","setValue","timing","toValue","duration","easing","out","quad","useNativeDriver","start","stopAnimation","translateY","interpolate","inputRange","outputRange","opacity","transform"],"sourceRoot":"../../../../../src","sources":["ui/screens/home/HomeView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useState","Animated","Easing","Image","Pressable","ScrollView","StyleSheet","Text","View","Avatar","ConversationRow","FadeOverlay","GradientBackground","AlertIcon","ArrowRightIcon","ChatIcon","ChatOutlineIcon","CloseIcon","useReduceMotion","useTopInset","globalStyles","contrastingTextColor","palette","spacing","withAlpha","flipForRTL","personalizeGreeting","CLOSE_ICON_SIZE","HEADER_BOTTOM_PADDING","HEADER_FADE_HEIGHT","HEADER_MIN_HEIGHT","LEAD_CARD_LIFT","LOGO_HEIGHT","LOGO_MAX_WIDTH","styles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","resolveHeaderTextColor","config","fallbackColor","homeHeaderTextColor","white","ink","homeBackgroundType","homeBackgroundGradientStart","homeBackgroundColor","HomeView","color","visitorName","conversationCount","recentConversation","unreadByConversation","teamAgents","isOnline","offlineMessage","startConversationLabel","replyTimeLabel","allowNewConversations","showPreviousConversations","labels","onClose","onStartConversation","onOpenConversation","heading","welcomeHeading","subheading","welcomeSubheading","textColor","secondaryTextColor","startIconColor","backgroundType","gradientColors","homeBackgroundGradientMiddle","homeBackgroundGradientEnd","filter","Boolean","fade","homeBackgroundFade","height","recent","undefined","hasLeadCards","showEmptyHint","showAvatarStack","length","topInset","headerStyle","header","paddingTop","xl","minHeight","paddingBottom","headerContent","children","style","headerTop","homeLogoUrl","HomeLogo","uri","onPress","accessibilityRole","accessibilityLabel","close","hitSlop","closeButton","size","headerSpacer","FadeSlideIn","screen","contentContainerStyle","contentContainer","keyboardShouldPersistTaps","homeBackgroundImageUrl","source","absoluteFill","resizeMode","accessibilityIgnoresInvertColors","imageScrim","colors","backgroundColor","body","leadCards","delay","recentCard","recentTitle","variant","conversation","fallbackName","team","timeLabels","time","unreadCount","id","unreadLabel","unread","lastMessageLabels","lastMessage","horizontalPadding","android_ripple","borderSoft","pressed","startCard","startCardPressed","startIcon","startCopy","startTitle","startSubtitle","bodyContent","offlineNotice","offlineText","spacer","emptyHint","disabled","emptyHintText","noConversations","statusStrip","avatarStack","map","agent","index","avatar","name","avatarStackItem","avatarStackOverlap","statusDot","online","textSubtle","statusText","numberOfLines","statusOnline","statusAway","aspectRatio","setAspectRatio","logo","width","Math","min","onLoad","event","nativeEvent","reduceMotion","progress","Value","current","setValue","timing","toValue","duration","easing","out","quad","useNativeDriver","start","stopAnimation","translateY","interpolate","inputRange","outputRange","opacity","transform"],"sourceRoot":"../../../../../src","sources":["ui/screens/home/HomeView.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,22 +5,22 @@
5
5
  * the sheet so the component and the styles can never disagree about them.
6
6
  */
7
7
 
8
- import { I18nManager, StyleSheet } from 'react-native';
9
- import { rowDividerInset } from "../../components/ConversationRow.js";
8
+ import { StyleSheet } from 'react-native';
10
9
  import { fontSize, palette, radius, shadows, spacing } from "../../styles/theme.js";
11
10
  import { START_ALIGN } from "../../utils/rtl.js";
12
11
 
13
12
  /**
14
13
  * Header geometry in dp, measured off the web widget so the two surfaces line
15
- * up: a tall header with the greeting pinned low, a start card that overhangs
14
+ * up: a tall header with the greeting pinned low, a first card that overhangs
16
15
  * the seam by a fixed amount rather than half its height, and a fade that is a
17
16
  * straight white ramp over the bottom of the header, starting just under the
18
17
  * heading.
19
18
  */
20
19
  export const HEADER_MIN_HEIGHT = 228;
21
- /** Between the greeting and whatever comes next: the seam, or the start card. */
20
+ /** Between the greeting and whatever comes next: the seam, or the first card. */
22
21
  export const HEADER_BOTTOM_PADDING = 36;
23
- export const START_CARD_LIFT = 28;
22
+ /** How far the first card (recent message, else the start card) rides up over the seam. */
23
+ export const LEAD_CARD_LIFT = 28;
24
24
  export const START_CARD_MIN_HEIGHT = 76;
25
25
  export const HEADER_FADE_HEIGHT = 90;
26
26
  export const CLOSE_BUTTON_SIZE = 28;
@@ -38,7 +38,7 @@ export const styles = StyleSheet.create({
38
38
  minHeight: HEADER_MIN_HEIGHT,
39
39
  paddingHorizontal: spacing.xl,
40
40
  paddingTop: spacing.xl,
41
- // When the start card is shown the component grows this to clear the card.
41
+ // When a card overhangs the seam the component grows this to clear it.
42
42
  paddingBottom: HEADER_BOTTOM_PADDING,
43
43
  overflow: 'hidden'
44
44
  },
@@ -81,7 +81,7 @@ export const styles = StyleSheet.create({
81
81
  fontSize: fontSize.body,
82
82
  lineHeight: fontSize.body * 1.4
83
83
  },
84
- // Meets the header on a straight seam. No top padding here: the start card
84
+ // Meets the header on a straight seam. No top padding here: the first card
85
85
  // is pulled up past this edge, and the rest of the content takes its spacing
86
86
  // from `bodyContent`.
87
87
  body: {
@@ -112,12 +112,36 @@ export const styles = StyleSheet.create({
112
112
  lineHeight: fontSize.meta * 1.4,
113
113
  color: palette.warningText
114
114
  },
115
- startCardSlot: {
116
- marginTop: -START_CARD_LIFT
115
+ leadCards: {
116
+ marginTop: -LEAD_CARD_LIFT,
117
+ gap: spacing.md
117
118
  },
118
- // Neutral and opaque, like the web card: it spans two backgrounds, and a
119
- // translucent or brand-tinted fill would let the header bleed through its
120
- // top or stain the seam. Shadowed because without it the half over the
119
+ // White like the row inside it, so a press is the only thing that tints it,
120
+ // with the start card's border and shadow so the two read as a stack. No
121
+ // `overflow: hidden`: it would clip the shadow on iOS, and the row never
122
+ // reaches the rounded corners anyway.
123
+ recentCard: {
124
+ paddingTop: spacing.lg,
125
+ paddingBottom: spacing.sm,
126
+ borderRadius: radius.lg,
127
+ borderWidth: StyleSheet.hairlineWidth,
128
+ borderColor: palette.border,
129
+ backgroundColor: palette.white,
130
+ ...shadows.card
131
+ },
132
+ // Inset like the start card's content, so the title, the avatar and the
133
+ // start card's icon share one left edge.
134
+ recentTitle: {
135
+ textAlign: START_ALIGN,
136
+ paddingHorizontal: spacing.xl,
137
+ marginBottom: spacing.xs,
138
+ fontSize: fontSize.title,
139
+ fontWeight: '600',
140
+ color: palette.ink
141
+ },
142
+ // Neutral and opaque, like the web card: as the first card it spans two
143
+ // backgrounds, and a translucent or brand-tinted fill would let the header
144
+ // bleed through its top or stain the seam. Shadowed because without it the half over the
121
145
  // header reads as a flat cut-out.
122
146
  startCard: {
123
147
  flexDirection: 'row',
@@ -158,39 +182,6 @@ export const styles = StyleSheet.create({
158
182
  color: palette.textSubtle,
159
183
  marginTop: 2
160
184
  },
161
- recentHeader: {
162
- flexDirection: 'row',
163
- alignItems: 'center',
164
- justifyContent: 'space-between',
165
- minHeight: 28,
166
- marginBottom: spacing.sm
167
- },
168
- recentTitle: {
169
- textAlign: START_ALIGN,
170
- fontSize: fontSize.caption,
171
- fontWeight: '700',
172
- color: palette.textMuted,
173
- letterSpacing: I18nManager.isRTL ? 0 : 0.6,
174
- textTransform: 'uppercase'
175
- },
176
- viewAllButton: {
177
- minHeight: 32,
178
- paddingHorizontal: spacing.xs,
179
- justifyContent: 'center'
180
- },
181
- viewAllLabel: {
182
- textAlign: START_ALIGN,
183
- fontSize: fontSize.meta,
184
- fontWeight: '600'
185
- },
186
- // Border rather than a shadow: `overflow: hidden` keeps the rows' ripple
187
- // inside the rounded corners, and would clip a shadow on iOS anyway.
188
- recentCard: {
189
- overflow: 'hidden'
190
- },
191
- recentDivider: {
192
- marginStart: rowDividerInset(spacing.lg)
193
- },
194
185
  // Absorbs the slack so the status strip stays pinned to the bottom, and
195
186
  // centers the empty hint when there is nothing else to show.
196
187
  spacer: {
@@ -1 +1 @@
1
- {"version":3,"names":["I18nManager","StyleSheet","rowDividerInset","fontSize","palette","radius","shadows","spacing","START_ALIGN","HEADER_MIN_HEIGHT","HEADER_BOTTOM_PADDING","START_CARD_LIFT","START_CARD_MIN_HEIGHT","HEADER_FADE_HEIGHT","CLOSE_BUTTON_SIZE","LOGO_HEIGHT","LOGO_MAX_WIDTH","CLOSE_ICON_SIZE","styles","create","contentContainer","flexGrow","header","minHeight","paddingHorizontal","xl","paddingTop","paddingBottom","overflow","imageScrim","absoluteFillObject","backgroundColor","headerTop","flexDirection","alignItems","justifyContent","headerSpacer","flex","logo","height","closeButton","marginStart","padding","borderRadius","pill","heading","textAlign","display","lineHeight","fontWeight","marginBottom","md","subheading","body","white","xxl","bodyContent","offlineNotice","gap","sm","warningBg","borderWidth","hairlineWidth","borderColor","warningBorder","lg","offlineText","meta","color","warningText","startCardSlot","marginTop","startCard","paddingVertical","border","surface","card","startCardPressed","opacity","startIcon","width","startCopy","minWidth","startTitle","title","ink","startSubtitle","textSubtle","recentHeader","recentTitle","caption","textMuted","letterSpacing","isRTL","textTransform","viewAllButton","xs","viewAllLabel","recentCard","recentDivider","spacer","emptyHint","emptyHintText","statusStrip","borderTopWidth","borderTopColor","borderSoft","avatarStack","avatarStackItem","avatarStackOverlap","statusDot","statusText"],"sourceRoot":"../../../../../src","sources":["ui/screens/home/HomeView.styles.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","fontSize","palette","radius","shadows","spacing","START_ALIGN","HEADER_MIN_HEIGHT","HEADER_BOTTOM_PADDING","LEAD_CARD_LIFT","START_CARD_MIN_HEIGHT","HEADER_FADE_HEIGHT","CLOSE_BUTTON_SIZE","LOGO_HEIGHT","LOGO_MAX_WIDTH","CLOSE_ICON_SIZE","styles","create","contentContainer","flexGrow","header","minHeight","paddingHorizontal","xl","paddingTop","paddingBottom","overflow","imageScrim","absoluteFillObject","backgroundColor","headerTop","flexDirection","alignItems","justifyContent","headerSpacer","flex","logo","height","closeButton","marginStart","padding","borderRadius","pill","heading","textAlign","display","lineHeight","fontWeight","marginBottom","md","subheading","body","white","xxl","bodyContent","offlineNotice","gap","sm","warningBg","borderWidth","hairlineWidth","borderColor","warningBorder","lg","offlineText","meta","color","warningText","leadCards","marginTop","recentCard","border","card","recentTitle","xs","title","ink","startCard","paddingVertical","surface","startCardPressed","opacity","startIcon","width","startCopy","minWidth","startTitle","startSubtitle","textSubtle","spacer","emptyHint","emptyHintText","statusStrip","borderTopWidth","borderTopColor","borderSoft","avatarStack","avatarStackItem","avatarStackOverlap","statusDot","statusText","textMuted"],"sourceRoot":"../../../../../src","sources":["ui/screens/home/HomeView.styles.ts"],"mappings":"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","ignoreList":[]}
@@ -32,6 +32,18 @@ export function stripHtml(html) {
32
32
  return decodeEntities(html.replace(/<br\s*\/?>/gi, '\n').replace(/<\/(p|div|li|h[1-6]|blockquote|tr)>/gi, '\n').replace(/<li[^>]*>/gi, '• ').replace(/<[^>]+>/g, '')).replace(/\n{3,}/g, '\n\n').trim();
33
33
  }
34
34
 
35
+ /**
36
+ * Agent reply HTML → the Markdown subset `Markdown` draws: paragraphs, line
37
+ * breaks, lists, bold, italic, inline code and links. Other tags keep their text.
38
+ */
39
+ export function htmlToMarkdown(html) {
40
+ if (!html) return '';
41
+ return decodeEntities(html.replace(/<br\s*\/?>/gi, '\n').replace(/<ol\b[^>]*>([\s\S]*?)<\/ol>/gi, (_list, items) => {
42
+ let number = 0;
43
+ return `\n\n${items.replace(/<li\b[^>]*>/gi, () => `\n${++number}. `)}\n\n`;
44
+ }).replace(/<li\b[^>]*>/gi, '\n- ').replace(/<\/(p|div|h[1-6]|blockquote|ul|tr)>/gi, '\n\n').replace(/<(strong|b)\b[^>]*>([\s\S]+?)<\/\1>/gi, '**$2**').replace(/<(em|i)\b[^>]*>([\s\S]+?)<\/\1>/gi, '*$2*').replace(/<code\b[^>]*>([\s\S]+?)<\/code>/gi, '`$1`').replace(/<a\b[^>]*?\bhref=(["'])(.*?)\1[^>]*>([\s\S]*?)<\/a>/gi, '[$3]($2)').replace(/<[^>]+>/g, '')).replace(/[ \t]+\n/g, '\n').replace(/\n{3,}/g, '\n\n').trim();
45
+ }
46
+
35
47
  /** Single-line flattening used for campaign cards and list snippets. */
36
48
  export function htmlToText(html) {
37
49
  if (!html) return '';
@@ -1 +1 @@
1
- {"version":3,"names":["ENTITIES","decodeNumericEntity","match","decimal","hex","code","undefined","Number","parseInt","valid","isInteger","String","fromCodePoint","decodeEntities","text","replace","stripHtml","html","trim","htmlToText","spaced","renderFallbackTokens"],"sourceRoot":"../../../../src","sources":["ui/utils/html.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,MAAMA,QAAgC,GAAG;EACvC,OAAO,EAAE,GAAG;EACZ,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,GAAG;EACX,QAAQ,EAAE,GAAG;EACb,OAAO,EAAE,GAAG;EACZ,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE;AACZ,CAAC;;AAED;AACA,SAASC,mBAAmBA,CAACC,KAAa,EAAEC,OAAgB,EAAEC,GAAY,EAAU;EAClF,MAAMC,IAAI,GAAGF,OAAO,KAAKG,SAAS,GAAGC,MAAM,CAACJ,OAAO,CAAC,GAAGK,QAAQ,CAACJ,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC;EAC9E,MAAMK,KAAK,GACTF,MAAM,CAACG,SAAS,CAACL,IAAI,CAAC,IAAIA,IAAI,GAAG,CAAC,IAAIA,IAAI,IAAI,QAAQ,KAAKA,IAAI,GAAG,MAAM,IAAIA,IAAI,GAAG,MAAM,CAAC;EAC5F,OAAOI,KAAK,GAAGE,MAAM,CAACC,aAAa,CAACP,IAAI,CAAC,GAAGH,KAAK;AACnD;AAEA,OAAO,SAASW,cAAcA,CAACC,IAAY,EAAU;EACnD,OAAOA,IAAI,CACRC,OAAO,CAAC,mCAAmC,EAAGb,KAAK,IAAKF,QAAQ,CAACE,KAAK,CAAC,IAAIA,KAAK,CAAC,CACjFa,OAAO,CAAC,0CAA0C,EAAEd,mBAAmB,CAAC;AAC7E;;AAEA;AACA,OAAO,SAASe,SAASA,CAACC,IAAY,EAAU;EAC9C,IAAI,CAACA,IAAI,EAAE,OAAO,EAAE;EACpB,OAAOJ,cAAc,CACnBI,IAAI,CACDF,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAC7BA,OAAO,CAAC,uCAAuC,EAAE,IAAI,CAAC,CACtDA,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAC5BA,OAAO,CAAC,UAAU,EAAE,EAAE,CAC3B,CAAC,CACEA,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAC1BG,IAAI,CAAC,CAAC;AACX;;AAEA;AACA,OAAO,SAASC,UAAUA,CAACF,IAAY,EAAU;EAC/C,IAAI,CAACA,IAAI,EAAE,OAAO,EAAE;EACpB,MAAMG,MAAM,GAAGH,IAAI,CAChBF,OAAO,CAAC,oCAAoC,EAAE,KAAK,CAAC,CACpDA,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;EAC/B,OAAOM,oBAAoB,CACzBR,cAAc,CAACO,MAAM,CAACL,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAC5CA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CACpBG,IAAI,CAAC,CACV,CAAC;AACH;;AAEA;AACA,SAASG,oBAAoBA,CAACP,IAAY,EAAU;EAClD,OAAOA,IAAI,CACRC,OAAO,CAAC,mCAAmC,EAAE,OAAO,CAAC,CACrDA,OAAO,CAAC,kCAAkC,EAAE,OAAO,CAAC,CACpDA,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAC5CA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CACpBG,IAAI,CAAC,CAAC;AACX","ignoreList":[]}
1
+ {"version":3,"names":["ENTITIES","decodeNumericEntity","match","decimal","hex","code","undefined","Number","parseInt","valid","isInteger","String","fromCodePoint","decodeEntities","text","replace","stripHtml","html","trim","htmlToMarkdown","_list","items","number","htmlToText","spaced","renderFallbackTokens"],"sourceRoot":"../../../../src","sources":["ui/utils/html.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Lets images load a few at a time, highest priority first. The chat runs its
5
+ * large images through it: Android holds a whole download in a memory pool
6
+ * capped at three quarters of the app's heap (192 MB on a 256 MB phone), so
7
+ * several 30–50 MB photos at once overflow it and every one of them fails.
8
+ *
9
+ * No `react-native` import on purpose: it stays testable in plain Node.
10
+ */
11
+ export class ImageLoadQueue {
12
+ // Key → priority, for both: an image paused off screen waits again at its own.
13
+ waiting = new Map();
14
+ loading = new Map();
15
+ done = new Set();
16
+ /** The images on screen; null until the list says, so all of them count. */
17
+ onScreen = null;
18
+ listeners = new Set();
19
+ scheduled = false;
20
+ constructor(concurrency) {
21
+ this.concurrency = concurrency;
22
+ }
23
+
24
+ /** Queues a mounted image; the returned cleanup gives up its place. */
25
+ add(key, priority) {
26
+ if (!this.done.has(key) && !this.loading.has(key)) {
27
+ this.waiting.set(key, Number.isFinite(priority) ? priority : 0);
28
+ this.schedule();
29
+ }
30
+ return () => this.remove(key);
31
+ }
32
+
33
+ /** Loaded or failed: it keeps showing, and the next image may start. */
34
+ finish(key) {
35
+ this.waiting.delete(key);
36
+ this.done.add(key);
37
+ if (this.loading.delete(key)) this.advance();
38
+ }
39
+ canLoad = key => this.done.has(key) || this.loading.has(key);
40
+ subscribe = listener => {
41
+ this.listeners.add(listener);
42
+ return () => {
43
+ this.listeners.delete(listener);
44
+ };
45
+ };
46
+
47
+ /**
48
+ * The images now on screen. One that scrolls off before it has loaded
49
+ * gives up its place and waits, so it can't hold up the ones in view:
50
+ * Android detaches a row scrolled out of view, and a detached image never
51
+ * finishes loading. Only images on screen are started.
52
+ */
53
+ setOnScreen(keys) {
54
+ this.onScreen = new Set(keys);
55
+ let paused = false;
56
+ this.loading.forEach((priority, key) => {
57
+ if (this.onScreen.has(key)) return;
58
+ this.loading.delete(key);
59
+ this.waiting.set(key, priority);
60
+ paused = true;
61
+ });
62
+ if (!this.advance() && paused) this.notify();
63
+ }
64
+
65
+ /** Scrolled out of the list before it loaded: it queues again if it comes back. */
66
+ remove(key) {
67
+ this.waiting.delete(key);
68
+ if (this.loading.delete(key)) this.advance();
69
+ }
70
+
71
+ /**
72
+ * Hands out places once the render that mounted an image is done, so all
73
+ * the images mounted together are queued first, whatever order they
74
+ * mounted in.
75
+ */
76
+ schedule() {
77
+ if (this.scheduled) return;
78
+ this.scheduled = true;
79
+ Promise.resolve().then(() => {
80
+ this.scheduled = false;
81
+ this.advance();
82
+ });
83
+ }
84
+
85
+ /** Starts what fits; true when anything started (listeners were told). */
86
+ advance() {
87
+ let started = false;
88
+ while (this.loading.size < this.concurrency) {
89
+ let next = null;
90
+ let best = -Infinity;
91
+ this.waiting.forEach((priority, key) => {
92
+ if (priority > best && (!this.onScreen || this.onScreen.has(key))) {
93
+ best = priority;
94
+ next = key;
95
+ }
96
+ });
97
+ if (next === null) break;
98
+ this.waiting.delete(next);
99
+ this.loading.set(next, best);
100
+ started = true;
101
+ }
102
+ if (started) this.notify();
103
+ return started;
104
+ }
105
+ notify() {
106
+ this.listeners.forEach(listener => listener());
107
+ }
108
+ }
109
+ //# sourceMappingURL=image-load-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ImageLoadQueue","waiting","Map","loading","done","Set","onScreen","listeners","scheduled","constructor","concurrency","add","key","priority","has","set","Number","isFinite","schedule","remove","finish","delete","advance","canLoad","subscribe","listener","setOnScreen","keys","paused","forEach","notify","Promise","resolve","then","started","size","next","best","Infinity"],"sourceRoot":"../../../../src","sources":["ui/utils/image-load-queue.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,cAAc,CAAC;EAC1B;EACiBC,OAAO,GAAG,IAAIC,GAAG,CAAiB,CAAC;EACnCC,OAAO,GAAG,IAAID,GAAG,CAAiB,CAAC;EACnCE,IAAI,GAAG,IAAIC,GAAG,CAAS,CAAC;EACzC;EACQC,QAAQ,GAA+B,IAAI;EAClCC,SAAS,GAAG,IAAIF,GAAG,CAAa,CAAC;EAC1CG,SAAS,GAAG,KAAK;EAEzBC,WAAWA,CAAkBC,WAAmB,EAAE;IAAA,KAArBA,WAAmB,GAAnBA,WAAmB;EAAG;;EAEnD;EACAC,GAAGA,CAACC,GAAW,EAAEC,QAAgB,EAAc;IAC7C,IAAI,CAAC,IAAI,CAACT,IAAI,CAACU,GAAG,CAACF,GAAG,CAAC,IAAI,CAAC,IAAI,CAACT,OAAO,CAACW,GAAG,CAACF,GAAG,CAAC,EAAE;MACjD,IAAI,CAACX,OAAO,CAACc,GAAG,CAACH,GAAG,EAAEI,MAAM,CAACC,QAAQ,CAACJ,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAAC,CAAC;MAC/D,IAAI,CAACK,QAAQ,CAAC,CAAC;IACjB;IACA,OAAO,MAAM,IAAI,CAACC,MAAM,CAACP,GAAG,CAAC;EAC/B;;EAEA;EACAQ,MAAMA,CAACR,GAAW,EAAQ;IACxB,IAAI,CAACX,OAAO,CAACoB,MAAM,CAACT,GAAG,CAAC;IACxB,IAAI,CAACR,IAAI,CAACO,GAAG,CAACC,GAAG,CAAC;IAClB,IAAI,IAAI,CAACT,OAAO,CAACkB,MAAM,CAACT,GAAG,CAAC,EAAE,IAAI,CAACU,OAAO,CAAC,CAAC;EAC9C;EAEAC,OAAO,GAAIX,GAAW,IAAc,IAAI,CAACR,IAAI,CAACU,GAAG,CAACF,GAAG,CAAC,IAAI,IAAI,CAACT,OAAO,CAACW,GAAG,CAACF,GAAG,CAAC;EAE/EY,SAAS,GAAIC,QAAoB,IAAmB;IAClD,IAAI,CAAClB,SAAS,CAACI,GAAG,CAACc,QAAQ,CAAC;IAC5B,OAAO,MAAM;MACX,IAAI,CAAClB,SAAS,CAACc,MAAM,CAACI,QAAQ,CAAC;IACjC,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,WAAWA,CAACC,IAAsB,EAAQ;IACxC,IAAI,CAACrB,QAAQ,GAAG,IAAID,GAAG,CAACsB,IAAI,CAAC;IAC7B,IAAIC,MAAM,GAAG,KAAK;IAClB,IAAI,CAACzB,OAAO,CAAC0B,OAAO,CAAC,CAAChB,QAAQ,EAAED,GAAG,KAAK;MACtC,IAAI,IAAI,CAACN,QAAQ,CAAEQ,GAAG,CAACF,GAAG,CAAC,EAAE;MAC7B,IAAI,CAACT,OAAO,CAACkB,MAAM,CAACT,GAAG,CAAC;MACxB,IAAI,CAACX,OAAO,CAACc,GAAG,CAACH,GAAG,EAAEC,QAAQ,CAAC;MAC/Be,MAAM,GAAG,IAAI;IACf,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAACN,OAAO,CAAC,CAAC,IAAIM,MAAM,EAAE,IAAI,CAACE,MAAM,CAAC,CAAC;EAC9C;;EAEA;EACQX,MAAMA,CAACP,GAAW,EAAQ;IAChC,IAAI,CAACX,OAAO,CAACoB,MAAM,CAACT,GAAG,CAAC;IACxB,IAAI,IAAI,CAACT,OAAO,CAACkB,MAAM,CAACT,GAAG,CAAC,EAAE,IAAI,CAACU,OAAO,CAAC,CAAC;EAC9C;;EAEA;AACF;AACA;AACA;AACA;EACUJ,QAAQA,CAAA,EAAS;IACvB,IAAI,IAAI,CAACV,SAAS,EAAE;IACpB,IAAI,CAACA,SAAS,GAAG,IAAI;IACrBuB,OAAO,CAACC,OAAO,CAAC,CAAC,CAACC,IAAI,CAAC,MAAM;MAC3B,IAAI,CAACzB,SAAS,GAAG,KAAK;MACtB,IAAI,CAACc,OAAO,CAAC,CAAC;IAChB,CAAC,CAAC;EACJ;;EAEA;EACQA,OAAOA,CAAA,EAAY;IACzB,IAAIY,OAAO,GAAG,KAAK;IACnB,OAAO,IAAI,CAAC/B,OAAO,CAACgC,IAAI,GAAG,IAAI,CAACzB,WAAW,EAAE;MAC3C,IAAI0B,IAAmB,GAAG,IAAI;MAC9B,IAAIC,IAAI,GAAG,CAACC,QAAQ;MACpB,IAAI,CAACrC,OAAO,CAAC4B,OAAO,CAAC,CAAChB,QAAQ,EAAED,GAAG,KAAK;QACtC,IAAIC,QAAQ,GAAGwB,IAAI,KAAK,CAAC,IAAI,CAAC/B,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAACQ,GAAG,CAACF,GAAG,CAAC,CAAC,EAAE;UACjEyB,IAAI,GAAGxB,QAAQ;UACfuB,IAAI,GAAGxB,GAAG;QACZ;MACF,CAAC,CAAC;MACF,IAAIwB,IAAI,KAAK,IAAI,EAAE;MACnB,IAAI,CAACnC,OAAO,CAACoB,MAAM,CAACe,IAAI,CAAC;MACzB,IAAI,CAACjC,OAAO,CAACY,GAAG,CAACqB,IAAI,EAAEC,IAAI,CAAC;MAC5BH,OAAO,GAAG,IAAI;IAChB;IACA,IAAIA,OAAO,EAAE,IAAI,CAACJ,MAAM,CAAC,CAAC;IAC1B,OAAOI,OAAO;EAChB;EAEQJ,MAAMA,CAAA,EAAS;IACrB,IAAI,CAACvB,SAAS,CAACsB,OAAO,CAAEJ,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EAClD;AACF","ignoreList":[]}