@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
@@ -63,11 +63,15 @@ const centreOf = touches => ({
63
63
  y: touches.reduce((sum, t) => sum + t.pageY, 0) / touches.length
64
64
  });
65
65
  const spreadOf = touches => touches.length < 2 ? 0 : Math.hypot(touches[0].pageX - touches[1].pageX, touches[0].pageY - touches[1].pageY);
66
+
67
+ /** A sideways drag at 1×, which the viewer turns into moving between photos. */
68
+
66
69
  export function ZoomableImage({
67
70
  uri,
68
71
  accessibilityLabel,
69
72
  onLoad,
70
- onError
73
+ onError,
74
+ onSwipe
71
75
  }) {
72
76
  const reduceMotion = useReduceMotion();
73
77
  const [scale] = useState(() => new Animated.Value(1));
@@ -109,9 +113,14 @@ export function ZoomableImage({
109
113
  grantedAt: 0,
110
114
  lastTap: null,
111
115
  reduceMotion: false,
112
- native: false
116
+ native: false,
117
+ swipe: undefined,
118
+ // A sideways drag at 1× is moving between photos, and how far it got.
119
+ swiping: false,
120
+ swipeDx: 0
113
121
  }).current;
114
122
  g.reduceMotion = reduceMotion;
123
+ g.swipe = onSwipe;
115
124
  const boxRef = useRef(null);
116
125
  const show = (view, animate) => {
117
126
  g.view = view;
@@ -149,6 +158,22 @@ export function ZoomableImage({
149
158
  y: point.y - g.origin.y - g.box.height / 2
150
159
  });
151
160
  const content = () => fittedSize(g.box, g.image);
161
+
162
+ // Measured again whenever fingers go down, not only on layout: a photo swiped
163
+ // to lays out while the strip is still sliding, so that first reading is off.
164
+ const measure = () => {
165
+ boxRef.current?.measureInWindow?.((left, top) => {
166
+ // Fingers already down were measured from the old spot: keep them where they are.
167
+ g.start.centre = {
168
+ x: g.start.centre.x - (left - g.origin.x),
169
+ y: g.start.centre.y - (top - g.origin.y)
170
+ };
171
+ g.origin = {
172
+ x: left,
173
+ y: top
174
+ };
175
+ });
176
+ };
152
177
  const begin = touches => {
153
178
  g.start = {
154
179
  view: g.view,
@@ -156,6 +181,11 @@ export function ZoomableImage({
156
181
  spread: spreadOf(touches),
157
182
  count: touches.length
158
183
  };
184
+ measure();
185
+ };
186
+ const endSwipe = (dx, vx) => {
187
+ g.swiping = false;
188
+ g.swipe?.end(dx, vx);
159
189
  };
160
190
  const pan = useRef(PanResponder.create({
161
191
  onStartShouldSetPanResponder: () => true,
@@ -165,6 +195,7 @@ export function ZoomableImage({
165
195
  onPanResponderTerminationRequest: () => false,
166
196
  onPanResponderGrant: event => {
167
197
  g.moved = false;
198
+ g.swiping = false;
168
199
  g.grantedAt = Date.now();
169
200
  begin(event.nativeEvent.touches);
170
201
  },
@@ -177,6 +208,8 @@ export function ZoomableImage({
177
208
  g.moved = true;
178
209
  }
179
210
  const centre = fromCentre(centreOf(touches));
211
+ // A second finger turns a swipe into a pinch: the photo slides back.
212
+ if (touches.length > 1 && g.swiping) endSwipe(0, 0);
180
213
  if (touches.length > 1 && g.start.spread > 0) {
181
214
  // Past the limits while pinching, then springs back on release.
182
215
  const zoom = Math.min(MAX_ZOOM * 1.25, Math.max(0.75, g.start.view.scale * spreadOf(touches) / g.start.spread));
@@ -189,9 +222,26 @@ export function ZoomableImage({
189
222
  y: g.start.view.y + centre.y - g.start.centre.y
190
223
  };
191
224
  show(clampView(dragged, g.box, content()), false);
225
+ } else if (g.swipe && touches.length === 1 && Math.abs(g.start.view.scale - 1) < 0.01) {
226
+ // At 1× a sideways drag moves between the photos instead. Measured
227
+ // from where this finger went down alone, not from a pinch before it;
228
+ // below 1× the finger does nothing and the photo springs back on release.
229
+ const dx = centre.x - g.start.centre.x;
230
+ const dy = centre.y - g.start.centre.y;
231
+ if (g.swiping || Math.abs(dx) > TAP_SLOP && Math.abs(dx) > Math.abs(dy)) {
232
+ g.swiping = true;
233
+ g.swipeDx = dx;
234
+ g.swipe.move(dx);
235
+ }
192
236
  }
193
237
  },
194
- onPanResponderRelease: event => {
238
+ onPanResponderRelease: (event, gesture) => {
239
+ if (g.swiping) {
240
+ endSwipe(g.swipeDx, gesture?.vx ?? 0);
241
+ // A pinch earlier in the gesture may have nudged the photo: it settles too.
242
+ show(clampView(g.view, g.box, content()), true);
243
+ return;
244
+ }
195
245
  const now = Date.now();
196
246
  const {
197
247
  pageX,
@@ -225,7 +275,10 @@ export function ZoomableImage({
225
275
  } : null;
226
276
  show(clampView(g.view, g.box, content()), true);
227
277
  },
228
- onPanResponderTerminate: () => show(clampView(g.view, g.box, content()), true)
278
+ onPanResponderTerminate: () => {
279
+ if (g.swiping) endSwipe(0, 0);
280
+ show(clampView(g.view, g.box, content()), true);
281
+ }
229
282
  })).current;
230
283
  const onLayout = event => {
231
284
  const {
@@ -237,12 +290,7 @@ export function ZoomableImage({
237
290
  height
238
291
  };
239
292
  goNative();
240
- boxRef.current?.measureInWindow?.((left, top) => {
241
- g.origin = {
242
- x: left,
243
- y: top
244
- };
245
- });
293
+ measure();
246
294
  };
247
295
  const handleLoad = event => {
248
296
  const source = event?.nativeEvent?.source;
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","useState","Animated","PanResponder","StyleSheet","View","useReduceMotion","jsx","_jsx","MAX_ZOOM","DOUBLE_TAP_ZOOM","DOUBLE_TAP_MS","DOUBLE_TAP_SLOP","TAP_SLOP","fittedSize","box","image","width","height","fit","Math","min","clampView","view","content","scale","max","maxX","maxY","x","y","zoomAround","start","from","to","spotX","spotY","centreOf","touches","reduce","sum","t","pageX","length","pageY","spreadOf","hypot","ZoomableImage","uri","accessibilityLabel","onLoad","onError","reduceMotion","Value","g","origin","centre","spread","count","moved","grantedAt","lastTap","native","current","boxRef","show","animate","setValue","spring","value","toValue","useNativeDriver","bounciness","speed","parallel","goNative","settle","fromCentre","point","begin","pan","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderTerminationRequest","onPanResponderGrant","event","Date","now","nativeEvent","onPanResponderMove","gesture","abs","dx","dy","zoom","dragged","onPanResponderRelease","isTap","last","at","tapped","target","onPanResponderTerminate","onLayout","layout","measureInWindow","left","top","handleLoad","source","ref","style","styles","panHandlers","children","Image","transform","translateX","translateY","resizeMode","accessibilityIgnoresInvertColors","flex","overflow"],"sourceRoot":"../../../../src","sources":["ui/components/ZoomableImage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useRef","useState","Animated","PanResponder","StyleSheet","View","useReduceMotion","jsx","_jsx","MAX_ZOOM","DOUBLE_TAP_ZOOM","DOUBLE_TAP_MS","DOUBLE_TAP_SLOP","TAP_SLOP","fittedSize","box","image","width","height","fit","Math","min","clampView","view","content","scale","max","maxX","maxY","x","y","zoomAround","start","from","to","spotX","spotY","centreOf","touches","reduce","sum","t","pageX","length","pageY","spreadOf","hypot","ZoomableImage","uri","accessibilityLabel","onLoad","onError","onSwipe","reduceMotion","Value","g","origin","centre","spread","count","moved","grantedAt","lastTap","native","swipe","undefined","swiping","swipeDx","current","boxRef","show","animate","setValue","spring","value","toValue","useNativeDriver","bounciness","speed","parallel","goNative","settle","fromCentre","point","measure","measureInWindow","left","top","begin","endSwipe","dx","vx","end","pan","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderTerminationRequest","onPanResponderGrant","event","Date","now","nativeEvent","onPanResponderMove","gesture","abs","dy","zoom","dragged","move","onPanResponderRelease","isTap","last","at","tapped","target","onPanResponderTerminate","onLayout","layout","handleLoad","source","ref","style","styles","panHandlers","children","Image","transform","translateX","translateY","resizeMode","accessibilityIgnoresInvertColors","flex","overflow"],"sourceRoot":"../../../../src","sources":["ui/components/ZoomableImage.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * `useState` that outlives its component. The thread is a FlatList, which
5
+ * unmounts rows far off screen; a form the visitor half filled in, or a
6
+ * rating comment, must still be there when they scroll back. Kept in memory
7
+ * for the session, by a key unique to the message.
8
+ */
9
+
10
+ import { useEffect, useRef, useState } from 'react';
11
+ const MAX_RETAINED = 100;
12
+ const retained = new Map();
13
+ export function useRetainedState(key, initial) {
14
+ const [value, setValue] = useState(() => retained.has(key) ? retained.get(key) : initial);
15
+ const mounted = useRef(false);
16
+ useEffect(() => {
17
+ // Nothing changed yet on mount: only what the visitor did is worth keeping.
18
+ if (!mounted.current) {
19
+ mounted.current = true;
20
+ return;
21
+ }
22
+ retained.delete(key);
23
+ retained.set(key, value);
24
+ // Oldest first: a Map iterates in insertion order.
25
+ if (retained.size > MAX_RETAINED) retained.delete(retained.keys().next().value);
26
+ }, [key, value]);
27
+ return [value, setValue];
28
+ }
29
+
30
+ /** Signing out forgets them: the next visitor on the phone starts clean. */
31
+ export function clearRetainedState() {
32
+ retained.clear();
33
+ }
34
+ //# sourceMappingURL=use-retained-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useState","MAX_RETAINED","retained","Map","useRetainedState","key","initial","value","setValue","has","get","mounted","current","delete","set","size","keys","next","clearRetainedState","clear"],"sourceRoot":"../../../../src","sources":["ui/hooks/use-retained-state.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAA4C,OAAO;AAEvF,MAAMC,YAAY,GAAG,GAAG;AACxB,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAAkB,CAAC;AAE3C,OAAO,SAASC,gBAAgBA,CAAIC,GAAW,EAAEC,OAAU,EAAoC;EAC7F,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGR,QAAQ,CAAI,MAAOE,QAAQ,CAACO,GAAG,CAACJ,GAAG,CAAC,GAAIH,QAAQ,CAACQ,GAAG,CAACL,GAAG,CAAC,GAASC,OAAQ,CAAC;EACrG,MAAMK,OAAO,GAAGZ,MAAM,CAAC,KAAK,CAAC;EAE7BD,SAAS,CAAC,MAAM;IACd;IACA,IAAI,CAACa,OAAO,CAACC,OAAO,EAAE;MACpBD,OAAO,CAACC,OAAO,GAAG,IAAI;MACtB;IACF;IACAV,QAAQ,CAACW,MAAM,CAACR,GAAG,CAAC;IACpBH,QAAQ,CAACY,GAAG,CAACT,GAAG,EAAEE,KAAK,CAAC;IACxB;IACA,IAAIL,QAAQ,CAACa,IAAI,GAAGd,YAAY,EAAEC,QAAQ,CAACW,MAAM,CAACX,QAAQ,CAACc,IAAI,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAACV,KAAe,CAAC;EAC3F,CAAC,EAAE,CAACF,GAAG,EAAEE,KAAK,CAAC,CAAC;EAEhB,OAAO,CAACA,KAAK,EAAEC,QAAQ,CAAC;AAC1B;;AAEA;AACA,OAAO,SAASU,kBAAkBA,CAAA,EAAS;EACzChB,QAAQ,CAACiB,KAAK,CAAC,CAAC;AAClB","ignoreList":[]}