@repzo/widget-react-native 1.3.1 → 1.5.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 (240) hide show
  1. package/CHANGELOG.md +173 -5
  2. package/README.md +99 -13
  3. package/lib/commonjs/api/client.js +125 -28
  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/index.js.map +1 -1
  14. package/lib/commonjs/locales.js +12 -3
  15. package/lib/commonjs/locales.js.map +1 -1
  16. package/lib/commonjs/state/user-update-queue.js +168 -0
  17. package/lib/commonjs/state/user-update-queue.js.map +1 -0
  18. package/lib/commonjs/state/widget-store.js +303 -33
  19. package/lib/commonjs/state/widget-store.js.map +1 -1
  20. package/lib/commonjs/storage.js +3 -1
  21. package/lib/commonjs/storage.js.map +1 -1
  22. package/lib/commonjs/types.js.map +1 -1
  23. package/lib/commonjs/ui/WidgetProvider.js +33 -13
  24. package/lib/commonjs/ui/WidgetProvider.js.map +1 -1
  25. package/lib/commonjs/ui/components/AttachmentChips.js +109 -40
  26. package/lib/commonjs/ui/components/AttachmentChips.js.map +1 -1
  27. package/lib/commonjs/ui/components/ConversationRow.js +65 -10
  28. package/lib/commonjs/ui/components/ConversationRow.js.map +1 -1
  29. package/lib/commonjs/ui/components/ImageViewer.js +229 -24
  30. package/lib/commonjs/ui/components/ImageViewer.js.map +1 -1
  31. package/lib/commonjs/ui/components/RatingCard.js +5 -2
  32. package/lib/commonjs/ui/components/RatingCard.js.map +1 -1
  33. package/lib/commonjs/ui/components/ZoomableImage.js +58 -10
  34. package/lib/commonjs/ui/components/ZoomableImage.js.map +1 -1
  35. package/lib/commonjs/ui/hooks/use-retained-state.js +39 -0
  36. package/lib/commonjs/ui/hooks/use-retained-state.js.map +1 -0
  37. package/lib/commonjs/ui/screens/chat/ChatView.js +651 -165
  38. package/lib/commonjs/ui/screens/chat/ChatView.js.map +1 -1
  39. package/lib/commonjs/ui/screens/chat/ChatView.styles.js +138 -1
  40. package/lib/commonjs/ui/screens/chat/ChatView.styles.js.map +1 -1
  41. package/lib/commonjs/ui/screens/conversations/ConversationsList.js +1 -0
  42. package/lib/commonjs/ui/screens/conversations/ConversationsList.js.map +1 -1
  43. package/lib/commonjs/ui/screens/home/HomeView.js +38 -55
  44. package/lib/commonjs/ui/screens/home/HomeView.js.map +1 -1
  45. package/lib/commonjs/ui/screens/home/HomeView.styles.js +36 -45
  46. package/lib/commonjs/ui/screens/home/HomeView.styles.js.map +1 -1
  47. package/lib/commonjs/ui/utils/html.js +13 -0
  48. package/lib/commonjs/ui/utils/html.js.map +1 -1
  49. package/lib/commonjs/ui/utils/image-load-queue.js +114 -0
  50. package/lib/commonjs/ui/utils/image-load-queue.js.map +1 -0
  51. package/lib/commonjs/ui/utils/inline-attachments.js +88 -0
  52. package/lib/commonjs/ui/utils/inline-attachments.js.map +1 -0
  53. package/lib/module/api/client.js +123 -27
  54. package/lib/module/api/client.js.map +1 -1
  55. package/lib/module/attachments/file-size.js +47 -0
  56. package/lib/module/attachments/file-size.js.map +1 -0
  57. package/lib/module/attachments/local-previews.js +33 -0
  58. package/lib/module/attachments/local-previews.js.map +1 -0
  59. package/lib/module/attachments/pickers.js +15 -25
  60. package/lib/module/attachments/pickers.js.map +1 -1
  61. package/lib/module/i18n.js +22 -3
  62. package/lib/module/i18n.js.map +1 -1
  63. package/lib/module/index.js.map +1 -1
  64. package/lib/module/locales.js +12 -3
  65. package/lib/module/locales.js.map +1 -1
  66. package/lib/module/state/user-update-queue.js +163 -0
  67. package/lib/module/state/user-update-queue.js.map +1 -0
  68. package/lib/module/state/widget-store.js +305 -35
  69. package/lib/module/state/widget-store.js.map +1 -1
  70. package/lib/module/storage.js +2 -0
  71. package/lib/module/storage.js.map +1 -1
  72. package/lib/module/types.js.map +1 -1
  73. package/lib/module/ui/WidgetProvider.js +33 -13
  74. package/lib/module/ui/WidgetProvider.js.map +1 -1
  75. package/lib/module/ui/components/AttachmentChips.js +111 -42
  76. package/lib/module/ui/components/AttachmentChips.js.map +1 -1
  77. package/lib/module/ui/components/ConversationRow.js +65 -10
  78. package/lib/module/ui/components/ConversationRow.js.map +1 -1
  79. package/lib/module/ui/components/ImageViewer.js +231 -26
  80. package/lib/module/ui/components/ImageViewer.js.map +1 -1
  81. package/lib/module/ui/components/RatingCard.js +5 -2
  82. package/lib/module/ui/components/RatingCard.js.map +1 -1
  83. package/lib/module/ui/components/ZoomableImage.js +58 -10
  84. package/lib/module/ui/components/ZoomableImage.js.map +1 -1
  85. package/lib/module/ui/hooks/use-retained-state.js +34 -0
  86. package/lib/module/ui/hooks/use-retained-state.js.map +1 -0
  87. package/lib/module/ui/screens/chat/ChatView.js +655 -169
  88. package/lib/module/ui/screens/chat/ChatView.js.map +1 -1
  89. package/lib/module/ui/screens/chat/ChatView.styles.js +140 -2
  90. package/lib/module/ui/screens/chat/ChatView.styles.js.map +1 -1
  91. package/lib/module/ui/screens/conversations/ConversationsList.js +1 -0
  92. package/lib/module/ui/screens/conversations/ConversationsList.js.map +1 -1
  93. package/lib/module/ui/screens/home/HomeView.js +40 -57
  94. package/lib/module/ui/screens/home/HomeView.js.map +1 -1
  95. package/lib/module/ui/screens/home/HomeView.styles.js +36 -45
  96. package/lib/module/ui/screens/home/HomeView.styles.js.map +1 -1
  97. package/lib/module/ui/utils/html.js +12 -0
  98. package/lib/module/ui/utils/html.js.map +1 -1
  99. package/lib/module/ui/utils/image-load-queue.js +109 -0
  100. package/lib/module/ui/utils/image-load-queue.js.map +1 -0
  101. package/lib/module/ui/utils/inline-attachments.js +85 -0
  102. package/lib/module/ui/utils/inline-attachments.js.map +1 -0
  103. package/lib/typescript/commonjs/api/client.d.ts +20 -6
  104. package/lib/typescript/commonjs/api/client.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/attachments/file-size.d.ts +15 -0
  106. package/lib/typescript/commonjs/attachments/file-size.d.ts.map +1 -0
  107. package/lib/typescript/commonjs/attachments/local-previews.d.ts +14 -0
  108. package/lib/typescript/commonjs/attachments/local-previews.d.ts.map +1 -0
  109. package/lib/typescript/commonjs/attachments/pickers.d.ts +15 -2
  110. package/lib/typescript/commonjs/attachments/pickers.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/i18n.d.ts +12 -3
  112. package/lib/typescript/commonjs/i18n.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/index.d.ts +5 -0
  114. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/locales.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/state/user-update-queue.d.ts +62 -0
  117. package/lib/typescript/commonjs/state/user-update-queue.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/state/widget-store.d.ts +44 -1
  119. package/lib/typescript/commonjs/state/widget-store.d.ts.map +1 -1
  120. package/lib/typescript/commonjs/storage.d.ts +2 -0
  121. package/lib/typescript/commonjs/storage.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/types.d.ts +53 -0
  123. package/lib/typescript/commonjs/types.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/ui/WidgetProvider.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/ui/components/AttachmentChips.d.ts +13 -3
  126. package/lib/typescript/commonjs/ui/components/AttachmentChips.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/ui/components/ConversationRow.d.ts +15 -1
  128. package/lib/typescript/commonjs/ui/components/ConversationRow.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/ui/components/ImageViewer.d.ts +26 -6
  130. package/lib/typescript/commonjs/ui/components/ImageViewer.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/ui/components/RatingCard.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/ui/components/ZoomableImage.d.ts +10 -1
  133. package/lib/typescript/commonjs/ui/components/ZoomableImage.d.ts.map +1 -1
  134. package/lib/typescript/commonjs/ui/hooks/use-retained-state.d.ts +11 -0
  135. package/lib/typescript/commonjs/ui/hooks/use-retained-state.d.ts.map +1 -0
  136. package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts +4 -4
  137. package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts +144 -0
  139. package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts +26 -1
  141. package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts.map +1 -1
  142. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.types.d.ts +2 -0
  144. package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.types.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/ui/screens/home/HomeView.d.ts +7 -5
  146. package/lib/typescript/commonjs/ui/screens/home/HomeView.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/ui/screens/home/HomeView.styles.d.ts +30 -35
  148. package/lib/typescript/commonjs/ui/screens/home/HomeView.styles.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/ui/screens/home/HomeView.types.d.ts +5 -6
  150. package/lib/typescript/commonjs/ui/screens/home/HomeView.types.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/ui/utils/html.d.ts +5 -0
  152. package/lib/typescript/commonjs/ui/utils/html.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/ui/utils/image-load-queue.d.ts +44 -0
  154. package/lib/typescript/commonjs/ui/utils/image-load-queue.d.ts.map +1 -0
  155. package/lib/typescript/commonjs/ui/utils/inline-attachments.d.ts +29 -0
  156. package/lib/typescript/commonjs/ui/utils/inline-attachments.d.ts.map +1 -0
  157. package/lib/typescript/module/api/client.d.ts +20 -6
  158. package/lib/typescript/module/api/client.d.ts.map +1 -1
  159. package/lib/typescript/module/attachments/file-size.d.ts +15 -0
  160. package/lib/typescript/module/attachments/file-size.d.ts.map +1 -0
  161. package/lib/typescript/module/attachments/local-previews.d.ts +14 -0
  162. package/lib/typescript/module/attachments/local-previews.d.ts.map +1 -0
  163. package/lib/typescript/module/attachments/pickers.d.ts +15 -2
  164. package/lib/typescript/module/attachments/pickers.d.ts.map +1 -1
  165. package/lib/typescript/module/i18n.d.ts +12 -3
  166. package/lib/typescript/module/i18n.d.ts.map +1 -1
  167. package/lib/typescript/module/index.d.ts +5 -0
  168. package/lib/typescript/module/index.d.ts.map +1 -1
  169. package/lib/typescript/module/locales.d.ts.map +1 -1
  170. package/lib/typescript/module/state/user-update-queue.d.ts +62 -0
  171. package/lib/typescript/module/state/user-update-queue.d.ts.map +1 -0
  172. package/lib/typescript/module/state/widget-store.d.ts +44 -1
  173. package/lib/typescript/module/state/widget-store.d.ts.map +1 -1
  174. package/lib/typescript/module/storage.d.ts +2 -0
  175. package/lib/typescript/module/storage.d.ts.map +1 -1
  176. package/lib/typescript/module/types.d.ts +53 -0
  177. package/lib/typescript/module/types.d.ts.map +1 -1
  178. package/lib/typescript/module/ui/WidgetProvider.d.ts.map +1 -1
  179. package/lib/typescript/module/ui/components/AttachmentChips.d.ts +13 -3
  180. package/lib/typescript/module/ui/components/AttachmentChips.d.ts.map +1 -1
  181. package/lib/typescript/module/ui/components/ConversationRow.d.ts +15 -1
  182. package/lib/typescript/module/ui/components/ConversationRow.d.ts.map +1 -1
  183. package/lib/typescript/module/ui/components/ImageViewer.d.ts +26 -6
  184. package/lib/typescript/module/ui/components/ImageViewer.d.ts.map +1 -1
  185. package/lib/typescript/module/ui/components/RatingCard.d.ts.map +1 -1
  186. package/lib/typescript/module/ui/components/ZoomableImage.d.ts +10 -1
  187. package/lib/typescript/module/ui/components/ZoomableImage.d.ts.map +1 -1
  188. package/lib/typescript/module/ui/hooks/use-retained-state.d.ts +11 -0
  189. package/lib/typescript/module/ui/hooks/use-retained-state.d.ts.map +1 -0
  190. package/lib/typescript/module/ui/screens/chat/ChatView.d.ts +4 -4
  191. package/lib/typescript/module/ui/screens/chat/ChatView.d.ts.map +1 -1
  192. package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts +144 -0
  193. package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts.map +1 -1
  194. package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts +26 -1
  195. package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts.map +1 -1
  196. package/lib/typescript/module/ui/screens/conversations/ConversationsList.d.ts.map +1 -1
  197. package/lib/typescript/module/ui/screens/conversations/ConversationsList.types.d.ts +2 -0
  198. package/lib/typescript/module/ui/screens/conversations/ConversationsList.types.d.ts.map +1 -1
  199. package/lib/typescript/module/ui/screens/home/HomeView.d.ts +7 -5
  200. package/lib/typescript/module/ui/screens/home/HomeView.d.ts.map +1 -1
  201. package/lib/typescript/module/ui/screens/home/HomeView.styles.d.ts +30 -35
  202. package/lib/typescript/module/ui/screens/home/HomeView.styles.d.ts.map +1 -1
  203. package/lib/typescript/module/ui/screens/home/HomeView.types.d.ts +5 -6
  204. package/lib/typescript/module/ui/screens/home/HomeView.types.d.ts.map +1 -1
  205. package/lib/typescript/module/ui/utils/html.d.ts +5 -0
  206. package/lib/typescript/module/ui/utils/html.d.ts.map +1 -1
  207. package/lib/typescript/module/ui/utils/image-load-queue.d.ts +44 -0
  208. package/lib/typescript/module/ui/utils/image-load-queue.d.ts.map +1 -0
  209. package/lib/typescript/module/ui/utils/inline-attachments.d.ts +29 -0
  210. package/lib/typescript/module/ui/utils/inline-attachments.d.ts.map +1 -0
  211. package/package.json +1 -1
  212. package/src/api/client.ts +149 -38
  213. package/src/attachments/file-size.ts +42 -0
  214. package/src/attachments/local-previews.ts +32 -0
  215. package/src/attachments/pickers.ts +23 -25
  216. package/src/i18n.ts +22 -3
  217. package/src/index.tsx +5 -0
  218. package/src/locales.ts +12 -3
  219. package/src/state/user-update-queue.ts +178 -0
  220. package/src/state/widget-store.ts +346 -51
  221. package/src/storage.ts +2 -0
  222. package/src/types.ts +53 -0
  223. package/src/ui/WidgetProvider.tsx +35 -8
  224. package/src/ui/components/AttachmentChips.tsx +100 -29
  225. package/src/ui/components/ConversationRow.tsx +90 -9
  226. package/src/ui/components/ImageViewer.tsx +242 -24
  227. package/src/ui/components/RatingCard.tsx +5 -2
  228. package/src/ui/components/ZoomableImage.tsx +58 -5
  229. package/src/ui/hooks/use-retained-state.ts +35 -0
  230. package/src/ui/screens/chat/ChatView.styles.ts +139 -1
  231. package/src/ui/screens/chat/ChatView.tsx +735 -198
  232. package/src/ui/screens/chat/ChatView.types.ts +26 -1
  233. package/src/ui/screens/conversations/ConversationsList.tsx +1 -0
  234. package/src/ui/screens/conversations/ConversationsList.types.ts +2 -0
  235. package/src/ui/screens/home/HomeView.styles.ts +36 -45
  236. package/src/ui/screens/home/HomeView.tsx +54 -70
  237. package/src/ui/screens/home/HomeView.types.ts +5 -6
  238. package/src/ui/utils/html.ts +26 -0
  239. package/src/ui/utils/image-load-queue.ts +108 -0
  240. package/src/ui/utils/inline-attachments.ts +71 -0
@@ -15,6 +15,7 @@ import { forwardDirection, START_ALIGN } from "../utils/rtl.js";
15
15
  import { fontSize, palette, spacing } from "../styles/theme.js";
16
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
17
  const AVATAR_SIZE = 40;
18
+ const CARD_AVATAR_SIZE = 32;
18
19
  export function ConversationRow({
19
20
  conversation,
20
21
  color,
@@ -22,47 +23,59 @@ export function ConversationRow({
22
23
  timeLabels,
23
24
  unreadCount = 0,
24
25
  unreadLabel,
26
+ lastMessageLabels,
25
27
  horizontalPadding = spacing.xl,
28
+ variant = 'list',
26
29
  onPress
27
30
  }) {
31
+ const card = variant === 'card';
28
32
  const displayName = conversation.agentName || fallbackName;
29
33
  const hasUnread = unreadCount > 0;
30
34
  const unreadSuffix = hasUnread && unreadLabel ? `. ${formatLabel(unreadLabel, {
31
35
  count: unreadCount
32
36
  })}` : '';
37
+ const attachment = conversation.lastMessageAttachment;
38
+ // "Photo" or "File" over Workstation's "2 attachments".
39
+ const snippet = attachment && lastMessageLabels?.[attachment] || conversation.snippet || '';
40
+ // "You: " is drawn a shade stronger than the message, so it reads as a label.
41
+ const [youBefore, youAfter] = snippet && conversation.lastMessageFromVisitor && lastMessageLabels?.you ? splitAround(lastMessageLabels.you, '{message}') : ['', ''];
42
+ const snippetLabel = `${youBefore}${snippet}${youAfter}`;
33
43
  return /*#__PURE__*/_jsxs(Pressable, {
34
44
  onPress: onPress,
35
45
  accessibilityRole: "button",
36
- accessibilityLabel: `${conversation.snippet ? `${displayName}. ${conversation.snippet}` : displayName}${unreadSuffix}`,
46
+ accessibilityLabel: `${snippet ? `${displayName}. ${snippetLabel}` : displayName}${unreadSuffix}`,
37
47
  android_ripple: {
38
48
  color: palette.borderSoft
39
49
  },
40
50
  style: ({
41
51
  pressed
42
- }) => [styles.row, {
52
+ }) => [styles.row, card && cardStyles.row, {
43
53
  paddingHorizontal: horizontalPadding
44
54
  }, pressed && styles.rowPressed],
45
55
  children: [/*#__PURE__*/_jsx(Avatar, {
46
56
  avatar: conversation.agentAvatar,
47
57
  name: conversation.agentName,
48
- size: AVATAR_SIZE,
58
+ size: card ? CARD_AVATAR_SIZE : AVATAR_SIZE,
49
59
  color: color
50
60
  }), /*#__PURE__*/_jsxs(View, {
51
61
  style: styles.content,
52
62
  children: [/*#__PURE__*/_jsxs(View, {
53
- style: styles.topLine,
63
+ style: [styles.topLine, card && cardStyles.topLine],
54
64
  children: [/*#__PURE__*/_jsx(Text, {
55
- style: [styles.name, hasUnread && styles.nameUnread],
65
+ style: card ? [cardStyles.name, hasUnread && cardStyles.nameUnread] : [styles.name, hasUnread && styles.nameUnread],
56
66
  numberOfLines: 1,
57
67
  children: displayName
58
68
  }), /*#__PURE__*/_jsx(Text, {
59
- style: styles.time,
69
+ style: [styles.time, card && cardStyles.time],
60
70
  children: conversation.lastMessageAt ? formatRelativeTime(conversation.lastMessageAt, timeLabels) : ''
61
71
  })]
62
- }), conversation.snippet ? /*#__PURE__*/_jsx(Text, {
63
- style: [styles.snippet, hasUnread && styles.snippetUnread],
72
+ }), snippet ? /*#__PURE__*/_jsxs(Text, {
73
+ style: [styles.snippet, card && cardStyles.snippet, hasUnread && styles.snippetUnread],
64
74
  numberOfLines: 2,
65
- children: conversation.snippet
75
+ children: [youBefore ? /*#__PURE__*/_jsx(Text, {
76
+ style: styles.snippetYou,
77
+ children: youBefore
78
+ }) : null, snippet, youAfter]
66
79
  }) : null]
67
80
  }), hasUnread ? /*#__PURE__*/_jsx(View, {
68
81
  style: [styles.badge, {
@@ -72,7 +85,7 @@ export function ConversationRow({
72
85
  style: styles.badgeLabel,
73
86
  children: unreadCount > 9 ? '9+' : unreadCount
74
87
  })
75
- }) : /*#__PURE__*/_jsx(ChevronIcon, {
88
+ }) : card ? null : /*#__PURE__*/_jsx(ChevronIcon, {
76
89
  size: 16,
77
90
  direction: forwardDirection(),
78
91
  color: palette.textSubtle
@@ -80,6 +93,13 @@ export function ConversationRow({
80
93
  });
81
94
  }
82
95
 
96
+ /** `'You: {message}'` → `['You: ', '']`; a template without the token goes in front. */
97
+ function splitAround(template, token) {
98
+ const index = template.indexOf(token);
99
+ if (index < 0) return [`${template} `, ''];
100
+ return [template.slice(0, index), template.slice(index + token.length)];
101
+ }
102
+
83
103
  /** Where a divider should start so it sits under the text, not the avatar. */
84
104
  export function rowDividerInset(horizontalPadding = spacing.xl) {
85
105
  return horizontalPadding + AVATAR_SIZE + spacing.md;
@@ -131,6 +151,10 @@ const styles = StyleSheet.create({
131
151
  color: palette.text,
132
152
  fontWeight: '500'
133
153
  },
154
+ snippetYou: {
155
+ color: palette.text,
156
+ fontWeight: '600'
157
+ },
134
158
  // Replaces the chevron rather than crowding beside it, so the row keeps
135
159
  // the same width whether or not there is anything unread.
136
160
  badge: {
@@ -147,4 +171,35 @@ const styles = StyleSheet.create({
147
171
  fontWeight: '700'
148
172
  }
149
173
  });
174
+
175
+ // Overrides for the `card` variant. It sits under the card's title, so it
176
+ // drops the list's minimum height, and its name, time and last message share
177
+ // one size, the way the Home design draws them.
178
+ const cardStyles = StyleSheet.create({
179
+ row: {
180
+ minHeight: 0,
181
+ paddingVertical: spacing.sm
182
+ },
183
+ // The time follows the name instead of being pushed to the far edge.
184
+ topLine: {
185
+ justifyContent: 'flex-start'
186
+ },
187
+ name: {
188
+ textAlign: START_ALIGN,
189
+ flexShrink: 1,
190
+ fontSize: fontSize.body,
191
+ color: palette.ink
192
+ },
193
+ nameUnread: {
194
+ fontWeight: '600'
195
+ },
196
+ time: {
197
+ fontSize: fontSize.body
198
+ },
199
+ snippet: {
200
+ fontSize: fontSize.body,
201
+ lineHeight: fontSize.body * 1.35,
202
+ color: palette.textSubtle
203
+ }
204
+ });
150
205
  //# sourceMappingURL=ConversationRow.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Pressable","StyleSheet","Text","View","Avatar","formatLabel","formatRelativeTime","ChevronIcon","forwardDirection","START_ALIGN","fontSize","palette","spacing","jsx","_jsx","jsxs","_jsxs","AVATAR_SIZE","ConversationRow","conversation","color","fallbackName","timeLabels","unreadCount","unreadLabel","horizontalPadding","xl","onPress","displayName","agentName","hasUnread","unreadSuffix","count","accessibilityRole","accessibilityLabel","snippet","android_ripple","borderSoft","style","pressed","styles","row","paddingHorizontal","rowPressed","children","avatar","agentAvatar","name","size","content","topLine","nameUnread","numberOfLines","time","lastMessageAt","snippetUnread","badge","backgroundColor","badgeLabel","direction","textSubtle","rowDividerInset","md","create","flexDirection","alignItems","gap","minHeight","paddingVertical","white","surface","flex","minWidth","justifyContent","sm","textAlign","body","fontWeight","ink","caption","meta","lineHeight","textMuted","marginTop","text","height","borderRadius","xs","micro"],"sourceRoot":"../../../../src","sources":["ui/components/ConversationRow.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Pressable","StyleSheet","Text","View","Avatar","formatLabel","formatRelativeTime","ChevronIcon","forwardDirection","START_ALIGN","fontSize","palette","spacing","jsx","_jsx","jsxs","_jsxs","AVATAR_SIZE","CARD_AVATAR_SIZE","ConversationRow","conversation","color","fallbackName","timeLabels","unreadCount","unreadLabel","lastMessageLabels","horizontalPadding","xl","variant","onPress","card","displayName","agentName","hasUnread","unreadSuffix","count","attachment","lastMessageAttachment","snippet","youBefore","youAfter","lastMessageFromVisitor","you","splitAround","snippetLabel","accessibilityRole","accessibilityLabel","android_ripple","borderSoft","style","pressed","styles","row","cardStyles","paddingHorizontal","rowPressed","children","avatar","agentAvatar","name","size","content","topLine","nameUnread","numberOfLines","time","lastMessageAt","snippetUnread","snippetYou","badge","backgroundColor","badgeLabel","direction","textSubtle","template","token","index","indexOf","slice","length","rowDividerInset","md","create","flexDirection","alignItems","gap","minHeight","paddingVertical","white","surface","flex","minWidth","justifyContent","sm","textAlign","body","fontWeight","ink","caption","meta","lineHeight","textMuted","marginTop","text","height","borderRadius","xs","micro","flexShrink"],"sourceRoot":"../../../../src","sources":["ui/components/ConversationRow.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,30 +3,137 @@
3
3
  /**
4
4
  * Full-screen viewer for image attachments, so a tap on a photo the agent sent
5
5
  * stays inside the messenger instead of bouncing to the browser. Pinch, drag
6
- * and double-tap zoom work on iOS and Android (see ZoomableImage).
6
+ * and double-tap zoom work on iOS and Android (see ZoomableImage). With
7
+ * several photos in one message, a sideways swipe moves between them.
7
8
  */
8
9
 
9
- import { useState } from 'react';
10
- import { ActivityIndicator, Modal, Platform, Pressable, StyleSheet, Text, View } from 'react-native';
10
+ import { useLayoutEffect, useRef, useState } from 'react';
11
+ import { ActivityIndicator, Animated, Image, Modal, Platform, Pressable, StyleSheet, Text, View } from 'react-native';
12
+ import { formatLabel } from "../../i18n.js";
13
+ import { useReduceMotion } from "../hooks/use-reduce-motion.js";
11
14
  import { useWidgetInsets } from "../hooks/use-widget-insets.js";
12
15
  import { fontSize, palette, spacing } from "../styles/theme.js";
16
+ import { isRTL } from "../utils/rtl.js";
13
17
  import { isHttpUrl } from "../utils/safe-url.js";
14
18
  import { CloseIcon } from "./icons.js";
15
19
  import { ZoomableImage } from "./ZoomableImage.js";
20
+
21
+ /** The photos of one message, opened at the one tapped. */
16
22
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
+ /** A swipe changes photo past this share of the screen, or this fast (px/ms). */
24
+ const SWIPE_DISTANCE = 0.25;
25
+ const SWIPE_VELOCITY = 0.5;
26
+ /** Past the first or last photo the strip only gives this much. */
27
+ const EDGE_RESISTANCE = 0.25;
17
28
  export function ImageViewer({
18
- image,
29
+ gallery,
19
30
  labels,
20
31
  onClose,
21
32
  onOpenExternally
22
33
  }) {
23
34
  const insets = useWidgetInsets();
24
- // Keyed by URL so opening another image starts from a clean loading state.
35
+ const reduceMotion = useReduceMotion();
36
+ // The photo on screen, for the gallery it belongs to: a new gallery opens at its own.
37
+ const [position, setPosition] = useState({
38
+ of: null,
39
+ index: 0
40
+ });
41
+ const images = gallery?.images ?? [];
42
+ const index = position.of === gallery ? position.index : gallery?.index ?? 0;
43
+ const image = images[index] ?? null;
44
+ // Photos whose own URL failed, now shown from their fallback.
45
+ const [fellBack, setFellBack] = useState(() => new Set());
46
+ const sourceOf = photo => photo.fallbackUrl && fellBack.has(photo.url) ? photo.fallbackUrl : photo.url;
47
+ const source = image ? sourceOf(image) : null;
48
+ // Keyed by URL so each photo starts from a clean loading state.
25
49
  const [status, setStatus] = useState({
26
50
  url: null,
27
51
  state: 'loading'
28
52
  });
29
- const state = status.url === image?.url ? status.state : 'loading';
53
+ const state = status.url === source ? status.state : 'loading';
54
+ // False once there's nothing left to try, so the caller shows the failure.
55
+ const fallBack = photo => {
56
+ if (!photo.fallbackUrl || fellBack.has(photo.url)) return false;
57
+ setFellBack(current => new Set(current).add(photo.url));
58
+ return true;
59
+ };
60
+ // Photos whose screen-size copy is drawn: no spinner over those while the full one decodes.
61
+ const [previewed, setPreviewed] = useState(() => new Set());
62
+ const markPreviewed = url => setPreviewed(current => current.has(url) ? current : new Set(current).add(url));
63
+ const [width, setWidth] = useState(0);
64
+ // One page per photo, never reordered: a swipe slides the strip to the photo
65
+ // it lands on and leaves it there. (Re-centring three pages instead showed the
66
+ // wrong photo, then a black frame, for a moment on Android.)
67
+ const [offset] = useState(() => new Animated.Value(0));
68
+ const rtl = isRTL();
69
+ // Pages run left to right in every language; in Arabic the first photo is the rightmost.
70
+ const restingAt = photo => -(rtl ? images.length - 1 - photo : photo) * width;
71
+ const swiping = useRef(false);
72
+ // Closing the viewer mid-swipe stops the slide unfinished, so it never
73
+ // settles: the next gallery is placed afresh.
74
+ useLayoutEffect(() => {
75
+ swiping.current = false;
76
+ }, [gallery]);
77
+ // Places the strip when the viewer opens, the screen turns or the screen reader
78
+ // moves; after a swipe it is already there.
79
+ useLayoutEffect(() => {
80
+ if (!swiping.current) offset.setValue(restingAt(index));
81
+ });
82
+
83
+ // In Arabic the next photo is the one on the left.
84
+ const step = rtl ? -1 : 1;
85
+ const neighbour = side => {
86
+ const next = index + side * step;
87
+ return next >= 0 && next < images.length ? next : null;
88
+ };
89
+ const show = next => {
90
+ if (next !== null) setPosition({
91
+ of: gallery,
92
+ index: next
93
+ });
94
+ };
95
+ const swipe = {
96
+ move: dx => {
97
+ swiping.current = true;
98
+ const resisted = neighbour(dx < 0 ? 1 : -1) === null ? dx * EDGE_RESISTANCE : dx;
99
+ offset.setValue(restingAt(index) + resisted);
100
+ },
101
+ end: (dx, vx) => {
102
+ const next = neighbour(dx < 0 ? 1 : -1);
103
+ const far = Math.abs(dx) > width * SWIPE_DISTANCE || Math.abs(vx) > SWIPE_VELOCITY && Math.sign(vx) === Math.sign(dx);
104
+ const target = next !== null && dx !== 0 && far ? next : index;
105
+ const toValue = restingAt(target);
106
+ // Switched as the finger lifts: the counter changes at once, and the full
107
+ // photo decodes while the strip is still sliding to it.
108
+ show(target === index ? null : target);
109
+ if (reduceMotion !== false) {
110
+ offset.setValue(toValue);
111
+ swiping.current = false;
112
+ return;
113
+ }
114
+ const animation = target === index ? Animated.spring(offset, {
115
+ toValue,
116
+ useNativeDriver: true,
117
+ bounciness: 0,
118
+ speed: 18
119
+ }) : Animated.timing(offset, {
120
+ toValue,
121
+ duration: 180,
122
+ useNativeDriver: true
123
+ });
124
+ // A swipe that starts before this one lands takes over the strip; it settles it.
125
+ animation.start(({
126
+ finished
127
+ }) => {
128
+ if (finished) swiping.current = false;
129
+ });
130
+ }
131
+ };
132
+ const several = images.length > 1;
133
+ const handleAccessibilityAction = event => {
134
+ if (event.nativeEvent.actionName === 'increment' && index < images.length - 1) show(index + 1);
135
+ if (event.nativeEvent.actionName === 'decrement' && index > 0) show(index - 1);
136
+ };
30
137
  return /*#__PURE__*/_jsx(Modal, {
31
138
  visible: !!image,
32
139
  transparent: true,
@@ -36,30 +143,98 @@ export function ImageViewer({
36
143
  children: /*#__PURE__*/_jsxs(View, {
37
144
  style: styles.backdrop,
38
145
  accessibilityViewIsModal: true,
39
- children: [image ?
40
- /*#__PURE__*/
41
- // Keyed by URL so the next image opens at 1×, not at the last one's zoom.
42
- _jsx(ZoomableImage, {
43
- uri: image.url,
44
- accessibilityLabel: image.name,
45
- onLoad: () => setStatus({
46
- url: image.url,
47
- state: 'ready'
48
- }),
49
- onError: () => setStatus({
50
- url: image.url,
51
- state: 'failed'
146
+ onLayout: event => setWidth(event.nativeEvent.layout.width),
147
+ children: [image && width > 0 ? /*#__PURE__*/_jsx(Animated.View, {
148
+ style: [styles.strip, {
149
+ width: width * images.length,
150
+ transform: [{
151
+ translateX: offset
152
+ }]
153
+ }],
154
+ children: (rtl ? [...images].reverse() : images).map(photo => {
155
+ const page = images.indexOf(photo);
156
+ const centre = page === index;
157
+ const uri = sourceOf(photo);
158
+ // Only the photo on screen and the ones a swipe reveals are drawn.
159
+ const near = Math.abs(page - index) <= 1;
160
+ return /*#__PURE__*/_jsxs(View, {
161
+ style: [styles.page, {
162
+ width
163
+ }],
164
+ ...(centre && several ? {
165
+ accessible: true,
166
+ accessibilityRole: 'adjustable',
167
+ accessibilityLabel: photo.name,
168
+ accessibilityValue: {
169
+ text: formatLabel(labels.position, {
170
+ current: index + 1,
171
+ total: images.length
172
+ })
173
+ },
174
+ accessibilityActions: [{
175
+ name: 'increment'
176
+ }, {
177
+ name: 'decrement'
178
+ }],
179
+ onAccessibilityAction: handleAccessibilityAction
180
+ } : null),
181
+ children: [!near ? null : photo.large ? centre ? null : /*#__PURE__*/_jsx(ActivityIndicator, {
182
+ style: styles.layer,
183
+ color: palette.white
184
+ }) :
185
+ /*#__PURE__*/
186
+ // Decoded at the screen's size, so it's ready mid-swipe, and shown
187
+ // until the full photo on top has decoded.
188
+ _jsx(Image, {
189
+ source: {
190
+ uri
191
+ },
192
+ style: [styles.layer, centre && state === 'ready' && styles.covered],
193
+ resizeMode: "contain",
194
+ resizeMethod: "resize",
195
+ onLoad: () => markPreviewed(uri),
196
+ onError: () => fallBack(photo),
197
+ importantForAccessibility: "no",
198
+ accessibilityIgnoresInvertColors: true
199
+ }), centre ?
200
+ /*#__PURE__*/
201
+ // Keyed by URL so each photo opens at 1×, not at the last one's zoom.
202
+ _jsx(View, {
203
+ style: styles.layer,
204
+ children: /*#__PURE__*/_jsx(ZoomableImage, {
205
+ uri: uri,
206
+ accessibilityLabel: photo.name,
207
+ onLoad: () => setStatus({
208
+ url: uri,
209
+ state: 'ready'
210
+ }),
211
+ onError: () => {
212
+ if (!fallBack(photo)) setStatus({
213
+ url: uri,
214
+ state: 'failed'
215
+ });
216
+ },
217
+ onSwipe: several ? swipe : undefined
218
+ })
219
+ }, uri) : null]
220
+ }, `${page}:${photo.url}`);
52
221
  })
53
- }, image.url) : null, image && state === 'loading' ? /*#__PURE__*/_jsx(ActivityIndicator, {
222
+ }) : null, image && source && state === 'loading' && !previewed.has(source) ? /*#__PURE__*/_jsx(View, {
54
223
  style: StyleSheet.absoluteFill,
55
- color: palette.white
56
- }) : null, image && state === 'failed' ? /*#__PURE__*/_jsxs(View, {
224
+ pointerEvents: "none",
225
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
226
+ style: StyleSheet.absoluteFill,
227
+ color: palette.white
228
+ })
229
+ }) : null, image && source && state === 'failed' ? /*#__PURE__*/_jsxs(View, {
57
230
  style: [StyleSheet.absoluteFill, styles.center, styles.failed],
231
+ pointerEvents: "box-none",
58
232
  children: [/*#__PURE__*/_jsx(Text, {
59
233
  style: styles.failedText,
234
+ pointerEvents: "none",
60
235
  children: labels.loadFailed
61
- }), isHttpUrl(image.url) ? /*#__PURE__*/_jsx(Pressable, {
62
- onPress: () => onOpenExternally(image.url),
236
+ }), isHttpUrl(source) ? /*#__PURE__*/_jsx(Pressable, {
237
+ onPress: () => onOpenExternally(source),
63
238
  accessibilityRole: "button",
64
239
  style: ({
65
240
  pressed
@@ -78,7 +253,12 @@ export function ImageViewer({
78
253
  style: styles.title,
79
254
  numberOfLines: 1,
80
255
  children: image?.name ?? ''
81
- }), /*#__PURE__*/_jsx(Pressable, {
256
+ }), several ? /*#__PURE__*/_jsxs(Text, {
257
+ style: styles.counter,
258
+ accessibilityElementsHidden: true,
259
+ importantForAccessibility: "no",
260
+ children: [index + 1, " / ", images.length]
261
+ }) : null, /*#__PURE__*/_jsx(Pressable, {
82
262
  onPress: onClose,
83
263
  accessibilityRole: "button",
84
264
  accessibilityLabel: labels.close,
@@ -98,7 +278,27 @@ export function ImageViewer({
98
278
  const styles = StyleSheet.create({
99
279
  backdrop: {
100
280
  flex: 1,
101
- backgroundColor: '#000000'
281
+ backgroundColor: '#000000',
282
+ overflow: 'hidden'
283
+ },
284
+ // One screen per photo, laid out left to right in every language (see `restingAt`).
285
+ strip: {
286
+ position: 'absolute',
287
+ top: 0,
288
+ bottom: 0,
289
+ left: 0,
290
+ flexDirection: 'row',
291
+ direction: 'ltr'
292
+ },
293
+ page: {
294
+ height: '100%'
295
+ },
296
+ layer: {
297
+ ...StyleSheet.absoluteFillObject
298
+ },
299
+ // Hidden, not removed: it shows again the moment its page stops being the middle one.
300
+ covered: {
301
+ opacity: 0
102
302
  },
103
303
  center: {
104
304
  flexGrow: 1,
@@ -124,6 +324,11 @@ const styles = StyleSheet.create({
124
324
  fontSize: fontSize.body,
125
325
  fontWeight: '600'
126
326
  },
327
+ counter: {
328
+ color: 'rgba(255,255,255,0.8)',
329
+ fontSize: fontSize.meta,
330
+ fontVariant: ['tabular-nums']
331
+ },
127
332
  closeButton: {
128
333
  width: 36,
129
334
  height: 36,
@@ -1 +1 @@
1
- {"version":3,"names":["useState","ActivityIndicator","Modal","Platform","Pressable","StyleSheet","Text","View","useWidgetInsets","fontSize","palette","spacing","isHttpUrl","CloseIcon","ZoomableImage","jsx","_jsx","jsxs","_jsxs","ImageViewer","image","labels","onClose","onOpenExternally","insets","status","setStatus","url","state","visible","transparent","animationType","statusBarTranslucent","onRequestClose","children","style","styles","backdrop","accessibilityViewIsModal","uri","accessibilityLabel","name","onLoad","onError","absoluteFill","color","white","center","failed","failedText","loadFailed","onPress","accessibilityRole","pressed","externalButton","externalLabel","openExternally","header","paddingTop","top","sm","pointerEvents","title","numberOfLines","close","hitSlop","closeButton","size","create","flex","backgroundColor","flexGrow","alignItems","justifyContent","position","left","right","flexDirection","gap","md","paddingHorizontal","lg","paddingBottom","minWidth","body","fontWeight","width","height","borderRadius","opacity","xxl","textAlign","paddingVertical","borderWidth","hairlineWidth","borderColor","meta","OS"],"sourceRoot":"../../../../src","sources":["ui/components/ImageViewer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useLayoutEffect","useRef","useState","ActivityIndicator","Animated","Image","Modal","Platform","Pressable","StyleSheet","Text","View","formatLabel","useReduceMotion","useWidgetInsets","fontSize","palette","spacing","isRTL","isHttpUrl","CloseIcon","ZoomableImage","jsx","_jsx","jsxs","_jsxs","SWIPE_DISTANCE","SWIPE_VELOCITY","EDGE_RESISTANCE","ImageViewer","gallery","labels","onClose","onOpenExternally","insets","reduceMotion","position","setPosition","of","index","images","image","fellBack","setFellBack","Set","sourceOf","photo","fallbackUrl","has","url","source","status","setStatus","state","fallBack","current","add","previewed","setPreviewed","markPreviewed","width","setWidth","offset","Value","rtl","restingAt","length","swiping","setValue","step","neighbour","side","next","show","swipe","move","dx","resisted","end","vx","far","Math","abs","sign","target","toValue","animation","spring","useNativeDriver","bounciness","speed","timing","duration","start","finished","several","handleAccessibilityAction","event","nativeEvent","actionName","visible","transparent","animationType","statusBarTranslucent","onRequestClose","children","style","styles","backdrop","accessibilityViewIsModal","onLayout","layout","strip","transform","translateX","reverse","map","page","indexOf","centre","uri","near","accessible","accessibilityRole","accessibilityLabel","name","accessibilityValue","text","total","accessibilityActions","onAccessibilityAction","large","layer","color","white","covered","resizeMode","resizeMethod","onLoad","onError","importantForAccessibility","accessibilityIgnoresInvertColors","onSwipe","undefined","absoluteFill","pointerEvents","center","failed","failedText","loadFailed","onPress","pressed","externalButton","externalLabel","openExternally","header","paddingTop","top","sm","title","numberOfLines","counter","accessibilityElementsHidden","close","hitSlop","closeButton","size","create","flex","backgroundColor","overflow","bottom","left","flexDirection","direction","height","absoluteFillObject","opacity","flexGrow","alignItems","justifyContent","right","gap","md","paddingHorizontal","lg","paddingBottom","minWidth","body","fontWeight","meta","fontVariant","borderRadius","xxl","textAlign","paddingVertical","borderWidth","hairlineWidth","borderColor","OS"],"sourceRoot":"../../../../src","sources":["ui/components/ImageViewer.tsx"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@
12
12
 
13
13
  import { useState } from 'react';
14
14
  import { Pressable, StyleSheet, Text, TextInput, View } from 'react-native';
15
+ import { useRetainedState } from "../hooks/use-retained-state.js";
15
16
  import { contrastingTextColor, fontSize, palette, radius, spacing, withAlpha } from "../styles/theme.js";
16
17
 
17
18
  /** 1..5, worst to best — Intercom's five faces. */
@@ -78,12 +79,14 @@ export function RatingCard({
78
79
  const [rating, setRating] = useState(initialRating);
79
80
  const [reason, setReason] = useState(initialReason);
80
81
  const [comment, setComment] = useState(initialComment);
81
- const [draft, setDraft] = useState('');
82
+ // Kept while the thread unmounts the card far off screen; the rating
83
+ // itself is saved on the message.
84
+ const [draft, setDraft] = useRetainedState(`${ratingId}:draft`, '');
82
85
  // The comment is optional: "Done" with nothing typed just closes the box —
83
86
  // the face (and reason) are already saved. A card that opens with a saved
84
87
  // rating starts closed too, so "Done" sticks when the thread is reopened;
85
88
  // tapping the chosen face opens the box again.
86
- const [finished, setFinished] = useState(initialRating != null);
89
+ const [finished, setFinished] = useRetainedState(`${ratingId}:finished`, initialRating != null);
87
90
  const [pending, setPending] = useState(false);
88
91
  const [closedReason, setClosedReason] = useState(initialComment ? 'locked' : null);
89
92
  const [failed, setFailed] = useState(false);
@@ -1 +1 @@
1
- {"version":3,"names":["useState","Pressable","StyleSheet","Text","TextInput","View","contrastingTextColor","fontSize","palette","radius","spacing","withAlpha","jsx","_jsx","jsxs","_jsxs","RATING_SCALE","value","emoji","isBadRating","rating","isRatingReason","id","labels","getRatingRequest","metadata","event","ratingId","comment","ratingComment","reason","ratingReason","reasons","Array","isArray","ratingReasons","filter","reasonLabel","locales","locale","label","split","Object","values","find","Boolean","RatingCard","initialRating","initialComment","initialReason","color","onRate","setRating","setReason","setComment","draft","setDraft","finished","setFinished","pending","setPending","closedReason","setClosedReason","failed","setFailed","interactive","hasDraft","trim","length","canSubmit","submit","next","result","locked","error","status","expired","thanks","style","styles","row","children","card","testID","question","faces","accessibilityRole","map","entry","index","selected","accessibilityLabel","scale","accessibilityState","checked","disabled","hitSlop","onPress","pressed","face","borderColor","backgroundColor","faceDimmed","facePressed","statusFailed","reasonPrompt","chips","item","chip","chipText","form","onChangeText","editable","multiline","maxLength","placeholder","commentPlaceholder","placeholderTextColor","textSubtle","input","text","submitDisabled","submitText","done","create","alignItems","paddingVertical","md","width","maxWidth","gap","padding","lg","borderRadius","xl","borderWidth","hairlineWidth","border","white","textAlign","ink","body","fontWeight","flexDirection","justifyContent","sm","height","opacity","textMuted","meta","danger","flexWrap","paddingHorizontal","pill","surfaceAlt","writingDirection","minHeight","textAlignVertical","alignSelf"],"sourceRoot":"../../../../src","sources":["ui/components/RatingCard.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","Pressable","StyleSheet","Text","TextInput","View","useRetainedState","contrastingTextColor","fontSize","palette","radius","spacing","withAlpha","jsx","_jsx","jsxs","_jsxs","RATING_SCALE","value","emoji","isBadRating","rating","isRatingReason","id","labels","getRatingRequest","metadata","event","ratingId","comment","ratingComment","reason","ratingReason","reasons","Array","isArray","ratingReasons","filter","reasonLabel","locales","locale","label","split","Object","values","find","Boolean","RatingCard","initialRating","initialComment","initialReason","color","onRate","setRating","setReason","setComment","draft","setDraft","finished","setFinished","pending","setPending","closedReason","setClosedReason","failed","setFailed","interactive","hasDraft","trim","length","canSubmit","submit","next","result","locked","error","status","expired","thanks","style","styles","row","children","card","testID","question","faces","accessibilityRole","map","entry","index","selected","accessibilityLabel","scale","accessibilityState","checked","disabled","hitSlop","onPress","pressed","face","borderColor","backgroundColor","faceDimmed","facePressed","statusFailed","reasonPrompt","chips","item","chip","chipText","form","onChangeText","editable","multiline","maxLength","placeholder","commentPlaceholder","placeholderTextColor","textSubtle","input","text","submitDisabled","submitText","done","create","alignItems","paddingVertical","md","width","maxWidth","gap","padding","lg","borderRadius","xl","borderWidth","hairlineWidth","border","white","textAlign","ink","body","fontWeight","flexDirection","justifyContent","sm","height","opacity","textMuted","meta","danger","flexWrap","paddingHorizontal","pill","surfaceAlt","writingDirection","minHeight","textAlignVertical","alignSelf"],"sourceRoot":"../../../../src","sources":["ui/components/RatingCard.tsx"],"mappings":"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","ignoreList":[]}