@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.
- package/CHANGELOG.md +137 -5
- package/README.md +64 -12
- package/lib/commonjs/api/client.js +96 -23
- package/lib/commonjs/api/client.js.map +1 -1
- package/lib/commonjs/attachments/file-size.js +52 -0
- package/lib/commonjs/attachments/file-size.js.map +1 -0
- package/lib/commonjs/attachments/local-previews.js +40 -0
- package/lib/commonjs/attachments/local-previews.js.map +1 -0
- package/lib/commonjs/attachments/pickers.js +20 -29
- package/lib/commonjs/attachments/pickers.js.map +1 -1
- package/lib/commonjs/i18n.js +22 -3
- package/lib/commonjs/i18n.js.map +1 -1
- package/lib/commonjs/locales.js +12 -3
- package/lib/commonjs/locales.js.map +1 -1
- package/lib/commonjs/state/widget-store.js +277 -30
- package/lib/commonjs/state/widget-store.js.map +1 -1
- package/lib/commonjs/storage.js +3 -1
- package/lib/commonjs/storage.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/ui/WidgetProvider.js +33 -13
- package/lib/commonjs/ui/WidgetProvider.js.map +1 -1
- package/lib/commonjs/ui/components/AttachmentChips.js +109 -40
- package/lib/commonjs/ui/components/AttachmentChips.js.map +1 -1
- package/lib/commonjs/ui/components/ConversationRow.js +65 -10
- package/lib/commonjs/ui/components/ConversationRow.js.map +1 -1
- package/lib/commonjs/ui/components/ImageViewer.js +229 -24
- package/lib/commonjs/ui/components/ImageViewer.js.map +1 -1
- package/lib/commonjs/ui/components/RatingCard.js +5 -2
- package/lib/commonjs/ui/components/RatingCard.js.map +1 -1
- package/lib/commonjs/ui/components/ZoomableImage.js +58 -10
- package/lib/commonjs/ui/components/ZoomableImage.js.map +1 -1
- package/lib/commonjs/ui/hooks/use-retained-state.js +39 -0
- package/lib/commonjs/ui/hooks/use-retained-state.js.map +1 -0
- package/lib/commonjs/ui/screens/chat/ChatView.js +637 -164
- package/lib/commonjs/ui/screens/chat/ChatView.js.map +1 -1
- package/lib/commonjs/ui/screens/chat/ChatView.styles.js +138 -1
- package/lib/commonjs/ui/screens/chat/ChatView.styles.js.map +1 -1
- package/lib/commonjs/ui/screens/conversations/ConversationsList.js +1 -0
- package/lib/commonjs/ui/screens/conversations/ConversationsList.js.map +1 -1
- package/lib/commonjs/ui/screens/home/HomeView.js +38 -55
- package/lib/commonjs/ui/screens/home/HomeView.js.map +1 -1
- package/lib/commonjs/ui/screens/home/HomeView.styles.js +36 -45
- package/lib/commonjs/ui/screens/home/HomeView.styles.js.map +1 -1
- package/lib/commonjs/ui/utils/html.js +13 -0
- package/lib/commonjs/ui/utils/html.js.map +1 -1
- package/lib/commonjs/ui/utils/image-load-queue.js +114 -0
- package/lib/commonjs/ui/utils/image-load-queue.js.map +1 -0
- package/lib/commonjs/ui/utils/inline-attachments.js +88 -0
- package/lib/commonjs/ui/utils/inline-attachments.js.map +1 -0
- package/lib/module/api/client.js +96 -23
- package/lib/module/api/client.js.map +1 -1
- package/lib/module/attachments/file-size.js +47 -0
- package/lib/module/attachments/file-size.js.map +1 -0
- package/lib/module/attachments/local-previews.js +33 -0
- package/lib/module/attachments/local-previews.js.map +1 -0
- package/lib/module/attachments/pickers.js +15 -25
- package/lib/module/attachments/pickers.js.map +1 -1
- package/lib/module/i18n.js +22 -3
- package/lib/module/i18n.js.map +1 -1
- package/lib/module/locales.js +12 -3
- package/lib/module/locales.js.map +1 -1
- package/lib/module/state/widget-store.js +279 -32
- package/lib/module/state/widget-store.js.map +1 -1
- package/lib/module/storage.js +2 -0
- package/lib/module/storage.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/ui/WidgetProvider.js +33 -13
- package/lib/module/ui/WidgetProvider.js.map +1 -1
- package/lib/module/ui/components/AttachmentChips.js +111 -42
- package/lib/module/ui/components/AttachmentChips.js.map +1 -1
- package/lib/module/ui/components/ConversationRow.js +65 -10
- package/lib/module/ui/components/ConversationRow.js.map +1 -1
- package/lib/module/ui/components/ImageViewer.js +231 -26
- package/lib/module/ui/components/ImageViewer.js.map +1 -1
- package/lib/module/ui/components/RatingCard.js +5 -2
- package/lib/module/ui/components/RatingCard.js.map +1 -1
- package/lib/module/ui/components/ZoomableImage.js +58 -10
- package/lib/module/ui/components/ZoomableImage.js.map +1 -1
- package/lib/module/ui/hooks/use-retained-state.js +34 -0
- package/lib/module/ui/hooks/use-retained-state.js.map +1 -0
- package/lib/module/ui/screens/chat/ChatView.js +641 -168
- package/lib/module/ui/screens/chat/ChatView.js.map +1 -1
- package/lib/module/ui/screens/chat/ChatView.styles.js +140 -2
- package/lib/module/ui/screens/chat/ChatView.styles.js.map +1 -1
- package/lib/module/ui/screens/conversations/ConversationsList.js +1 -0
- package/lib/module/ui/screens/conversations/ConversationsList.js.map +1 -1
- package/lib/module/ui/screens/home/HomeView.js +40 -57
- package/lib/module/ui/screens/home/HomeView.js.map +1 -1
- package/lib/module/ui/screens/home/HomeView.styles.js +36 -45
- package/lib/module/ui/screens/home/HomeView.styles.js.map +1 -1
- package/lib/module/ui/utils/html.js +12 -0
- package/lib/module/ui/utils/html.js.map +1 -1
- package/lib/module/ui/utils/image-load-queue.js +109 -0
- package/lib/module/ui/utils/image-load-queue.js.map +1 -0
- package/lib/module/ui/utils/inline-attachments.js +85 -0
- package/lib/module/ui/utils/inline-attachments.js.map +1 -0
- package/lib/typescript/commonjs/api/client.d.ts +12 -4
- package/lib/typescript/commonjs/api/client.d.ts.map +1 -1
- package/lib/typescript/commonjs/attachments/file-size.d.ts +15 -0
- package/lib/typescript/commonjs/attachments/file-size.d.ts.map +1 -0
- package/lib/typescript/commonjs/attachments/local-previews.d.ts +14 -0
- package/lib/typescript/commonjs/attachments/local-previews.d.ts.map +1 -0
- package/lib/typescript/commonjs/attachments/pickers.d.ts +15 -2
- package/lib/typescript/commonjs/attachments/pickers.d.ts.map +1 -1
- package/lib/typescript/commonjs/i18n.d.ts +12 -3
- package/lib/typescript/commonjs/i18n.d.ts.map +1 -1
- package/lib/typescript/commonjs/locales.d.ts.map +1 -1
- package/lib/typescript/commonjs/state/widget-store.d.ts +40 -1
- package/lib/typescript/commonjs/state/widget-store.d.ts.map +1 -1
- package/lib/typescript/commonjs/storage.d.ts +2 -0
- package/lib/typescript/commonjs/storage.d.ts.map +1 -1
- package/lib/typescript/commonjs/types.d.ts +41 -0
- package/lib/typescript/commonjs/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/WidgetProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/AttachmentChips.d.ts +13 -3
- package/lib/typescript/commonjs/ui/components/AttachmentChips.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ConversationRow.d.ts +15 -1
- package/lib/typescript/commonjs/ui/components/ConversationRow.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ImageViewer.d.ts +26 -6
- package/lib/typescript/commonjs/ui/components/ImageViewer.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/RatingCard.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ZoomableImage.d.ts +10 -1
- package/lib/typescript/commonjs/ui/components/ZoomableImage.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/use-retained-state.d.ts +11 -0
- package/lib/typescript/commonjs/ui/hooks/use-retained-state.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts +4 -4
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts +144 -0
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.styles.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts +26 -1
- package/lib/typescript/commonjs/ui/screens/chat/ChatView.types.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.types.d.ts +2 -0
- package/lib/typescript/commonjs/ui/screens/conversations/ConversationsList.types.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/home/HomeView.d.ts +7 -5
- package/lib/typescript/commonjs/ui/screens/home/HomeView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/home/HomeView.styles.d.ts +30 -35
- package/lib/typescript/commonjs/ui/screens/home/HomeView.styles.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/home/HomeView.types.d.ts +5 -6
- package/lib/typescript/commonjs/ui/screens/home/HomeView.types.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/html.d.ts +5 -0
- package/lib/typescript/commonjs/ui/utils/html.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/image-load-queue.d.ts +44 -0
- package/lib/typescript/commonjs/ui/utils/image-load-queue.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/inline-attachments.d.ts +29 -0
- package/lib/typescript/commonjs/ui/utils/inline-attachments.d.ts.map +1 -0
- package/lib/typescript/module/api/client.d.ts +12 -4
- package/lib/typescript/module/api/client.d.ts.map +1 -1
- package/lib/typescript/module/attachments/file-size.d.ts +15 -0
- package/lib/typescript/module/attachments/file-size.d.ts.map +1 -0
- package/lib/typescript/module/attachments/local-previews.d.ts +14 -0
- package/lib/typescript/module/attachments/local-previews.d.ts.map +1 -0
- package/lib/typescript/module/attachments/pickers.d.ts +15 -2
- package/lib/typescript/module/attachments/pickers.d.ts.map +1 -1
- package/lib/typescript/module/i18n.d.ts +12 -3
- package/lib/typescript/module/i18n.d.ts.map +1 -1
- package/lib/typescript/module/locales.d.ts.map +1 -1
- package/lib/typescript/module/state/widget-store.d.ts +40 -1
- package/lib/typescript/module/state/widget-store.d.ts.map +1 -1
- package/lib/typescript/module/storage.d.ts +2 -0
- package/lib/typescript/module/storage.d.ts.map +1 -1
- package/lib/typescript/module/types.d.ts +41 -0
- package/lib/typescript/module/types.d.ts.map +1 -1
- package/lib/typescript/module/ui/WidgetProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/AttachmentChips.d.ts +13 -3
- package/lib/typescript/module/ui/components/AttachmentChips.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ConversationRow.d.ts +15 -1
- package/lib/typescript/module/ui/components/ConversationRow.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ImageViewer.d.ts +26 -6
- package/lib/typescript/module/ui/components/ImageViewer.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/RatingCard.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ZoomableImage.d.ts +10 -1
- package/lib/typescript/module/ui/components/ZoomableImage.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/use-retained-state.d.ts +11 -0
- package/lib/typescript/module/ui/hooks/use-retained-state.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/chat/ChatView.d.ts +4 -4
- package/lib/typescript/module/ui/screens/chat/ChatView.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts +144 -0
- package/lib/typescript/module/ui/screens/chat/ChatView.styles.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts +26 -1
- package/lib/typescript/module/ui/screens/chat/ChatView.types.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/conversations/ConversationsList.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/conversations/ConversationsList.types.d.ts +2 -0
- package/lib/typescript/module/ui/screens/conversations/ConversationsList.types.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/home/HomeView.d.ts +7 -5
- package/lib/typescript/module/ui/screens/home/HomeView.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/home/HomeView.styles.d.ts +30 -35
- package/lib/typescript/module/ui/screens/home/HomeView.styles.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/home/HomeView.types.d.ts +5 -6
- package/lib/typescript/module/ui/screens/home/HomeView.types.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/html.d.ts +5 -0
- package/lib/typescript/module/ui/utils/html.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/image-load-queue.d.ts +44 -0
- package/lib/typescript/module/ui/utils/image-load-queue.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/inline-attachments.d.ts +29 -0
- package/lib/typescript/module/ui/utils/inline-attachments.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/api/client.ts +116 -34
- package/src/attachments/file-size.ts +42 -0
- package/src/attachments/local-previews.ts +32 -0
- package/src/attachments/pickers.ts +23 -25
- package/src/i18n.ts +22 -3
- package/src/locales.ts +12 -3
- package/src/state/widget-store.ts +322 -50
- package/src/storage.ts +2 -0
- package/src/types.ts +41 -0
- package/src/ui/WidgetProvider.tsx +35 -8
- package/src/ui/components/AttachmentChips.tsx +100 -29
- package/src/ui/components/ConversationRow.tsx +90 -9
- package/src/ui/components/ImageViewer.tsx +242 -24
- package/src/ui/components/RatingCard.tsx +5 -2
- package/src/ui/components/ZoomableImage.tsx +58 -5
- package/src/ui/hooks/use-retained-state.ts +35 -0
- package/src/ui/screens/chat/ChatView.styles.ts +139 -1
- package/src/ui/screens/chat/ChatView.tsx +721 -197
- package/src/ui/screens/chat/ChatView.types.ts +26 -1
- package/src/ui/screens/conversations/ConversationsList.tsx +1 -0
- package/src/ui/screens/conversations/ConversationsList.types.ts +2 -0
- package/src/ui/screens/home/HomeView.styles.ts +36 -45
- package/src/ui/screens/home/HomeView.tsx +54 -70
- package/src/ui/screens/home/HomeView.types.ts +5 -6
- package/src/ui/utils/html.ts +26 -0
- package/src/ui/utils/image-load-queue.ts +108 -0
- 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: () =>
|
|
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
|
-
|
|
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":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACxC,SACEC,QAAQ,EACRC,YAAY,EACZC,UAAU,EACVC,IAAI,QAKC,cAAc;AAErB,SAASC,eAAe,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE7D,OAAO,MAAMC,QAAQ,GAAG,CAAC;AACzB,OAAO,MAAMC,eAAe,GAAG,GAAG;AAClC,MAAMC,aAAa,GAAG,GAAG;AACzB,MAAMC,eAAe,GAAG,EAAE;AAC1B,MAAMC,QAAQ,GAAG,EAAE;;AAEnB;;AAYA;AACA,OAAO,SAASC,UAAUA,CAACC,GAAS,EAAEC,KAAkB,EAAQ;EAC9D,IAAI,CAACA,KAAK,IAAIA,KAAK,CAACC,KAAK,IAAI,CAAC,IAAID,KAAK,CAACE,MAAM,IAAI,CAAC,EAAE,OAAOH,GAAG;EAC/D,MAAMI,GAAG,GAAGC,IAAI,CAACC,GAAG,CAACN,GAAG,CAACE,KAAK,GAAGD,KAAK,CAACC,KAAK,EAAEF,GAAG,CAACG,MAAM,GAAGF,KAAK,CAACE,MAAM,CAAC;EACxE,OAAO;IAAED,KAAK,EAAED,KAAK,CAACC,KAAK,GAAGE,GAAG;IAAED,MAAM,EAAEF,KAAK,CAACE,MAAM,GAAGC;EAAI,CAAC;AACjE;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASG,SAASA,CAACC,IAAc,EAAER,GAAS,EAAES,OAAa,EAAY;EAC5E,MAAMC,KAAK,GAAGL,IAAI,CAACC,GAAG,CAACZ,QAAQ,EAAEW,IAAI,CAACM,GAAG,CAAC,CAAC,EAAEH,IAAI,CAACE,KAAK,CAAC,CAAC;EACzD,MAAME,IAAI,GAAGP,IAAI,CAACM,GAAG,CAAC,CAAC,EAAE,CAACF,OAAO,CAACP,KAAK,GAAGQ,KAAK,GAAGV,GAAG,CAACE,KAAK,IAAI,CAAC,CAAC;EACjE,MAAMW,IAAI,GAAGR,IAAI,CAACM,GAAG,CAAC,CAAC,EAAE,CAACF,OAAO,CAACN,MAAM,GAAGO,KAAK,GAAGV,GAAG,CAACG,MAAM,IAAI,CAAC,CAAC;EACnE,OAAO;IACLO,KAAK;IACLI,CAAC,EAAET,IAAI,CAACC,GAAG,CAACM,IAAI,EAAEP,IAAI,CAACM,GAAG,CAAC,CAACC,IAAI,EAAEJ,IAAI,CAACM,CAAC,CAAC,CAAC;IAC1CC,CAAC,EAAEV,IAAI,CAACC,GAAG,CAACO,IAAI,EAAER,IAAI,CAACM,GAAG,CAAC,CAACE,IAAI,EAAEL,IAAI,CAACO,CAAC,CAAC;EAC3C,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,KAAe,EAAEP,KAAa,EAAEQ,IAA8B,EAAEC,EAA4B,EAAY;EACjI,MAAMC,KAAK,GAAG,CAACF,IAAI,CAACJ,CAAC,GAAGG,KAAK,CAACH,CAAC,IAAIG,KAAK,CAACP,KAAK;EAC9C,MAAMW,KAAK,GAAG,CAACH,IAAI,CAACH,CAAC,GAAGE,KAAK,CAACF,CAAC,IAAIE,KAAK,CAACP,KAAK;EAC9C,OAAO;IAAEA,KAAK;IAAEI,CAAC,EAAEK,EAAE,CAACL,CAAC,GAAGJ,KAAK,GAAGU,KAAK;IAAEL,CAAC,EAAEI,EAAE,CAACJ,CAAC,GAAGL,KAAK,GAAGW;EAAM,CAAC;AACpE;AAOA,MAAMC,QAAQ,GAAIC,OAAgB,KAAM;EACtCT,CAAC,EAAES,OAAO,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,CAAC,KAAKD,GAAG,GAAGC,CAAC,CAACC,KAAK,EAAE,CAAC,CAAC,GAAGJ,OAAO,CAACK,MAAM;EAChEb,CAAC,EAAEQ,OAAO,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,CAAC,KAAKD,GAAG,GAAGC,CAAC,CAACG,KAAK,EAAE,CAAC,CAAC,GAAGN,OAAO,CAACK;AAC5D,CAAC,CAAC;AACF,MAAME,QAAQ,GAAIP,OAAgB,IAChCA,OAAO,CAACK,MAAM,GAAG,CAAC,GAAG,CAAC,GAAGvB,IAAI,CAAC0B,KAAK,CAACR,OAAO,CAAC,CAAC,CAAC,CAACI,KAAK,GAAGJ,OAAO,CAAC,CAAC,CAAC,CAACI,KAAK,EAAEJ,OAAO,CAAC,CAAC,CAAC,CAACM,KAAK,GAAGN,OAAO,CAAC,CAAC,CAAC,CAACM,KAAK,CAAC;AAE/G,OAAO,SAASG,aAAaA,CAAC;EAC5BC,GAAG;EACHC,kBAAkB;EAClBC,MAAM;EACNC;AAMF,CAAC,EAAE;EACD,MAAMC,YAAY,GAAG9C,eAAe,CAAC,CAAC;EACtC,MAAM,CAACmB,KAAK,CAAC,GAAGxB,QAAQ,CAAC,MAAM,IAAIC,QAAQ,CAACmD,KAAK,CAAC,CAAC,CAAC,CAAC;EACrD,MAAM,CAACxB,CAAC,CAAC,GAAG5B,QAAQ,CAAC,MAAM,IAAIC,QAAQ,CAACmD,KAAK,CAAC,CAAC,CAAC,CAAC;EACjD,MAAM,CAACvB,CAAC,CAAC,GAAG7B,QAAQ,CAAC,MAAM,IAAIC,QAAQ,CAACmD,KAAK,CAAC,CAAC,CAAC,CAAC;;EAEjD;EACA,MAAMC,CAAC,GAAGtD,MAAM,CAAC;IACfuB,IAAI,EAAE;MAAEE,KAAK,EAAE,CAAC;MAAEI,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE;IAAE,CAAa;IAC1Cf,GAAG,EAAE;MAAEE,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAS;IACpC;IACAqC,MAAM,EAAE;MAAE1B,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE;IAAE,CAAC;IACtBd,KAAK,EAAE,IAAmB;IAC1B;IACAgB,KAAK,EAAE;MAAET,IAAI,EAAE;QAAEE,KAAK,EAAE,CAAC;QAAEI,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE;MAAE,CAAa;MAAE0B,MAAM,EAAE;QAAE3B,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE;MAAE,CAAC;MAAE2B,MAAM,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAE,CAAC;IAClGC,KAAK,EAAE,KAAK;IACZC,SAAS,EAAE,CAAC;IACZC,OAAO,EAAE,IAAmD;IAC5DT,YAAY,EAAE,KAAuB;IACrCU,MAAM,EAAE;EACV,CAAC,CAAC,CAACC,OAAO;EACVT,CAAC,CAACF,YAAY,GAAGA,YAAY;EAE7B,MAAMY,MAAM,GAAGhE,MAAM,CAAO,IAAI,CAAC;EAEjC,MAAMiE,IAAI,GAAGA,CAAC1C,IAAc,EAAE2C,OAAgB,KAAK;IACjDZ,CAAC,CAAC/B,IAAI,GAAGA,IAAI;IACb,IAAI,CAAC2C,OAAO,IAAIZ,CAAC,CAACF,YAAY,KAAK,KAAK,EAAE;MACxC3B,KAAK,CAAC0C,QAAQ,CAAC5C,IAAI,CAACE,KAAK,CAAC;MAC1BI,CAAC,CAACsC,QAAQ,CAAC5C,IAAI,CAACM,CAAC,CAAC;MAClBC,CAAC,CAACqC,QAAQ,CAAC5C,IAAI,CAACO,CAAC,CAAC;MAClB;IACF;IACA,MAAMsC,MAAM,GAAGA,CAACC,KAAqB,EAAEC,OAAe,KACpDpE,QAAQ,CAACkE,MAAM,CAACC,KAAK,EAAE;MAAEC,OAAO;MAAEC,eAAe,EAAE,IAAI;MAAEC,UAAU,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAG,CAAC,CAAC;IACtFvE,QAAQ,CAACwE,QAAQ,CAAC,CAACN,MAAM,CAAC3C,KAAK,EAAEF,IAAI,CAACE,KAAK,CAAC,EAAE2C,MAAM,CAACvC,CAAC,EAAEN,IAAI,CAACM,CAAC,CAAC,EAAEuC,MAAM,CAACtC,CAAC,EAAEP,IAAI,CAACO,CAAC,CAAC,CAAC,CAAC,CAACE,KAAK,CAAC,CAAC;EAC9F,CAAC;;EAED;EACA;EACA;EACA,MAAM2C,QAAQ,GAAGA,CAAA,KAAM;IACrB,IAAIrB,CAAC,CAACQ,MAAM,EAAE;IACdR,CAAC,CAACQ,MAAM,GAAG,IAAI;IACf,MAAMc,MAAM,GAAGA,CAACP,KAAqB,EAAEC,OAAe,KACpDpE,QAAQ,CAACkE,MAAM,CAACC,KAAK,EAAE;MAAEC,OAAO;MAAEC,eAAe,EAAE,IAAI;MAAEC,UAAU,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAG,CAAC,CAAC;IACtFvE,QAAQ,CAACwE,QAAQ,CAAC,CAACE,MAAM,CAACnD,KAAK,EAAE6B,CAAC,CAAC/B,IAAI,CAACE,KAAK,CAAC,EAAEmD,MAAM,CAAC/C,CAAC,EAAEyB,CAAC,CAAC/B,IAAI,CAACM,CAAC,CAAC,EAAE+C,MAAM,CAAC9C,CAAC,EAAEwB,CAAC,CAAC/B,IAAI,CAACO,CAAC,CAAC,CAAC,CAAC,CAACE,KAAK,CAAC,CAAC;EACpG,CAAC;EAED,MAAM6C,UAAU,GAAIC,KAA+B,KAAM;IACvDjD,CAAC,EAAEiD,KAAK,CAACjD,CAAC,GAAGyB,CAAC,CAACC,MAAM,CAAC1B,CAAC,GAAGyB,CAAC,CAACvC,GAAG,CAACE,KAAK,GAAG,CAAC;IACzCa,CAAC,EAAEgD,KAAK,CAAChD,CAAC,GAAGwB,CAAC,CAACC,MAAM,CAACzB,CAAC,GAAGwB,CAAC,CAACvC,GAAG,CAACG,MAAM,GAAG;EAC3C,CAAC,CAAC;EACF,MAAMM,OAAO,GAAGA,CAAA,KAAMV,UAAU,CAACwC,CAAC,CAACvC,GAAG,EAAEuC,CAAC,CAACtC,KAAK,CAAC;EAEhD,MAAM+D,KAAK,GAAIzC,OAAgB,IAAK;IAClCgB,CAAC,CAACtB,KAAK,GAAG;MAAET,IAAI,EAAE+B,CAAC,CAAC/B,IAAI;MAAEiC,MAAM,EAAEqB,UAAU,CAACxC,QAAQ,CAACC,OAAO,CAAC,CAAC;MAAEmB,MAAM,EAAEZ,QAAQ,CAACP,OAAO,CAAC;MAAEoB,KAAK,EAAEpB,OAAO,CAACK;IAAO,CAAC;EACrH,CAAC;EAED,MAAMqC,GAAG,GAAGhF,MAAM,CAChBG,YAAY,CAAC8E,MAAM,CAAC;IAClBC,4BAA4B,EAAEA,CAAA,KAAM,IAAI;IACxCC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;IACvC;IACA;IACAC,gCAAgC,EAAEA,CAAA,KAAM,KAAK;IAC7CC,mBAAmB,EAAGC,KAA4B,IAAK;MACrDhC,CAAC,CAACK,KAAK,GAAG,KAAK;MACfL,CAAC,CAACM,SAAS,GAAG2B,IAAI,CAACC,GAAG,CAAC,CAAC;MACxBT,KAAK,CAACO,KAAK,CAACG,WAAW,CAACnD,OAAO,CAAC;IAClC,CAAC;IACDoD,kBAAkB,EAAEA,CAACJ,KAA4B,EAAEK,OAAO,KAAK;MAC7D,MAAMrD,OAAO,GAAGgD,KAAK,CAACG,WAAW,CAACnD,OAAO;MACzC,IAAIA,OAAO,CAACK,MAAM,KAAK,CAAC,EAAE;MAC1B;MACA,IAAIL,OAAO,CAACK,MAAM,KAAKW,CAAC,CAACtB,KAAK,CAAC0B,KAAK,EAAEqB,KAAK,CAACzC,OAAO,CAAC;MACpD,IAAIlB,IAAI,CAACwE,GAAG,CAACD,OAAO,CAACE,EAAE,CAAC,GAAGhF,QAAQ,IAAIO,IAAI,CAACwE,GAAG,CAACD,OAAO,CAACG,EAAE,CAAC,GAAGjF,QAAQ,IAAIyB,OAAO,CAACK,MAAM,GAAG,CAAC,EAAE;QAC5FW,CAAC,CAACK,KAAK,GAAG,IAAI;MAChB;MACA,MAAMH,MAAM,GAAGqB,UAAU,CAACxC,QAAQ,CAACC,OAAO,CAAC,CAAC;MAC5C,IAAIA,OAAO,CAACK,MAAM,GAAG,CAAC,IAAIW,CAAC,CAACtB,KAAK,CAACyB,MAAM,GAAG,CAAC,EAAE;QAC5C;QACA,MAAMsC,IAAI,GAAG3E,IAAI,CAACC,GAAG,CAACZ,QAAQ,GAAG,IAAI,EAAEW,IAAI,CAACM,GAAG,CAAC,IAAI,EAAG4B,CAAC,CAACtB,KAAK,CAACT,IAAI,CAACE,KAAK,GAAGoB,QAAQ,CAACP,OAAO,CAAC,GAAIgB,CAAC,CAACtB,KAAK,CAACyB,MAAM,CAAC,CAAC;QACjHQ,IAAI,CAAClC,UAAU,CAACuB,CAAC,CAACtB,KAAK,CAACT,IAAI,EAAEwE,IAAI,EAAEzC,CAAC,CAACtB,KAAK,CAACwB,MAAM,EAAEA,MAAM,CAAC,EAAE,KAAK,CAAC;MACrE,CAAC,MAAM,IAAIF,CAAC,CAACtB,KAAK,CAACT,IAAI,CAACE,KAAK,GAAG,CAAC,EAAE;QACjC;QACA,MAAMuE,OAAO,GAAG;UACd,GAAG1C,CAAC,CAACtB,KAAK,CAACT,IAAI;UACfM,CAAC,EAAEyB,CAAC,CAACtB,KAAK,CAACT,IAAI,CAACM,CAAC,GAAG2B,MAAM,CAAC3B,CAAC,GAAGyB,CAAC,CAACtB,KAAK,CAACwB,MAAM,CAAC3B,CAAC;UAC/CC,CAAC,EAAEwB,CAAC,CAACtB,KAAK,CAACT,IAAI,CAACO,CAAC,GAAG0B,MAAM,CAAC1B,CAAC,GAAGwB,CAAC,CAACtB,KAAK,CAACwB,MAAM,CAAC1B;QAChD,CAAC;QACDmC,IAAI,CAAC3C,SAAS,CAAC0E,OAAO,EAAE1C,CAAC,CAACvC,GAAG,EAAES,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;MACnD;IACF,CAAC;IACDyE,qBAAqB,EAAGX,KAA4B,IAAK;MACvD,MAAME,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,CAAC;MACtB,MAAM;QAAE9C,KAAK;QAAEE;MAAM,CAAC,GAAG0C,KAAK,CAACG,WAAW;MAC1C,MAAMS,KAAK,GAAG,CAAC5C,CAAC,CAACK,KAAK,IAAI6B,GAAG,GAAGlC,CAAC,CAACM,SAAS,GAAGjD,aAAa;MAC3D,MAAMwF,IAAI,GAAG7C,CAAC,CAACO,OAAO;MACtB,IACEqC,KAAK,IACLC,IAAI,IACJX,GAAG,GAAGW,IAAI,CAACC,EAAE,GAAGzF,aAAa,IAC7BS,IAAI,CAAC0B,KAAK,CAACJ,KAAK,GAAGyD,IAAI,CAACtE,CAAC,EAAEe,KAAK,GAAGuD,IAAI,CAACrE,CAAC,CAAC,GAAGlB,eAAe,EAC5D;QACA0C,CAAC,CAACO,OAAO,GAAG,IAAI;QAChB;QACA,MAAMwC,MAAM,GAAGxB,UAAU,CAAC;UAAEhD,CAAC,EAAEa,KAAK;UAAEZ,CAAC,EAAEc;QAAM,CAAC,CAAC;QACjD,MAAM0D,MAAM,GACVhD,CAAC,CAAC/B,IAAI,CAACE,KAAK,GAAG,IAAI,GACf;UAAEA,KAAK,EAAE,CAAC;UAAEI,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE;QAAE,CAAC,GACxBC,UAAU,CAAC;UAAEN,KAAK,EAAE,CAAC;UAAEI,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE;QAAE,CAAC,EAAEpB,eAAe,EAAE2F,MAAM,EAAEA,MAAM,CAAC;QAC3EpC,IAAI,CAAC3C,SAAS,CAACgF,MAAM,EAAEhD,CAAC,CAACvC,GAAG,EAAES,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAC/C;MACF;MACA8B,CAAC,CAACO,OAAO,GAAGqC,KAAK,GAAG;QAAEE,EAAE,EAAEZ,GAAG;QAAE3D,CAAC,EAAEa,KAAK;QAAEZ,CAAC,EAAEc;MAAM,CAAC,GAAG,IAAI;MAC1DqB,IAAI,CAAC3C,SAAS,CAACgC,CAAC,CAAC/B,IAAI,EAAE+B,CAAC,CAACvC,GAAG,EAAES,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACjD,CAAC;IACD+E,uBAAuB,EAAEA,CAAA,KAAMtC,IAAI,CAAC3C,SAAS,CAACgC,CAAC,CAAC/B,IAAI,EAAE+B,CAAC,CAACvC,GAAG,EAAES,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI;EAC/E,CAAC,CACH,CAAC,CAACuC,OAAO;EAET,MAAMyC,QAAQ,GAAIlB,KAAwB,IAAK;IAC7C,MAAM;MAAErE,KAAK;MAAEC;IAAO,CAAC,GAAGoE,KAAK,CAACG,WAAW,CAACgB,MAAM;IAClDnD,CAAC,CAACvC,GAAG,GAAG;MAAEE,KAAK;MAAEC;IAAO,CAAC;IACzByD,QAAQ,CAAC,CAAC;IACVX,MAAM,CAACD,OAAO,EAAE2C,eAAe,GAAG,CAACC,IAAI,EAAEC,GAAG,KAAK;MAC/CtD,CAAC,CAACC,MAAM,GAAG;QAAE1B,CAAC,EAAE8E,IAAI;QAAE7E,CAAC,EAAE8E;MAAI,CAAC;IAChC,CAAC,CAAC;EACJ,CAAC;EAED,MAAMC,UAAU,GAAIvB,KAA+C,IAAK;IACtE,MAAMwB,MAAM,GAAGxB,KAAK,EAAEG,WAAW,EAAEqB,MAAM;IACzC,IAAIA,MAAM,IAAIA,MAAM,CAAC7F,KAAK,GAAG,CAAC,IAAI6F,MAAM,CAAC5F,MAAM,GAAG,CAAC,EAAEoC,CAAC,CAACtC,KAAK,GAAG;MAAEC,KAAK,EAAE6F,MAAM,CAAC7F,KAAK;MAAEC,MAAM,EAAE4F,MAAM,CAAC5F;IAAO,CAAC;IAC7GgC,MAAM,CAAC,CAAC;EACV,CAAC;EAED,oBACE1C,IAAA,CAACH,IAAI;IAAC0G,GAAG,EAAE/C,MAAO;IAACgD,KAAK,EAAEC,MAAM,CAAClG,GAAI;IAACyF,QAAQ,EAAEA,QAAS;IAAA,GAAKxB,GAAG,CAACkC,WAAW;IAAAC,QAAA,eAC3E3G,IAAA,CAACN,QAAQ,CAACkH,KAAK;MACbN,MAAM,EAAE;QAAE9D;MAAI,CAAE;MAChBgE,KAAK,EAAE,CAACC,MAAM,CAACjG,KAAK,EAAE;QAAEqG,SAAS,EAAE,CAAC;UAAEC,UAAU,EAAEzF;QAAE,CAAC,EAAE;UAAE0F,UAAU,EAAEzF;QAAE,CAAC,EAAE;UAAEL;QAAM,CAAC;MAAE,CAAC,CAAE;MACxF+F,UAAU,EAAC,SAAS;MACpBvE,kBAAkB,EAAEA,kBAAmB;MACvCwE,gCAAgC;MAChCvE,MAAM,EAAE2D,UAAW;MACnB1D,OAAO,EAAEA;IAAQ,CAClB;EAAC,CACE,CAAC;AAEX;AAEA,MAAM8D,MAAM,GAAG7G,UAAU,CAAC6E,MAAM,CAAC;EAC/BlE,GAAG,EAAE;IAAE2G,IAAI,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAS,CAAC;EACpC3G,KAAK,EAAE;IAAEC,KAAK,EAAE,MAAM;IAAEC,MAAM,EAAE;EAAO;AACzC,CAAC,CAAC","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":[]}
|