@oxyhq/services 22.8.0 → 22.8.3
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/lib/commonjs/ui/hooks/queries/userCacheRelationship.js +31 -0
- package/lib/commonjs/ui/hooks/queries/userCacheRelationship.js.map +1 -0
- package/lib/commonjs/ui/hooks/useFollow.js +6 -2
- package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
- package/lib/commonjs/ui/screens/FileManagementScreen.js +15 -15
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +133 -82
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/module/ui/hooks/queries/userCacheRelationship.js +27 -0
- package/lib/module/ui/hooks/queries/userCacheRelationship.js.map +1 -0
- package/lib/module/ui/hooks/useFollow.js +7 -3
- package/lib/module/ui/hooks/useFollow.js.map +1 -1
- package/lib/module/ui/screens/FileManagementScreen.js +15 -15
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +1 -1
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +134 -83
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/userCacheRelationship.d.ts +9 -0
- package/lib/typescript/commonjs/ui/hooks/queries/userCacheRelationship.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useFollow.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/userCacheRelationship.d.ts +9 -0
- package/lib/typescript/module/ui/hooks/queries/userCacheRelationship.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useFollow.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/ui/hooks/queries/__tests__/userCache.test.ts +55 -0
- package/src/ui/hooks/queries/userCacheRelationship.ts +33 -0
- package/src/ui/hooks/useFollow.ts +7 -3
- package/src/ui/screens/FileManagementScreen.tsx +13 -13
- package/src/ui/screens/ProfileScreen.tsx +1 -1
- package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +110 -73
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
|
-
import { View, Text, TouchableOpacity, ActivityIndicator, RefreshControl, FlatList, Platform, useWindowDimensions } from 'react-native';
|
|
4
|
+
import { View, Text, TouchableOpacity, ActivityIndicator, RefreshControl, FlatList, Platform, Animated, useWindowDimensions } from 'react-native';
|
|
5
5
|
import { Image as ExpoImage } from 'expo-image';
|
|
6
|
-
import Reanimated, { FadeIn, useAnimatedStyle, useSharedValue, withSequence, withSpring, withTiming } from 'react-native-reanimated';
|
|
7
6
|
import { Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';
|
|
8
7
|
import { computePhotoGridLayout } from "./photoGridLayout.js";
|
|
9
8
|
|
|
@@ -81,6 +80,33 @@ const GRID_CONTENT_PADDING_TOP = HEADER_HEIGHT + 4; // 88
|
|
|
81
80
|
* the parent — this component is purely presentational.
|
|
82
81
|
*/
|
|
83
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Photo-cell animation tuning. The animated cell uses RN's own `Animated`
|
|
85
|
+
* (NOT Reanimated): its entrance is a staggered opacity fade — replacing the
|
|
86
|
+
* Reanimated `entering={FadeIn}` LAYOUT animation, which cannot load on the
|
|
87
|
+
* RN-Web build (no `react-native-worklets` babel plugin) and only warns +
|
|
88
|
+
* no-ops there. RN `Animated` runs cross-platform: native-driven on device,
|
|
89
|
+
* JS-driven on web (`useNativeDriver: false`), so the fade actually plays on
|
|
90
|
+
* web instead of being skipped.
|
|
91
|
+
*/
|
|
92
|
+
const STAGGER_PER_CELL_MS = 15;
|
|
93
|
+
const MAX_TOTAL_STAGGER_MS = 800;
|
|
94
|
+
const ENTRANCE_DURATION_MS = 200;
|
|
95
|
+
/** Selection-ring pulse: a quick scale bump that springs back to rest. */
|
|
96
|
+
const RING_PULSE_PEAK = 1.05;
|
|
97
|
+
const RING_PULSE_UP_MS = 110;
|
|
98
|
+
const RING_SPRING_FRICTION = 9;
|
|
99
|
+
const RING_SPRING_TENSION = 120;
|
|
100
|
+
/**
|
|
101
|
+
* Inline mirror of the `rounded-radius-8 border-[3px]` classes the static ring
|
|
102
|
+
* carries. The animated ring MUST use inline `style` (its animated transform
|
|
103
|
+
* has to be inline, and NativeWind `className` interop is not guaranteed on an
|
|
104
|
+
* `Animated.View` under the RN-Web build), so these keep it pixel-identical to
|
|
105
|
+
* the static ring.
|
|
106
|
+
*/
|
|
107
|
+
const CELL_CORNER_RADIUS = 8; // `rounded-radius-8`
|
|
108
|
+
const SELECTION_RING_WIDTH = 3; // `border-[3px]`
|
|
109
|
+
|
|
84
110
|
/**
|
|
85
111
|
* A single photo cell. Memoized so re-renders during selection only touch
|
|
86
112
|
* affected cells — selection of one photo must not redraw the whole grid.
|
|
@@ -90,7 +116,7 @@ const GRID_CONTENT_PADDING_TOP = HEADER_HEIGHT + 4; // 88
|
|
|
90
116
|
*/
|
|
91
117
|
/**
|
|
92
118
|
* Shared cell chrome (image, dim, badge). Ring border is injected by the
|
|
93
|
-
* static vs animated wrappers
|
|
119
|
+
* static vs animated wrappers.
|
|
94
120
|
*/
|
|
95
121
|
function PhotoPickerCellContent(props) {
|
|
96
122
|
const {
|
|
@@ -193,103 +219,115 @@ const PhotoPickerCellAnimated = /*#__PURE__*/React.memo(function PhotoPickerCell
|
|
|
193
219
|
primaryColor,
|
|
194
220
|
thumbUrl,
|
|
195
221
|
enterIndex,
|
|
196
|
-
reduceMotion,
|
|
197
222
|
onPress,
|
|
198
223
|
onLongPress,
|
|
199
224
|
a11yLabel
|
|
200
225
|
} = props;
|
|
201
|
-
const STAGGER_PER_CELL_MS = 15;
|
|
202
|
-
const MAX_TOTAL_STAGGER_MS = 800;
|
|
203
226
|
const delay = Math.min(enterIndex * STAGGER_PER_CELL_MS, MAX_TOTAL_STAGGER_MS);
|
|
204
|
-
|
|
227
|
+
|
|
228
|
+
// Entrance: a per-cell opacity fade, staggered by the cell's grid index.
|
|
229
|
+
// `useNativeDriver` is only available on native — on web the animation is
|
|
230
|
+
// JS-driven, which still plays the fade (unlike Reanimated layout entering,
|
|
231
|
+
// which no-ops on the plugin-less RN-Web build).
|
|
232
|
+
const opacity = useRef(new Animated.Value(0)).current;
|
|
233
|
+
useEffect(() => {
|
|
234
|
+
const entrance = Animated.timing(opacity, {
|
|
235
|
+
toValue: 1,
|
|
236
|
+
duration: ENTRANCE_DURATION_MS,
|
|
237
|
+
delay,
|
|
238
|
+
useNativeDriver: Platform.OS !== 'web'
|
|
239
|
+
});
|
|
240
|
+
entrance.start();
|
|
241
|
+
return () => entrance.stop();
|
|
242
|
+
}, [opacity, delay]);
|
|
243
|
+
|
|
244
|
+
// Ring pulse: a quick scale bump each time a cell transitions INTO the
|
|
245
|
+
// selected state, springing back to rest.
|
|
246
|
+
const ringScale = useRef(new Animated.Value(1)).current;
|
|
205
247
|
const prevSelected = useRef(isSelected);
|
|
206
248
|
useEffect(() => {
|
|
207
249
|
if (prevSelected.current === isSelected) return;
|
|
208
250
|
prevSelected.current = isSelected;
|
|
209
251
|
if (!isSelected) {
|
|
210
|
-
ringScale.
|
|
252
|
+
ringScale.setValue(1);
|
|
211
253
|
return;
|
|
212
254
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
}));
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
height: size,
|
|
232
|
-
marginRight,
|
|
233
|
-
marginBottom
|
|
234
|
-
};
|
|
235
|
-
const ring = isSelected ? /*#__PURE__*/_jsx(Reanimated.View, {
|
|
255
|
+
const pulse = Animated.sequence([Animated.timing(ringScale, {
|
|
256
|
+
toValue: RING_PULSE_PEAK,
|
|
257
|
+
duration: RING_PULSE_UP_MS,
|
|
258
|
+
useNativeDriver: Platform.OS !== 'web'
|
|
259
|
+
}), Animated.spring(ringScale, {
|
|
260
|
+
toValue: 1,
|
|
261
|
+
friction: RING_SPRING_FRICTION,
|
|
262
|
+
tension: RING_SPRING_TENSION,
|
|
263
|
+
useNativeDriver: Platform.OS !== 'web'
|
|
264
|
+
})]);
|
|
265
|
+
pulse.start();
|
|
266
|
+
return () => pulse.stop();
|
|
267
|
+
}, [isSelected, ringScale]);
|
|
268
|
+
|
|
269
|
+
// The animated ring reads `ringScale`; its border/radius/position are inline
|
|
270
|
+
// `style` because NativeWind `className` interop is not guaranteed on an
|
|
271
|
+
// `Animated.View` under the RN-Web build.
|
|
272
|
+
const ring = isSelected ? /*#__PURE__*/_jsx(Animated.View, {
|
|
236
273
|
pointerEvents: "none",
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
274
|
+
style: {
|
|
275
|
+
position: 'absolute',
|
|
276
|
+
top: 0,
|
|
277
|
+
right: 0,
|
|
278
|
+
bottom: 0,
|
|
279
|
+
left: 0,
|
|
280
|
+
borderRadius: CELL_CORNER_RADIUS,
|
|
281
|
+
borderWidth: SELECTION_RING_WIDTH,
|
|
282
|
+
borderColor: primaryColor,
|
|
283
|
+
transform: [{
|
|
284
|
+
scale: ringScale
|
|
285
|
+
}]
|
|
286
|
+
}
|
|
241
287
|
}) : null;
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
dim: dim,
|
|
257
|
-
isSelected: isSelected,
|
|
258
|
-
selectionIndex: selectionIndex,
|
|
259
|
-
primaryColor: primaryColor,
|
|
260
|
-
thumbUrl: thumbUrl,
|
|
261
|
-
ring: ring
|
|
262
|
-
})
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
return /*#__PURE__*/_jsx(Reanimated.View, {
|
|
266
|
-
entering: FadeIn.delay(delay).duration(200),
|
|
267
|
-
className: "relative",
|
|
268
|
-
style: cellWrapperStyle,
|
|
269
|
-
children: /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
270
|
-
activeOpacity: 0.85,
|
|
271
|
-
onPress: onPress,
|
|
272
|
-
onLongPress: onLongPress,
|
|
273
|
-
className: "flex-1",
|
|
274
|
-
accessibilityRole: "button",
|
|
275
|
-
accessibilityLabel: a11yLabel,
|
|
276
|
-
accessibilityState: {
|
|
277
|
-
selected: isSelected
|
|
288
|
+
return (
|
|
289
|
+
/*#__PURE__*/
|
|
290
|
+
// Animated wrapper carries the entrance opacity + layout box as inline
|
|
291
|
+
// `style` (animated values must be inline, and className interop on
|
|
292
|
+
// Animated.View is not guaranteed on RN-Web). `className` stays on the
|
|
293
|
+
// non-animated TouchableOpacity + content below.
|
|
294
|
+
_jsx(Animated.View, {
|
|
295
|
+
style: {
|
|
296
|
+
width: size,
|
|
297
|
+
height: size,
|
|
298
|
+
marginRight,
|
|
299
|
+
marginBottom,
|
|
300
|
+
position: 'relative',
|
|
301
|
+
opacity
|
|
278
302
|
},
|
|
279
|
-
children: /*#__PURE__*/_jsx(
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
303
|
+
children: /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
304
|
+
activeOpacity: 0.85,
|
|
305
|
+
onPress: onPress,
|
|
306
|
+
onLongPress: onLongPress,
|
|
307
|
+
className: "flex-1",
|
|
308
|
+
accessibilityRole: "button",
|
|
309
|
+
accessibilityLabel: a11yLabel,
|
|
310
|
+
accessibilityState: {
|
|
311
|
+
selected: isSelected
|
|
312
|
+
},
|
|
313
|
+
children: /*#__PURE__*/_jsx(PhotoPickerCellContent, {
|
|
314
|
+
photo: photo,
|
|
315
|
+
dim: dim,
|
|
316
|
+
isSelected: isSelected,
|
|
317
|
+
selectionIndex: selectionIndex,
|
|
318
|
+
primaryColor: primaryColor,
|
|
319
|
+
thumbUrl: thumbUrl,
|
|
320
|
+
ring: ring
|
|
321
|
+
})
|
|
287
322
|
})
|
|
288
323
|
})
|
|
289
|
-
|
|
324
|
+
);
|
|
290
325
|
});
|
|
291
326
|
const PhotoPickerCell = /*#__PURE__*/React.memo(function PhotoPickerCell(props) {
|
|
292
|
-
|
|
327
|
+
// reduceMotion → the static (unanimated) cell on every platform. Otherwise
|
|
328
|
+
// the RN-`Animated` cell, which now plays on web too (no Reanimated layout
|
|
329
|
+
// entering, so no plugin-less RN-Web warning / no-op).
|
|
330
|
+
if (props.reduceMotion) {
|
|
293
331
|
return /*#__PURE__*/_jsx(PhotoPickerCellStatic, {
|
|
294
332
|
...props
|
|
295
333
|
});
|
|
@@ -442,13 +480,23 @@ const PhotoPickerView = ({
|
|
|
442
480
|
return (
|
|
443
481
|
/*#__PURE__*/
|
|
444
482
|
// Measured wrapper: `style`-only (no className) so RN-Web fires onLayout.
|
|
483
|
+
// `minHeight: 0` down the whole flex chain: the sheet is `scrollable=false`
|
|
484
|
+
// (the FlatList owns scrolling) and clamped by its `maxHeight`, but on web a
|
|
485
|
+
// flex child defaults to `min-height: auto` and grows to its content, so the
|
|
486
|
+
// list overflows the clamp and is clipped (renders "half", no scroll). Letting
|
|
487
|
+
// each flex link shrink to the clamped height gives the FlatList a bounded
|
|
488
|
+
// scroll area. Native (Yoga) already defaults min to 0, so this is web-only.
|
|
445
489
|
_jsx(View, {
|
|
446
490
|
style: {
|
|
447
|
-
flex: 1
|
|
491
|
+
flex: 1,
|
|
492
|
+
minHeight: 0
|
|
448
493
|
},
|
|
449
494
|
onLayout: onRootLayout,
|
|
450
495
|
children: /*#__PURE__*/_jsxs(View, {
|
|
451
496
|
className: "flex-1 bg-black",
|
|
497
|
+
style: {
|
|
498
|
+
minHeight: 0
|
|
499
|
+
},
|
|
452
500
|
children: [isEmpty ? /*#__PURE__*/_jsxs(View, {
|
|
453
501
|
className: "flex-1 items-center justify-center px-space-32 pt-[88px]",
|
|
454
502
|
children: [/*#__PURE__*/_jsx(View, {
|
|
@@ -496,6 +544,9 @@ const PhotoPickerView = ({
|
|
|
496
544
|
keyExtractor: keyExtractor,
|
|
497
545
|
numColumns: columns,
|
|
498
546
|
className: "flex-1",
|
|
547
|
+
style: {
|
|
548
|
+
minHeight: 0
|
|
549
|
+
},
|
|
499
550
|
contentContainerClassName: "pt-[88px] pb-space-24",
|
|
500
551
|
showsVerticalScrollIndicator: false,
|
|
501
552
|
refreshControl: /*#__PURE__*/_jsx(RefreshControl, {
|
|
@@ -508,7 +559,7 @@ const PhotoPickerView = ({
|
|
|
508
559
|
onEndReached: handleEndReached,
|
|
509
560
|
onEndReachedThreshold: 0.4,
|
|
510
561
|
ListFooterComponent: listFooter,
|
|
511
|
-
removeClippedSubviews:
|
|
562
|
+
removeClippedSubviews: Platform.OS !== 'web',
|
|
512
563
|
initialNumToRender: Math.max(12, columns * 6),
|
|
513
564
|
windowSize: 9
|
|
514
565
|
}, `cols-${columns}`), /*#__PURE__*/_jsxs(View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","View","Text","TouchableOpacity","ActivityIndicator","RefreshControl","FlatList","Platform","useWindowDimensions","Image","ExpoImage","Reanimated","FadeIn","useAnimatedStyle","useSharedValue","withSequence","withSpring","withTiming","Ionicons","MaterialCommunityIcons","computePhotoGridLayout","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","hapticsModulePromise","getHaptics","OS","Promise","resolve","mod","impactAsync","hapticImpact","style","h","styleEnum","ImpactFeedbackStyle","Heavy","Medium","Light","hapticSelection","selectionAsync","hapticNotification","type","typeEnum","NotificationFeedbackType","Error","Warning","Success","notificationAsync","HANDLE_ZONE","APP_BAR_HEIGHT","HEADER_HEIGHT","GRID_CONTENT_PADDING_TOP","PhotoPickerCellContent","props","photo","dim","isSelected","selectionIndex","primaryColor","thumbUrl","ring","children","className","source","uri","width","height","contentFit","transition","cachePolicy","accessibilityLabel","filename","pointerEvents","backgroundColor","String","PhotoPickerCellStatic","memo","size","marginRight","marginBottom","onPress","onLongPress","a11yLabel","cellWrapperStyle","borderColor","activeOpacity","accessibilityRole","accessibilityState","selected","PhotoPickerCellAnimated","enterIndex","reduceMotion","STAGGER_PER_CELL_MS","MAX_TOTAL_STAGGER_MS","delay","Math","min","ringScale","prevSelected","current","value","duration","damping","stiffness","ringAnimatedStyle","transform","scale","entering","PhotoPickerCell","PhotoPickerView","photos","selectedIds","multiSelect","maxSelection","allowUpload","refreshing","uploading","isPickingDocument","uploadProgress","hasMore","loadingMore","getThumbUrl","isOwner","onTogglePhoto","onPreviewPhoto","onUpload","onRefresh","onLoadMore","onCancel","onConfirm","t","windowWidth","gridWidth","setGridWidth","onRootLayout","e","w","round","nativeEvent","layout","prev","effectiveWidth","columns","cellSize","gutter","selectionOrder","map","Map","i","id","set","hasAnySelection","showUploadLabel","isEmpty","length","atSelectionLimit","handleCellPress","handleCellLongPress","handleConfirm","renderItem","item","index","has","selIndex","get","isLastInRow","name","keyExtractor","listFooter","color","handleEndReached","confirmDisabled","confirmLabel","count","progressFraction","total","max","flex","onLayout","disabled","busy","data","numColumns","contentContainerClassName","showsVerticalScrollIndicator","refreshControl","tintColor","colors","progressViewOffset","onEndReached","onEndReachedThreshold","ListFooterComponent","removeClippedSubviews","initialNumToRender","windowSize","hitSlop","top","bottom","left","right","letterSpacing","numberOfLines","opacity"],"sourceRoot":"../../../../../src","sources":["ui/screens/fileManagement/PhotoPickerSection.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","View","Text","TouchableOpacity","ActivityIndicator","RefreshControl","FlatList","Platform","Animated","useWindowDimensions","Image","ExpoImage","Ionicons","MaterialCommunityIcons","computePhotoGridLayout","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","hapticsModulePromise","getHaptics","OS","Promise","resolve","mod","impactAsync","hapticImpact","style","h","styleEnum","ImpactFeedbackStyle","Heavy","Medium","Light","hapticSelection","selectionAsync","hapticNotification","type","typeEnum","NotificationFeedbackType","Error","Warning","Success","notificationAsync","HANDLE_ZONE","APP_BAR_HEIGHT","HEADER_HEIGHT","GRID_CONTENT_PADDING_TOP","STAGGER_PER_CELL_MS","MAX_TOTAL_STAGGER_MS","ENTRANCE_DURATION_MS","RING_PULSE_PEAK","RING_PULSE_UP_MS","RING_SPRING_FRICTION","RING_SPRING_TENSION","CELL_CORNER_RADIUS","SELECTION_RING_WIDTH","PhotoPickerCellContent","props","photo","dim","isSelected","selectionIndex","primaryColor","thumbUrl","ring","children","className","source","uri","width","height","contentFit","transition","cachePolicy","accessibilityLabel","filename","pointerEvents","backgroundColor","String","PhotoPickerCellStatic","memo","size","marginRight","marginBottom","onPress","onLongPress","a11yLabel","cellWrapperStyle","borderColor","activeOpacity","accessibilityRole","accessibilityState","selected","PhotoPickerCellAnimated","enterIndex","delay","Math","min","opacity","Value","current","entrance","timing","toValue","duration","useNativeDriver","start","stop","ringScale","prevSelected","setValue","pulse","sequence","spring","friction","tension","position","top","right","bottom","left","borderRadius","borderWidth","transform","scale","PhotoPickerCell","reduceMotion","PhotoPickerView","photos","selectedIds","multiSelect","maxSelection","allowUpload","refreshing","uploading","isPickingDocument","uploadProgress","hasMore","loadingMore","getThumbUrl","isOwner","onTogglePhoto","onPreviewPhoto","onUpload","onRefresh","onLoadMore","onCancel","onConfirm","t","windowWidth","gridWidth","setGridWidth","onRootLayout","e","w","round","nativeEvent","layout","prev","effectiveWidth","columns","cellSize","gutter","selectionOrder","map","Map","i","id","set","hasAnySelection","showUploadLabel","isEmpty","length","atSelectionLimit","handleCellPress","handleCellLongPress","handleConfirm","renderItem","item","index","has","selIndex","get","isLastInRow","name","keyExtractor","listFooter","color","handleEndReached","confirmDisabled","confirmLabel","count","progressFraction","total","max","flex","minHeight","onLayout","disabled","busy","data","numColumns","contentContainerClassName","showsVerticalScrollIndicator","refreshControl","tintColor","colors","progressViewOffset","onEndReached","onEndReachedThreshold","ListFooterComponent","removeClippedSubviews","initialNumToRender","windowSize","hitSlop","letterSpacing","numberOfLines"],"sourceRoot":"../../../../../src","sources":["ui/screens/fileManagement/PhotoPickerSection.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAChF,SACIC,IAAI,EACJC,IAAI,EACJC,gBAAgB,EAChBC,iBAAiB,EACjBC,cAAc,EACdC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,mBAAmB,QAEhB,cAAc;AACrB,SAASC,KAAK,IAAIC,SAAS,QAAQ,YAAY;AAC/C,SAASC,QAAQ,EAAEC,sBAAsB,QAAQ,oBAAoB;AAErE,SAASC,sBAAsB,QAAQ,sBAAmB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AALA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAgBA,IAAIC,oBAA0D,GAAG,IAAI;AACrE,MAAMC,UAAU,GAAGA,CAAA,KAAqC;EACpD,IAAIf,QAAQ,CAACgB,EAAE,KAAK,KAAK,EAAE,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EACvD,IAAIJ,oBAAoB,EAAE,OAAOA,oBAAoB;EACrDA,oBAAoB,GAAG,CAAC,YAAY;IAChC,IAAI;MACA,MAAMK,GAAG,GAAI,MAAM,MAAM,CAAC,cAAc,CAA8B;MACtE,IAAI,CAACA,GAAG,IAAI,OAAOA,GAAG,CAACC,WAAW,KAAK,UAAU,EAAE,OAAO,IAAI;MAC9D,OAAOD,GAAG;IACd,CAAC,CAAC,MAAM;MACJ,OAAO,IAAI;IACf;EACJ,CAAC,EAAE,CAAC;EACJ,OAAOL,oBAAoB;AAC/B,CAAC;AAED,MAAMO,YAAY,GAAG,MAAOC,KAAmB,IAAoB;EAC/D,MAAMC,CAAC,GAAG,MAAMR,UAAU,CAAC,CAAC;EAC5B,IAAI,CAACQ,CAAC,EAAE;EACR,MAAMC,SAAS,GACXF,KAAK,KAAK,OAAO,GACXC,CAAC,CAACE,mBAAmB,CAACC,KAAK,GAC3BJ,KAAK,KAAK,QAAQ,GACdC,CAAC,CAACE,mBAAmB,CAACE,MAAM,GAC5BJ,CAAC,CAACE,mBAAmB,CAACG,KAAK;EACzC,IAAI;IACA,MAAML,CAAC,CAACH,WAAW,CAACI,SAAS,CAAC;EAClC,CAAC,CAAC,MAAM;IACJ;EAAA;AAER,CAAC;AAED,MAAMK,eAAe,GAAG,MAAAA,CAAA,KAA2B;EAC/C,MAAMN,CAAC,GAAG,MAAMR,UAAU,CAAC,CAAC;EAC5B,IAAI,CAACQ,CAAC,EAAE;EACR,IAAI;IACA,MAAMA,CAAC,CAACO,cAAc,CAAC,CAAC;EAC5B,CAAC,CAAC,MAAM;IACJ;EAAA;AAER,CAAC;AAED,MAAMC,kBAAkB,GAAG,MAAOC,IAAwB,IAAoB;EAC1E,MAAMT,CAAC,GAAG,MAAMR,UAAU,CAAC,CAAC;EAC5B,IAAI,CAACQ,CAAC,EAAE;EACR,MAAMU,QAAQ,GACVD,IAAI,KAAK,OAAO,GACVT,CAAC,CAACW,wBAAwB,CAACC,KAAK,GAChCH,IAAI,KAAK,SAAS,GACdT,CAAC,CAACW,wBAAwB,CAACE,OAAO,GAClCb,CAAC,CAACW,wBAAwB,CAACG,OAAO;EAChD,IAAI;IACA,MAAMd,CAAC,CAACe,iBAAiB,CAACL,QAAQ,CAAC;EACvC,CAAC,CAAC,MAAM;IACJ;EAAA;AAER,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,WAAW,GAAG,EAAE;AACtB,MAAMC,cAAc,GAAG,EAAE;AACzB,MAAMC,aAAa,GAAGF,WAAW,GAAGC,cAAc,CAAC,CAAC;AACpD,MAAME,wBAAwB,GAAGD,aAAa,GAAG,CAAC,CAAC,CAAC;;AAEpD;AACA;AACA;AACA;AACA;;AA2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,mBAAmB,GAAG,EAAE;AAC9B,MAAMC,oBAAoB,GAAG,GAAG;AAChC,MAAMC,oBAAoB,GAAG,GAAG;AAChC;AACA,MAAMC,eAAe,GAAG,IAAI;AAC5B,MAAMC,gBAAgB,GAAG,GAAG;AAC5B,MAAMC,oBAAoB,GAAG,CAAC;AAC9B,MAAMC,mBAAmB,GAAG,GAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAMC,oBAAoB,GAAG,CAAC,CAAC,CAAC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,sBAAsBA,CAACC,KAQ/B,EAAE;EACC,MAAM;IACFC,KAAK;IAAEC,GAAG;IAAEC,UAAU;IAAEC,cAAc;IAAEC,YAAY;IAAEC,QAAQ;IAAEC;EACpE,CAAC,GAAGP,KAAK;EAET,oBACIxC,KAAA,CAAAF,SAAA;IAAAkD,QAAA,gBACIpD,IAAA,CAACf,IAAI;MACDoE,SAAS,EAAE,uDAAuDP,GAAG,GAAG,aAAa,GAAG,EAAE,EAAG;MAAAM,QAAA,eAE7FpD,IAAA,CAACL,SAAS;QACN2D,MAAM,EAAE;UAAEC,GAAG,EAAEL;QAAS,CAAE;QAC1BrC,KAAK,EAAE;UAAE2C,KAAK,EAAE,MAAM;UAAEC,MAAM,EAAE;QAAO,CAAE;QACzCC,UAAU,EAAC,OAAO;QAClBC,UAAU,EAAE,GAAI;QAChBC,WAAW,EAAC,aAAa;QACzBC,kBAAkB,EAAEhB,KAAK,CAACiB;MAAS,CACtC;IAAC,CACA,CAAC,EACNX,IAAI,EACJJ,UAAU,iBACP/C,IAAA,CAACf,IAAI;MACD8E,aAAa,EAAC,MAAM;MACpBV,SAAS,EAAC,kGAAkG;MAC5GxC,KAAK,EAAE;QAAEmD,eAAe,EAAEf;MAAa,CAAE;MAAAG,QAAA,eAEzCpD,IAAA,CAACd,IAAI;QAACmE,SAAS,EAAC,iDAAiD;QAAAD,QAAA,EAC5DJ,cAAc,GAAG,CAAC,GAAGiB,MAAM,CAACjB,cAAc,CAAC,GAAG;MAAE,CAC/C;IAAC,CACL,CACT;EAAA,CACH,CAAC;AAEX;AAmBA,MAAMkB,qBAAqB,gBAAGvF,KAAK,CAACwF,IAAI,CAAC,SAASD,qBAAqBA,CAACtB,KAA2B,EAAE;EACjG,MAAM;IACFC,KAAK;IAAEuB,IAAI;IAAEC,WAAW;IAAEC,YAAY;IAAEvB,UAAU;IAAEC,cAAc;IAClEF,GAAG;IAAEG,YAAY;IAAEC,QAAQ;IAAEqB,OAAO;IAAEC,WAAW;IAAEC;EACvD,CAAC,GAAG7B,KAAK;EAET,MAAM8B,gBAAgB,GAAG;IACrBlB,KAAK,EAAEY,IAAI;IACXX,MAAM,EAAEW,IAAI;IACZC,WAAW;IACXC;EACJ,CAAC;EAED,MAAMnB,IAAI,GAAGJ,UAAU,gBACnB/C,IAAA,CAACf,IAAI;IACD8E,aAAa,EAAC,MAAM;IACpBV,SAAS,EAAC,gDAAgD;IAC1DxC,KAAK,EAAE;MAAE8D,WAAW,EAAE1B;IAAa;EAAE,CACxC,CAAC,GACF,IAAI;EAER,oBACIjD,IAAA,CAACb,gBAAgB;IACbyF,aAAa,EAAE,IAAK;IACpBL,OAAO,EAAEA,OAAQ;IACjBC,WAAW,EAAEA,WAAY;IACzBnB,SAAS,EAAC,UAAU;IACpBxC,KAAK,EAAE6D,gBAAiB;IACxBG,iBAAiB,EAAC,QAAQ;IAC1BhB,kBAAkB,EAAEY,SAAU;IAC9BK,kBAAkB,EAAE;MAAEC,QAAQ,EAAEhC;IAAW,CAAE;IAAAK,QAAA,eAE7CpD,IAAA,CAAC2C,sBAAsB;MACnBE,KAAK,EAAEA,KAAM;MACbC,GAAG,EAAEA,GAAI;MACTC,UAAU,EAAEA,UAAW;MACvBC,cAAc,EAAEA,cAAe;MAC/BC,YAAY,EAAEA,YAAa;MAC3BC,QAAQ,EAAEA,QAAS;MACnBC,IAAI,EAAEA;IAAK,CACd;EAAC,CACY,CAAC;AAE3B,CAAC,CAAC;AAEF,MAAM6B,uBAAuB,gBAAGrG,KAAK,CAACwF,IAAI,CAAC,SAASa,uBAAuBA,CAACpC,KAA2B,EAAE;EACrG,MAAM;IACFC,KAAK;IAAEuB,IAAI;IAAEC,WAAW;IAAEC,YAAY;IAAEvB,UAAU;IAAEC,cAAc;IAClEF,GAAG;IAAEG,YAAY;IAAEC,QAAQ;IAAE+B,UAAU;IAAEV,OAAO;IAAEC,WAAW;IAAEC;EACnE,CAAC,GAAG7B,KAAK;EAET,MAAMsC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAACH,UAAU,GAAG/C,mBAAmB,EAAEC,oBAAoB,CAAC;;EAE9E;EACA;EACA;EACA;EACA,MAAMkD,OAAO,GAAGtG,MAAM,CAAC,IAAIS,QAAQ,CAAC8F,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EACrD1G,SAAS,CAAC,MAAM;IACZ,MAAM2G,QAAQ,GAAGhG,QAAQ,CAACiG,MAAM,CAACJ,OAAO,EAAE;MACtCK,OAAO,EAAE,CAAC;MACVC,QAAQ,EAAEvD,oBAAoB;MAC9B8C,KAAK;MACLU,eAAe,EAAErG,QAAQ,CAACgB,EAAE,KAAK;IACrC,CAAC,CAAC;IACFiF,QAAQ,CAACK,KAAK,CAAC,CAAC;IAChB,OAAO,MAAML,QAAQ,CAACM,IAAI,CAAC,CAAC;EAChC,CAAC,EAAE,CAACT,OAAO,EAAEH,KAAK,CAAC,CAAC;;EAEpB;EACA;EACA,MAAMa,SAAS,GAAGhH,MAAM,CAAC,IAAIS,QAAQ,CAAC8F,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EACvD,MAAMS,YAAY,GAAGjH,MAAM,CAACgE,UAAU,CAAC;EACvClE,SAAS,CAAC,MAAM;IACZ,IAAImH,YAAY,CAACT,OAAO,KAAKxC,UAAU,EAAE;IACzCiD,YAAY,CAACT,OAAO,GAAGxC,UAAU;IACjC,IAAI,CAACA,UAAU,EAAE;MACbgD,SAAS,CAACE,QAAQ,CAAC,CAAC,CAAC;MACrB;IACJ;IACA,MAAMC,KAAK,GAAG1G,QAAQ,CAAC2G,QAAQ,CAAC,CAC5B3G,QAAQ,CAACiG,MAAM,CAACM,SAAS,EAAE;MACvBL,OAAO,EAAErD,eAAe;MACxBsD,QAAQ,EAAErD,gBAAgB;MAC1BsD,eAAe,EAAErG,QAAQ,CAACgB,EAAE,KAAK;IACrC,CAAC,CAAC,EACFf,QAAQ,CAAC4G,MAAM,CAACL,SAAS,EAAE;MACvBL,OAAO,EAAE,CAAC;MACVW,QAAQ,EAAE9D,oBAAoB;MAC9B+D,OAAO,EAAE9D,mBAAmB;MAC5BoD,eAAe,EAAErG,QAAQ,CAACgB,EAAE,KAAK;IACrC,CAAC,CAAC,CACL,CAAC;IACF2F,KAAK,CAACL,KAAK,CAAC,CAAC;IACb,OAAO,MAAMK,KAAK,CAACJ,IAAI,CAAC,CAAC;EAC7B,CAAC,EAAE,CAAC/C,UAAU,EAAEgD,SAAS,CAAC,CAAC;;EAE3B;EACA;EACA;EACA,MAAM5C,IAAI,GAAGJ,UAAU,gBACnB/C,IAAA,CAACR,QAAQ,CAACP,IAAI;IACV8E,aAAa,EAAC,MAAM;IACpBlD,KAAK,EAAE;MACH0F,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CAAC;MACTC,IAAI,EAAE,CAAC;MACPC,YAAY,EAAEnE,kBAAkB;MAChCoE,WAAW,EAAEnE,oBAAoB;MACjCiC,WAAW,EAAE1B,YAAY;MACzB6D,SAAS,EAAE,CAAC;QAAEC,KAAK,EAAEhB;MAAU,CAAC;IACpC;EAAE,CACL,CAAC,GACF,IAAI;EAER;IAAA;IACI;IACA;IACA;IACA;IACA/F,IAAA,CAACR,QAAQ,CAACP,IAAI;MACV4B,KAAK,EAAE;QACH2C,KAAK,EAAEY,IAAI;QACXX,MAAM,EAAEW,IAAI;QACZC,WAAW;QACXC,YAAY;QACZiC,QAAQ,EAAE,UAAU;QACpBlB;MACJ,CAAE;MAAAjC,QAAA,eAEFpD,IAAA,CAACb,gBAAgB;QACbyF,aAAa,EAAE,IAAK;QACpBL,OAAO,EAAEA,OAAQ;QACjBC,WAAW,EAAEA,WAAY;QACzBnB,SAAS,EAAC,QAAQ;QAClBwB,iBAAiB,EAAC,QAAQ;QAC1BhB,kBAAkB,EAAEY,SAAU;QAC9BK,kBAAkB,EAAE;UAAEC,QAAQ,EAAEhC;QAAW,CAAE;QAAAK,QAAA,eAE7CpD,IAAA,CAAC2C,sBAAsB;UACnBE,KAAK,EAAEA,KAAM;UACbC,GAAG,EAAEA,GAAI;UACTC,UAAU,EAAEA,UAAW;UACvBC,cAAc,EAAEA,cAAe;UAC/BC,YAAY,EAAEA,YAAa;UAC3BC,QAAQ,EAAEA,QAAS;UACnBC,IAAI,EAAEA;QAAK,CACd;MAAC,CACY;IAAC,CACR;EAAC;AAExB,CAAC,CAAC;AAEF,MAAM6D,eAAe,gBAAGrI,KAAK,CAACwF,IAAI,CAAC,SAAS6C,eAAeA,CAACpE,KAA2B,EAAE;EACrF;EACA;EACA;EACA,IAAIA,KAAK,CAACqE,YAAY,EAAE;IACpB,oBAAOjH,IAAA,CAACkE,qBAAqB;MAAA,GAAKtB;IAAK,CAAG,CAAC;EAC/C;EACA,oBAAO5C,IAAA,CAACgF,uBAAuB;IAAA,GAAKpC;EAAK,CAAG,CAAC;AACjD,CAAC,CAAC;AAEF,MAAMsE,eAA+C,GAAGA,CAAC;EACrDC,MAAM;EACNC,WAAW;EACXC,WAAW;EACXC,YAAY;EACZC,WAAW;EACXC,UAAU;EACVC,SAAS;EACTC,iBAAiB;EACjBC,cAAc;EACdC,OAAO;EACPC,WAAW;EACXZ,YAAY;EACZa,WAAW;EACX7E,YAAY;EACZ8E,OAAO;EACPC,aAAa;EACbC,cAAc;EACdC,QAAQ;EACRC,SAAS;EACTC,UAAU;EACVC,QAAQ;EACRC,SAAS;EACTC;AACJ,CAAC,KAAK;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM;IAAE/E,KAAK,EAAEgF;EAAY,CAAC,GAAG/I,mBAAmB,CAAC,CAAC;EACpD,MAAM,CAACgJ,SAAS,EAAEC,YAAY,CAAC,GAAG1J,QAAQ,CAAC,CAAC,CAAC;EAC7C,MAAM2J,YAAY,GAAG/J,WAAW,CAAEgK,CAAoB,IAAK;IACvD,MAAMC,CAAC,GAAG1D,IAAI,CAAC2D,KAAK,CAACF,CAAC,CAACG,WAAW,CAACC,MAAM,CAACxF,KAAK,CAAC;IAChDkF,YAAY,CAAEO,IAAI,IAAMA,IAAI,KAAKJ,CAAC,GAAGI,IAAI,GAAGJ,CAAE,CAAC;EACnD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMK,cAAc,GAAGT,SAAS,GAAG,CAAC,GAAGA,SAAS,GAAGD,WAAW;EAC9D,MAAM;IAAEW,OAAO;IAAEC,QAAQ;IAAEC;EAAO,CAAC,GAAGvK,OAAO,CACzC,MAAMgB,sBAAsB,CAACoJ,cAAc,CAAC,EAC5C,CAACA,cAAc,CACnB,CAAC;;EAED;EACA;EACA;EACA,MAAMI,cAAc,GAAGxK,OAAO,CAAC,MAAM;IACjC,MAAMyK,GAAG,GAAG,IAAIC,GAAG,CAAiB,CAAC;IACrC,IAAIC,CAAC,GAAG,CAAC;IACT,KAAK,MAAMC,EAAE,IAAItC,WAAW,EAAE;MAC1BmC,GAAG,CAACI,GAAG,CAACD,EAAE,EAAED,CAAC,EAAE,CAAC;IACpB;IACA,OAAOF,GAAG;EACd,CAAC,EAAE,CAACnC,WAAW,CAAC,CAAC;EAEjB,MAAMwC,eAAe,GAAGxC,WAAW,CAAChD,IAAI,GAAG,CAAC;;EAE5C;EACA,MAAMyF,eAAe,GAAGX,cAAc,IAAI,GAAG;EAE7C,MAAMY,OAAO,GAAG3C,MAAM,CAAC4C,MAAM,KAAK,CAAC;EACnC,MAAMC,gBAAgB,GAClB3C,WAAW,IAAIC,YAAY,IAAI,IAAI,IAAIF,WAAW,CAAChD,IAAI,IAAIkD,YAAY;EAE3E,MAAM2C,eAAe,GAAGrL,WAAW,CAC9BiE,KAAmB,IAAK;IACrB,IAAItD,QAAQ,CAACgB,EAAE,KAAK,KAAK,EAAE;MACvB,KAAKK,YAAY,CAAC,OAAO,CAAC;IAC9B;IACAoH,aAAa,CAACnF,KAAK,CAAC;EACxB,CAAC,EACD,CAACmF,aAAa,CAClB,CAAC;EAED,MAAMkC,mBAAmB,GAAGtL,WAAW,CAClCiE,KAAmB,IAAK;IACrB,IAAItD,QAAQ,CAACgB,EAAE,KAAK,KAAK,EAAE;MACvB,KAAKa,eAAe,CAAC,CAAC;IAC1B;IACA6G,cAAc,CAACpF,KAAK,CAAC;EACzB,CAAC,EACD,CAACoF,cAAc,CACnB,CAAC;EAED,MAAMkC,aAAa,GAAGvL,WAAW,CAAC,MAAM;IACpC,IAAIyI,WAAW,EAAE;MACb,IAAID,WAAW,CAAChD,IAAI,KAAK,CAAC,EAAE;MAC5B,IAAI7E,QAAQ,CAACgB,EAAE,KAAK,KAAK,EAAE;QACvB,KAAKe,kBAAkB,CAAC,SAAS,CAAC;MACtC;IACJ;IACAgH,SAAS,CAAC,CAAC;EACf,CAAC,EAAE,CAACjB,WAAW,EAAED,WAAW,CAAChD,IAAI,EAAEkE,SAAS,CAAC,CAAC;;EAE9C;EACA,MAAM8B,UAAU,GAAGxL,WAAW,CAC1B,CAAC;IAAEyL,IAAI;IAAEC;EAA6C,CAAC,KAAK;IACxD,MAAMvH,UAAU,GAAGqE,WAAW,CAACmD,GAAG,CAACF,IAAI,CAACX,EAAE,CAAC;IAC3C,MAAMc,QAAQ,GAAGzH,UAAU,GAAIuG,cAAc,CAACmB,GAAG,CAACJ,IAAI,CAACX,EAAE,CAAC,IAAI,CAAC,GAAI,CAAC;IACpE;IACA;IACA,MAAMgB,WAAW,GAAG,CAACJ,KAAK,GAAG,CAAC,IAAInB,OAAO,KAAK,CAAC;IAC/C,MAAM1E,SAAS,GAAG8D,CAAC,CACfxF,UAAU,GACJ,uCAAuC,GACvC,yCAAyC,EAC/C;MAAE4H,IAAI,EAAEN,IAAI,CAACvG,QAAQ,IAAI;IAAQ,CACrC,CAAC;IACD,oBACI9D,IAAA,CAACgH,eAAe;MACZnE,KAAK,EAAEwH,IAAK;MACZjG,IAAI,EAAEgF,QAAS;MACf/E,WAAW,EAAEqG,WAAW,GAAG,CAAC,GAAGrB,MAAO;MACtC/E,YAAY,EAAE+E,MAAO;MACrBtG,UAAU,EAAEA,UAAW;MACvBC,cAAc,EAAEwH,QAAS;MACzB1H,GAAG,EACCuE,WAAW,IACR,CAACtE,UAAU,KACV6G,eAAe,IAAII,gBAAgB,CAC1C;MACD/G,YAAY,EAAEA,YAAa;MAC3BC,QAAQ,EAAE4E,WAAW,CAACuC,IAAI,CAAE;MAC5BpF,UAAU,EAAEqF,KAAM;MAClBrD,YAAY,EAAEA,YAAa;MAC3B1C,OAAO,EAAEA,CAAA,KAAM0F,eAAe,CAACI,IAAI,CAAE;MACrC7F,WAAW,EAAEA,CAAA,KAAM0F,mBAAmB,CAACG,IAAI,CAAE;MAC7C5F,SAAS,EAAEA;IAAU,CACxB,CAAC;EAEV,CAAC,EACD,CACI2C,WAAW,EAAEkC,cAAc,EAAEH,OAAO,EAAEC,QAAQ,EAAEC,MAAM,EAAEhC,WAAW,EAAEuC,eAAe,EACpFI,gBAAgB,EAAE/G,YAAY,EAAE6E,WAAW,EAAEb,YAAY,EAAEgD,eAAe,EAC1EC,mBAAmB,EAAE3B,CAAC,CAE9B,CAAC;EAED,MAAMqC,YAAY,GAAGhM,WAAW,CAAEyL,IAAkB,IAAKA,IAAI,CAACX,EAAE,EAAE,EAAE,CAAC;EAErE,MAAMmB,UAAU,GAAG/L,OAAO,CAAC,MAAM;IAC7B,IAAI,CAAC+I,WAAW,EAAE,OAAO,IAAI;IAC7B,oBACI7H,IAAA,CAACf,IAAI;MAACoE,SAAS,EAAC,0BAA0B;MAAAD,QAAA,eACtCpD,IAAA,CAACZ,iBAAiB;QAACgF,IAAI,EAAC,OAAO;QAAC0G,KAAK,EAAC;MAAS,CAAE;IAAC,CAChD,CAAC;EAEf,CAAC,EAAE,CAACjD,WAAW,CAAC,CAAC;EAEjB,MAAMkD,gBAAgB,GAAGnM,WAAW,CAAC,MAAM;IACvC,IAAIiJ,WAAW,IAAI,CAACD,OAAO,EAAE;IAC7BQ,UAAU,CAAC,CAAC;EAChB,CAAC,EAAE,CAACP,WAAW,EAAED,OAAO,EAAEQ,UAAU,CAAC,CAAC;EAEtC,MAAM4C,eAAe,GAAG3D,WAAW,IAAID,WAAW,CAAChD,IAAI,KAAK,CAAC;EAC7D,MAAM6G,YAAY,GAAG5D,WAAW,GAC1BkB,CAAC,CAAC,8BAA8B,EAAE;IAAE2C,KAAK,EAAE9D,WAAW,CAAChD;EAAK,CAAC,CAAC,GAC9DmE,CAAC,CAAC,qBAAqB,CAAC;;EAE9B;EACA,MAAM4C,gBAAgB,GAAGxD,cAAc,IAAIA,cAAc,CAACyD,KAAK,GAAG,CAAC,GAC7DjG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACkG,GAAG,CAAC,CAAC,EAAE1D,cAAc,CAACpC,OAAO,GAAGoC,cAAc,CAACyD,KAAK,CAAC,CAAC,GACvE,CAAC;EAEP;IAAA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACApL,IAAA,CAACf,IAAI;MAAC4B,KAAK,EAAE;QAAEyK,IAAI,EAAE,CAAC;QAAEC,SAAS,EAAE;MAAE,CAAE;MAACC,QAAQ,EAAE7C,YAAa;MAAAvF,QAAA,eAC3DhD,KAAA,CAACnB,IAAI;QAACoE,SAAS,EAAC,iBAAiB;QAACxC,KAAK,EAAE;UAAE0K,SAAS,EAAE;QAAE,CAAE;QAAAnI,QAAA,GAErD0G,OAAO,gBACJ1J,KAAA,CAACnB,IAAI;UAACoE,SAAS,EAAC,0DAA0D;UAAAD,QAAA,gBACtEpD,IAAA,CAACf,IAAI;YAACoE,SAAS,EAAC,wBAAwB;YAAAD,QAAA,eACpCpD,IAAA,CAACH,sBAAsB;cAAC8K,IAAI,EAAC,eAAe;cAACvG,IAAI,EAAE,EAAG;cAAC0G,KAAK,EAAC;YAAS,CAAE;UAAC,CACvE,CAAC,eACP9K,IAAA,CAACd,IAAI;YAACmE,SAAS,EAAC,yDAAyD;YAAAD,QAAA,EACpEmF,CAAC,CAAC,uCAAuC;UAAC,CACzC,CAAC,eACPvI,IAAA,CAACd,IAAI;YAACmE,SAAS,EAAC,uEAAuE;YAAAD,QAAA,EAClFmF,CAAC,CAAC,0CAA0C;UAAC,CAC5C,CAAC,EACNR,OAAO,IAAIR,WAAW,iBACnBvH,IAAA,CAACb,gBAAgB;YACbkE,SAAS,EAAC,sEAAsE;YAChFxC,KAAK,EAAE;cAAEmD,eAAe,EAAEf;YAAa,CAAE;YACzCsB,OAAO,EAAE2D,QAAS;YAClBuD,QAAQ,EAAEhE,SAAS,IAAIC,iBAAkB;YACzC7C,iBAAiB,EAAC,QAAQ;YAC1BhB,kBAAkB,EAAE0E,CAAC,CAAC,4BAA4B,CAAE;YACpDzD,kBAAkB,EAAE;cAAE4G,IAAI,EAAEjE,SAAS,IAAIC;YAAkB,CAAE;YAAAtE,QAAA,EAE3DqE,SAAS,IAAIC,iBAAiB,gBAC5B1H,IAAA,CAACZ,iBAAiB;cAACgF,IAAI,EAAC,OAAO;cAAC0G,KAAK,EAAC;YAAS,CAAE,CAAC,gBAElD1K,KAAA,CAAAF,SAAA;cAAAkD,QAAA,gBACIpD,IAAA,CAACJ,QAAQ;gBAAC+K,IAAI,EAAC,cAAc;gBAACvG,IAAI,EAAE,EAAG;gBAAC0G,KAAK,EAAC;cAAS,CAAE,CAAC,eAC1D9K,IAAA,CAACd,IAAI;gBAACmE,SAAS,EAAC,sCAAsC;gBAAAD,QAAA,EACjDmF,CAAC,CAAC,4BAA4B;cAAC,CAC9B,CAAC;YAAA,CACT;UACL,CACa,CACrB;QAAA,CACC,CAAC,gBAEHvI,IAAA,CAACV,QAAQ;UAELqM,IAAI,EAAExE,MAAO;UACbiD,UAAU,EAAEA,UAAW;UACvBQ,YAAY,EAAEA,YAAa;UAC3BgB,UAAU,EAAEzC,OAAQ;UACpB9F,SAAS,EAAC,QAAQ;UAClBxC,KAAK,EAAE;YAAE0K,SAAS,EAAE;UAAE,CAAE;UACxBM,yBAAyB,EAAC,uBAAuB;UACjDC,4BAA4B,EAAE,KAAM;UACpCC,cAAc,eACV/L,IAAA,CAACX,cAAc;YACXmI,UAAU,EAAEA,UAAW;YACvBW,SAAS,EAAEA,SAAU;YACrB6D,SAAS,EAAC,SAAS;YACnBC,MAAM,EAAE,CAAChJ,YAAY,CAAE;YACvBiJ,kBAAkB,EAAEjK;UAAyB,CAChD,CACJ;UACDkK,YAAY,EAAEpB,gBAAiB;UAC/BqB,qBAAqB,EAAE,GAAI;UAC3BC,mBAAmB,EAAExB,UAAW;UAChCyB,qBAAqB,EAAE/M,QAAQ,CAACgB,EAAE,KAAK,KAAM;UAC7CgM,kBAAkB,EAAEpH,IAAI,CAACkG,GAAG,CAAC,EAAE,EAAElC,OAAO,GAAG,CAAC,CAAE;UAC9CqD,UAAU,EAAE;QAAE,GAvBT,QAAQrD,OAAO,EAwBvB,CACR,eAMD/I,KAAA,CAACnB,IAAI;UAACoE,SAAS,EAAC,4HAA4H;UAAAD,QAAA,gBACxIhD,KAAA,CAACnB,IAAI;YAACoE,SAAS,EAAC,mDAAmD;YAAAD,QAAA,gBAC/DpD,IAAA,CAACf,IAAI;cAACoE,SAAS,EAAC,kDAAkD;cAAAD,QAAA,eAC9DpD,IAAA,CAACb,gBAAgB;gBACboF,OAAO,EAAE8D,QAAS;gBAClBhF,SAAS,EAAC,mDAAmD;gBAC7DwB,iBAAiB,EAAC,QAAQ;gBAC1BhB,kBAAkB,EAAE0E,CAAC,CAAC,kCAAkC,CAAE;gBAC1DkE,OAAO,EAAE;kBAAEjG,GAAG,EAAE,CAAC;kBAAEE,MAAM,EAAE,CAAC;kBAAEC,IAAI,EAAE,CAAC;kBAAEF,KAAK,EAAE;gBAAE,CAAE;gBAAArD,QAAA,eAElDpD,IAAA,CAACd,IAAI;kBAACmE,SAAS,EAAC,oCAAoC;kBAAAD,QAAA,EAC/CmF,CAAC,CAAC,uBAAuB;gBAAC,CACzB;cAAC,CACO;YAAC,CACjB,CAAC,eACPvI,IAAA,CAACf,IAAI;cAAC8E,aAAa,EAAC,MAAM;cAAAX,QAAA,eACtBpD,IAAA,CAACd,IAAI;gBACDmE,SAAS,EAAC,kDAAkD;gBAC5DxC,KAAK,EAAE;kBAAE6L,aAAa,EAAE,CAAC;gBAAI,CAAE;gBAC/BC,aAAa,EAAE,CAAE;gBAAAvJ,QAAA,EAEhBmF,CAAC,CAAC,4BAA4B;cAAC,CAC9B;YAAC,CACL,CAAC,eACPvI,IAAA,CAACf,IAAI;cAACoE,SAAS,EAAC,gDAAgD;cAAAD,QAAA,EAC3DiE,WAAW,gBACRrH,IAAA,CAACb,gBAAgB;gBACboF,OAAO,EAAE4F,aAAc;gBACvBsB,QAAQ,EAAET,eAAgB;gBAC1B3H,SAAS,EAAC,sEAAsE;gBAChFxC,KAAK,EAAE;kBACHmD,eAAe,EAAEgH,eAAe,GAC1B,wBAAwB,GACxB/H,YAAY;kBAClBoC,OAAO,EAAE2F,eAAe,GAAG,GAAG,GAAG;gBACrC,CAAE;gBACFnG,iBAAiB,EAAC,QAAQ;gBAC1BhB,kBAAkB,EAAE0E,CAAC,CAAC,sCAAsC,CAAE;gBAC9DzD,kBAAkB,EAAE;kBAAE2G,QAAQ,EAAET;gBAAgB,CAAE;gBAAA5H,QAAA,eAElDpD,IAAA,CAACd,IAAI;kBAACmE,SAAS,EAAC,sCAAsC;kBAAAD,QAAA,EACjD6H;gBAAY,CACX;cAAC,CACO,CAAC,GAEnBlD,OAAO,IAAIR,WAAW,iBAClBvH,IAAA,CAACb,gBAAgB;gBACboF,OAAO,EAAE2D,QAAS;gBAClBuD,QAAQ,EAAEhE,SAAS,IAAIC,iBAAkB;gBACzCrE,SAAS,EAAE,gEAAgEwG,eAAe,GAAG,SAAS,GAAG,gCAAgC,EAAG;gBAC5IhJ,KAAK,EAAE;kBAAEmD,eAAe,EAAEf;gBAAa,CAAE;gBACzC4B,iBAAiB,EAAC,QAAQ;gBAC1BhB,kBAAkB,EAAE0E,CAAC,CAAC,sCAAsC,CAAE;gBAC9DzD,kBAAkB,EAAE;kBAAE4G,IAAI,EAAEjE,SAAS,IAAIC;gBAAkB,CAAE;gBAAAtE,QAAA,EAE3DqE,SAAS,IAAIC,iBAAiB,gBAC5B1H,IAAA,CAACZ,iBAAiB;kBAACgF,IAAI,EAAC,OAAO;kBAAC0G,KAAK,EAAC;gBAAS,CAAE,CAAC,gBAElD1K,KAAA,CAAAF,SAAA;kBAAAkD,QAAA,gBACIpD,IAAA,CAACJ,QAAQ;oBAAC+K,IAAI,EAAC,cAAc;oBAACvG,IAAI,EAAE,EAAG;oBAAC0G,KAAK,EAAC;kBAAS,CAAE,CAAC,EACzDjB,eAAe,iBACZ7J,IAAA,CAACd,IAAI;oBAACmE,SAAS,EAAC,sCAAsC;oBAAAD,QAAA,EACjDmF,CAAC,CAAC,uBAAuB;kBAAC,CACzB,CACT;gBAAA,CACH;cACL,CACa;YAEzB,CACC,CAAC;UAAA,CACL,CAAC,EAENd,SAAS,iBACNzH,IAAA,CAACf,IAAI;YAACoE,SAAS,EAAC,uDAAuD;YAAAD,QAAA,eACnEpD,IAAA,CAACf,IAAI;cACDoE,SAAS,EAAC,QAAQ;cAClBxC,KAAK,EAAE;gBACH2C,KAAK,EAAE,GAAG2B,IAAI,CAAC2D,KAAK,CAACqC,gBAAgB,GAAG,GAAG,CAAC,GAAG;gBAC/CnH,eAAe,EAAEf;cACrB;YAAE,CACL;UAAC,CACA,CACT;QAAA,CACC,CAAC;MAAA,CACL;IAAC,CACL;EAAC;AAEf,CAAC;AAED,eAAeiE,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
/**
|
|
3
|
+
* Patch `relationship.isFollowing` on every cached single-profile entry for
|
|
4
|
+
* `targetUserId` (by-id and viewer-scoped by-username keys) after a follow
|
|
5
|
+
* toggle. Lives outside `userCache.ts` so hooks like `useFollow` can import it
|
|
6
|
+
* without pulling the auth store (which `userCache` uses for viewer defaults).
|
|
7
|
+
*/
|
|
8
|
+
export declare function patchCachedUserRelationship(queryClient: QueryClient, targetUserId: string, isFollowing: boolean): void;
|
|
9
|
+
//# sourceMappingURL=userCacheRelationship.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userCacheRelationship.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/queries/userCacheRelationship.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMzD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,OAAO,GACnB,IAAI,CAgBN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFollow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollow.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useFollow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollow.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKrF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,GAAG,MAAM,EAAE;;;;;iCAqFF,OAAO;;;;;;;8BAqBV,MAAM;+BAKL,MAAM;;;;;;;;;;;;;;;qBA7DR,OAAO;mBAAa,OAAO;eAAS,MAAM,GAAG,IAAI;;wCA2FhC,MAAM;2CAOT,MAAM,aAAa,OAAO;uCAIxB,MAAM;;0BAarB,OAAO,CAAC,gBAAgB,CAAC;4BAMvB,OAAO,CAAC,kBAAkB,CAAC;sCAKrB,MAAM;;;;;;;;;;;;;;;;;;CAyC5D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,aAAa,WAAW,EAAE,qBAAqB,OAAO;;;;;;;iCA8CvD,OAAO;;CAkBxD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,mBACT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAExC,CAAC;AAGT,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM;;;;;8BAiBD,MAAM;+BAIL,MAAM;CAYrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhotoPickerSection.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/fileManagement/PhotoPickerSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PhotoPickerSection.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/fileManagement/PhotoPickerSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAejF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA6FhD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,GAAG,SAAS,CAAC;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,cAAc,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CACtE;AAyQD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA+UnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
/**
|
|
3
|
+
* Patch `relationship.isFollowing` on every cached single-profile entry for
|
|
4
|
+
* `targetUserId` (by-id and viewer-scoped by-username keys) after a follow
|
|
5
|
+
* toggle. Lives outside `userCache.ts` so hooks like `useFollow` can import it
|
|
6
|
+
* without pulling the auth store (which `userCache` uses for viewer defaults).
|
|
7
|
+
*/
|
|
8
|
+
export declare function patchCachedUserRelationship(queryClient: QueryClient, targetUserId: string, isFollowing: boolean): void;
|
|
9
|
+
//# sourceMappingURL=userCacheRelationship.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userCacheRelationship.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/queries/userCacheRelationship.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMzD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,OAAO,GACnB,IAAI,CAgBN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFollow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollow.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useFollow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollow.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKrF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,GAAG,MAAM,EAAE;;;;;iCAqFF,OAAO;;;;;;;8BAqBV,MAAM;+BAKL,MAAM;;;;;;;;;;;;;;;qBA7DR,OAAO;mBAAa,OAAO;eAAS,MAAM,GAAG,IAAI;;wCA2FhC,MAAM;2CAOT,MAAM,aAAa,OAAO;uCAIxB,MAAM;;0BAarB,OAAO,CAAC,gBAAgB,CAAC;4BAMvB,OAAO,CAAC,kBAAkB,CAAC;sCAKrB,MAAM;;;;;;;;;;;;;;;;;;CAyC5D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,aAAa,WAAW,EAAE,qBAAqB,OAAO;;;;;;;iCA8CvD,OAAO;;CAkBxD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,mBACT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAExC,CAAC;AAGT,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM;;;;;8BAiBD,MAAM;+BAIL,MAAM;CAYrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhotoPickerSection.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/fileManagement/PhotoPickerSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PhotoPickerSection.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/fileManagement/PhotoPickerSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAejF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA6FhD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,GAAG,SAAS,CAAC;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,cAAc,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;CACtE;AAyQD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA+UnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/services",
|
|
3
|
-
"version": "22.8.
|
|
3
|
+
"version": "22.8.3",
|
|
4
4
|
"description": "OxyHQ Expo/React Native SDK — UI components, screens, and native features",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
"@commitlint/cli": "^17.6.5",
|
|
137
137
|
"@commitlint/config-conventional": "^17.6.5",
|
|
138
138
|
"@expo/vector-icons": "^15.0.3",
|
|
139
|
-
"@oxyhq/core": "12.
|
|
139
|
+
"@oxyhq/core": "12.10.0",
|
|
140
140
|
"@react-native-async-storage/async-storage": "^2.0.0",
|
|
141
141
|
"@react-native-community/netinfo": "^11.4.1",
|
|
142
142
|
"@react-native/babel-preset": "^0.86.0",
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
},
|
|
177
177
|
"peerDependencies": {
|
|
178
178
|
"@expo/vector-icons": "^15.0.3",
|
|
179
|
-
"@oxyhq/bloom": ">=0.
|
|
179
|
+
"@oxyhq/bloom": ">=0.43.0",
|
|
180
180
|
"@oxyhq/core": "^12.9.0",
|
|
181
181
|
"@react-native-async-storage/async-storage": "^2.0.0",
|
|
182
182
|
"@react-native-community/netinfo": "^11.4.1",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
import { QueryClient } from '@tanstack/react-query';
|
|
16
16
|
import { upsertCachedUser, upsertCachedUsers } from '../userCache';
|
|
17
|
+
import { patchCachedUserRelationship } from '../userCacheRelationship';
|
|
17
18
|
import type { CacheableUser } from '../userCache';
|
|
18
19
|
import { queryKeys } from '../queryKeys';
|
|
19
20
|
import { useAuthStore } from '../../../stores/authStore';
|
|
@@ -359,3 +360,57 @@ describe('upsertCachedUsers — batch', () => {
|
|
|
359
360
|
expect(qc.getQueryCache().getAll()).toHaveLength(0);
|
|
360
361
|
});
|
|
361
362
|
});
|
|
363
|
+
|
|
364
|
+
describe('patchCachedUserRelationship', () => {
|
|
365
|
+
it('updates relationship.isFollowing on the viewer-scoped by-username entry', () => {
|
|
366
|
+
const qc = makeClient();
|
|
367
|
+
upsertCachedUser(
|
|
368
|
+
qc,
|
|
369
|
+
{
|
|
370
|
+
id: 'u1',
|
|
371
|
+
username: 'alice',
|
|
372
|
+
relationship: { isFollowing: false, followsYou: true },
|
|
373
|
+
},
|
|
374
|
+
'viewer-1',
|
|
375
|
+
);
|
|
376
|
+
|
|
377
|
+
patchCachedUserRelationship(qc, 'u1', true);
|
|
378
|
+
|
|
379
|
+
expect(readByUsername(qc, 'alice', 'viewer-1')?.relationship).toEqual({
|
|
380
|
+
isFollowing: true,
|
|
381
|
+
followsYou: true,
|
|
382
|
+
});
|
|
383
|
+
});
|
|
384
|
+
|
|
385
|
+
it('never writes relationship onto the viewer-independent by-id key', () => {
|
|
386
|
+
const qc = makeClient();
|
|
387
|
+
upsertCachedUser(
|
|
388
|
+
qc,
|
|
389
|
+
{
|
|
390
|
+
id: 'u1',
|
|
391
|
+
username: 'alice',
|
|
392
|
+
relationship: { isFollowing: false, followsYou: true },
|
|
393
|
+
},
|
|
394
|
+
'viewer-1',
|
|
395
|
+
);
|
|
396
|
+
|
|
397
|
+
patchCachedUserRelationship(qc, 'u1', true);
|
|
398
|
+
|
|
399
|
+
expect(readById(qc, 'u1')?.relationship).toBeUndefined();
|
|
400
|
+
});
|
|
401
|
+
|
|
402
|
+
it('updates viewer-scoped detailForViewer keys', () => {
|
|
403
|
+
const qc = makeClient();
|
|
404
|
+
qc.setQueryData(queryKeys.users.detailForViewer('u1', 'viewer-1'), {
|
|
405
|
+
id: 'u1',
|
|
406
|
+
username: 'alice',
|
|
407
|
+
relationship: { isFollowing: false, followsYou: false },
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
patchCachedUserRelationship(qc, 'u1', true);
|
|
411
|
+
|
|
412
|
+
expect(
|
|
413
|
+
qc.getQueryData<CacheableUser>(queryKeys.users.detailForViewer('u1', 'viewer-1'))?.relationship,
|
|
414
|
+
).toEqual({ isFollowing: true, followsYou: false });
|
|
415
|
+
});
|
|
416
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
import { queryKeys } from './queryKeys';
|
|
3
|
+
import type { CacheableUser } from './userCache';
|
|
4
|
+
|
|
5
|
+
type CachedUser = CacheableUser & { id: string };
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Patch `relationship.isFollowing` on every cached single-profile entry for
|
|
9
|
+
* `targetUserId` (by-id and viewer-scoped by-username keys) after a follow
|
|
10
|
+
* toggle. Lives outside `userCache.ts` so hooks like `useFollow` can import it
|
|
11
|
+
* without pulling the auth store (which `userCache` uses for viewer defaults).
|
|
12
|
+
*/
|
|
13
|
+
export function patchCachedUserRelationship(
|
|
14
|
+
queryClient: QueryClient,
|
|
15
|
+
targetUserId: string,
|
|
16
|
+
isFollowing: boolean,
|
|
17
|
+
): void {
|
|
18
|
+
queryClient.setQueriesData<CachedUser>(
|
|
19
|
+
{
|
|
20
|
+
queryKey: queryKeys.users.details(),
|
|
21
|
+
// Viewer-relative `relationship` must never be written on the viewer-
|
|
22
|
+
// independent by-id key — only viewer-scoped detail / by-username keys.
|
|
23
|
+
predicate: (query) => (query.queryKey as readonly unknown[]).includes('viewer'),
|
|
24
|
+
},
|
|
25
|
+
(existing) => {
|
|
26
|
+
if (!existing || existing.id !== targetUserId) return existing;
|
|
27
|
+
return {
|
|
28
|
+
...existing,
|
|
29
|
+
relationship: { ...existing.relationship, isFollowing },
|
|
30
|
+
};
|
|
31
|
+
},
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { useCallback, useMemo, useState } from 'react';
|
|
2
|
-
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
3
3
|
import { useFollowStore } from '../stores/followStore';
|
|
4
4
|
import { useOxy } from '../context/OxyContext';
|
|
5
5
|
import type { OxyServices, BulkFollowResult, BulkUnfollowResult } from '@oxyhq/core';
|
|
6
6
|
import { useShallow } from 'zustand/react/shallow';
|
|
7
7
|
import { queryKeys } from './queries/queryKeys';
|
|
8
|
+
import { patchCachedUserRelationship } from './queries/userCacheRelationship';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* useFollow — Hook for follow state management.
|
|
@@ -20,6 +21,7 @@ import { queryKeys } from './queries/queryKeys';
|
|
|
20
21
|
* them in selectors would cause unnecessary selector recalculations).
|
|
21
22
|
*/
|
|
22
23
|
export const useFollow = (userId?: string | string[]) => {
|
|
24
|
+
const queryClient = useQueryClient();
|
|
23
25
|
const { oxyServices, canUsePrivateApi } = useOxy();
|
|
24
26
|
const userIds = useMemo(() => (Array.isArray(userId) ? userId : userId ? [userId] : []), [userId]);
|
|
25
27
|
const isSingleUser = typeof userId === 'string';
|
|
@@ -100,7 +102,8 @@ export const useFollow = (userId?: string | string[]) => {
|
|
|
100
102
|
if (!canUsePrivateApi) throw new Error('Authentication is required to follow users');
|
|
101
103
|
const currentlyFollowing = useFollowStore.getState().followingUsers[userId] ?? false;
|
|
102
104
|
await useFollowStore.getState().toggleFollowUser(userId, oxyServices, currentlyFollowing);
|
|
103
|
-
|
|
105
|
+
patchCachedUserRelationship(queryClient, userId, !currentlyFollowing);
|
|
106
|
+
}, [isSingleUser, userId, canUsePrivateApi, oxyServices, queryClient]);
|
|
104
107
|
|
|
105
108
|
const setFollowStatus = useCallback((following: boolean) => {
|
|
106
109
|
if (!isSingleUser || !userId) throw new Error('setFollowStatus is only available for single user mode');
|
|
@@ -162,7 +165,8 @@ export const useFollow = (userId?: string | string[]) => {
|
|
|
162
165
|
if (!canUsePrivateApi) throw new Error('Authentication is required to follow users');
|
|
163
166
|
const currentState = useFollowStore.getState().followingUsers[targetUserId] ?? false;
|
|
164
167
|
await useFollowStore.getState().toggleFollowUser(targetUserId, oxyServices, currentState);
|
|
165
|
-
|
|
168
|
+
patchCachedUserRelationship(queryClient, targetUserId, !currentState);
|
|
169
|
+
}, [canUsePrivateApi, oxyServices, queryClient]);
|
|
166
170
|
|
|
167
171
|
const setFollowStatusForUser = useCallback((targetUserId: string, following: boolean) => {
|
|
168
172
|
useFollowStore.getState().setFollowingStatus(targetUserId, following);
|