@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.
Files changed (35) hide show
  1. package/lib/commonjs/ui/hooks/queries/userCacheRelationship.js +31 -0
  2. package/lib/commonjs/ui/hooks/queries/userCacheRelationship.js.map +1 -0
  3. package/lib/commonjs/ui/hooks/useFollow.js +6 -2
  4. package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
  5. package/lib/commonjs/ui/screens/FileManagementScreen.js +15 -15
  6. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  7. package/lib/commonjs/ui/screens/ProfileScreen.js +1 -1
  8. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  9. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +133 -82
  10. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  11. package/lib/module/ui/hooks/queries/userCacheRelationship.js +27 -0
  12. package/lib/module/ui/hooks/queries/userCacheRelationship.js.map +1 -0
  13. package/lib/module/ui/hooks/useFollow.js +7 -3
  14. package/lib/module/ui/hooks/useFollow.js.map +1 -1
  15. package/lib/module/ui/screens/FileManagementScreen.js +15 -15
  16. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  17. package/lib/module/ui/screens/ProfileScreen.js +1 -1
  18. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  19. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +134 -83
  20. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  21. package/lib/typescript/commonjs/ui/hooks/queries/userCacheRelationship.d.ts +9 -0
  22. package/lib/typescript/commonjs/ui/hooks/queries/userCacheRelationship.d.ts.map +1 -0
  23. package/lib/typescript/commonjs/ui/hooks/useFollow.d.ts.map +1 -1
  24. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  25. package/lib/typescript/module/ui/hooks/queries/userCacheRelationship.d.ts +9 -0
  26. package/lib/typescript/module/ui/hooks/queries/userCacheRelationship.d.ts.map +1 -0
  27. package/lib/typescript/module/ui/hooks/useFollow.d.ts.map +1 -1
  28. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  29. package/package.json +3 -3
  30. package/src/ui/hooks/queries/__tests__/userCache.test.ts +55 -0
  31. package/src/ui/hooks/queries/userCacheRelationship.ts +33 -0
  32. package/src/ui/hooks/useFollow.ts +7 -3
  33. package/src/ui/screens/FileManagementScreen.tsx +13 -13
  34. package/src/ui/screens/ProfileScreen.tsx +1 -1
  35. 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 so web never touches Reanimated worklets.
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
- const ringScale = useSharedValue(1);
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.value = 1;
252
+ ringScale.setValue(1);
211
253
  return;
212
254
  }
213
- if (reduceMotion) {
214
- ringScale.value = 1;
215
- return;
216
- }
217
- ringScale.value = withSequence(withTiming(1.05, {
218
- duration: 110
219
- }), withSpring(1, {
220
- damping: 14,
221
- stiffness: 200
222
- }));
223
- }, [isSelected, reduceMotion, ringScale]);
224
- const ringAnimatedStyle = useAnimatedStyle(() => ({
225
- transform: [{
226
- scale: ringScale.value
227
- }]
228
- }));
229
- const cellWrapperStyle = {
230
- width: size,
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
- className: "absolute inset-0 rounded-radius-8 border-[3px]",
238
- style: [{
239
- borderColor: primaryColor
240
- }, ringAnimatedStyle]
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
- if (reduceMotion) {
243
- return /*#__PURE__*/_jsx(TouchableOpacity, {
244
- activeOpacity: 0.85,
245
- onPress: onPress,
246
- onLongPress: onLongPress,
247
- className: "relative",
248
- style: cellWrapperStyle,
249
- accessibilityRole: "button",
250
- accessibilityLabel: a11yLabel,
251
- accessibilityState: {
252
- selected: isSelected
253
- },
254
- children: /*#__PURE__*/_jsx(PhotoPickerCellContent, {
255
- photo: photo,
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(PhotoPickerCellContent, {
280
- photo: photo,
281
- dim: dim,
282
- isSelected: isSelected,
283
- selectionIndex: selectionIndex,
284
- primaryColor: primaryColor,
285
- thumbUrl: thumbUrl,
286
- ring: ring
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
- if (Platform.OS === 'web') {
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: true,
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":"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","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;AAIrF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,GAAG,MAAM,EAAE;;;;;iCAmFF,OAAO;;;;;;;8BAqBV,MAAM;+BAKL,MAAM;;;;;;;;;;;;;;;qBA5DR,OAAO;mBAAa,OAAO;eAAS,MAAM,GAAG,IAAI;;wCA0FhC,MAAM;2CAMT,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
+ {"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;AAsBjF,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;AAoOD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAwUnD,CAAC;AAEF,eAAe,eAAe,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;AAIrF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,GAAG,MAAM,EAAE;;;;;iCAmFF,OAAO;;;;;;;8BAqBV,MAAM;+BAKL,MAAM;;;;;;;;;;;;;;;qBA5DR,OAAO;mBAAa,OAAO;eAAS,MAAM,GAAG,IAAI;;wCA0FhC,MAAM;2CAMT,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
+ {"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;AAsBjF,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;AAoOD,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAwUnD,CAAC;AAEF,eAAe,eAAe,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.0",
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.9.0",
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.16.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
- }, [isSingleUser, userId, canUsePrivateApi, oxyServices]);
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
- }, [canUsePrivateApi, oxyServices]);
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);