@oxyhq/services 10.3.1 → 10.3.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/components/FollowButton.js +45 -6
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- package/lib/commonjs/ui/hooks/useFollow.js +7 -0
- package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
- package/lib/commonjs/ui/stores/followStore.js +68 -0
- package/lib/commonjs/ui/stores/followStore.js.map +1 -1
- package/lib/module/ui/components/FollowButton.js +45 -6
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- package/lib/module/ui/hooks/useFollow.js +7 -0
- package/lib/module/ui/hooks/useFollow.js.map +1 -1
- package/lib/module/ui/stores/followStore.js +68 -0
- package/lib/module/ui/stores/followStore.js.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowButton.d.ts +2 -1
- package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useFollow.d.ts +3 -1
- package/lib/typescript/commonjs/ui/hooks/useFollow.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/stores/followStore.d.ts +2 -1
- package/lib/typescript/commonjs/ui/stores/followStore.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowButton.d.ts +2 -1
- package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useFollow.d.ts +3 -1
- package/lib/typescript/module/ui/hooks/useFollow.d.ts.map +1 -1
- package/lib/typescript/module/ui/stores/followStore.d.ts +2 -1
- package/lib/typescript/module/ui/stores/followStore.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/ui/components/FollowButton.tsx +46 -7
- package/src/ui/hooks/useFollow.ts +8 -1
- package/src/ui/stores/followStore.ts +47 -1
|
@@ -92,12 +92,12 @@ const FollowButtonInner = /*#__PURE__*/(0, _react.memo)(function FollowButtonInn
|
|
|
92
92
|
});
|
|
93
93
|
const FollowButtonMultiInner = /*#__PURE__*/(0, _react.memo)(function FollowButtonMultiInner({
|
|
94
94
|
userIds,
|
|
95
|
-
initiallyAllFollowing = false,
|
|
96
95
|
size = 'medium',
|
|
97
96
|
followAllLabel = DEFAULT_FOLLOW_ALL_LABEL,
|
|
98
97
|
followedAllLabel = DEFAULT_FOLLOWED_ALL_LABEL,
|
|
99
98
|
onFollowChange,
|
|
100
99
|
onBulkFollow,
|
|
100
|
+
onBulkUnfollow,
|
|
101
101
|
style,
|
|
102
102
|
textStyle,
|
|
103
103
|
disabled = false,
|
|
@@ -109,23 +109,62 @@ const FollowButtonMultiInner = /*#__PURE__*/(0, _react.memo)(function FollowButt
|
|
|
109
109
|
} = (0, _theme.useTheme)();
|
|
110
110
|
const follow = (0, _useFollow.useFollow)(userIds);
|
|
111
111
|
const followAllUsers = 'followAllUsers' in follow ? follow.followAllUsers : undefined;
|
|
112
|
+
const unfollowAllUsers = 'unfollowAllUsers' in follow ? follow.unfollowAllUsers : undefined;
|
|
112
113
|
const isAnyLoading = 'isAnyLoading' in follow ? follow.isAnyLoading : false;
|
|
113
|
-
|
|
114
|
+
|
|
115
|
+
// `allFollowing` is store-derived (LIVE aggregate of each target's follow
|
|
116
|
+
// status) — it reacts in real time as individual members are followed or
|
|
117
|
+
// unfollowed elsewhere. Only `isSubmitting` is transient local state for the
|
|
118
|
+
// in-flight bulk call.
|
|
119
|
+
const allFollowing = 'allFollowing' in follow ? follow.allFollowing : false;
|
|
120
|
+
const fetchAllStatuses = 'fetchAllStatuses' in follow ? follow.fetchAllStatuses : undefined;
|
|
114
121
|
const [isSubmitting, setIsSubmitting] = (0, _react.useState)(false);
|
|
115
122
|
const isLoading = isSubmitting || isAnyLoading;
|
|
123
|
+
|
|
124
|
+
// Populate the store with each member's follow status once on mount and again
|
|
125
|
+
// only when the SET of target users changes. `fetchAllStatuses` is referentially
|
|
126
|
+
// stable (its useFollow useCallback deps are [canUsePrivateApi, userIds,
|
|
127
|
+
// oxyServices]; `userIds` inside useFollow is memoized, and the outer wrapper
|
|
128
|
+
// memoizes `multiUserIds`), so depending on it plus the stable joined-string
|
|
129
|
+
// key cannot self-retrigger — `allFollowing`/loading are intentionally NOT in
|
|
130
|
+
// the deps.
|
|
131
|
+
const userIdsKey = (0, _react.useMemo)(() => userIds.join(','), [userIds]);
|
|
132
|
+
(0, _react.useEffect)(() => {
|
|
133
|
+
fetchAllStatuses?.();
|
|
134
|
+
}, [userIdsKey, fetchAllStatuses]);
|
|
116
135
|
const handlePress = (0, _react.useCallback)(async event => {
|
|
117
136
|
if (preventParentActions && event?.preventDefault) {
|
|
118
137
|
event.preventDefault();
|
|
119
138
|
event.stopPropagation?.();
|
|
120
139
|
}
|
|
121
|
-
if (disabled || isLoading
|
|
140
|
+
if (disabled || isLoading) return;
|
|
141
|
+
if (allFollowing) {
|
|
142
|
+
if (!unfollowAllUsers) return;
|
|
143
|
+
setIsSubmitting(true);
|
|
144
|
+
try {
|
|
145
|
+
const result = await unfollowAllUsers();
|
|
146
|
+
// `unfollowManyUsers` flips each user to not-following in the store, so
|
|
147
|
+
// `allFollowing` becomes false reactively — no local flag.
|
|
148
|
+
onFollowChange?.(false);
|
|
149
|
+
onBulkUnfollow?.(result);
|
|
150
|
+
} catch (err) {
|
|
151
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
152
|
+
_bloom.toast.error(error.message || 'Failed to update follow status');
|
|
153
|
+
} finally {
|
|
154
|
+
setIsSubmitting(false);
|
|
155
|
+
}
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (!followAllUsers) return;
|
|
122
159
|
setIsSubmitting(true);
|
|
123
160
|
try {
|
|
124
161
|
const result = await followAllUsers();
|
|
125
162
|
const allAlreadyFollowing = result.followedCount === 0 && result.results.length > 0 && result.results.every(entry => entry.alreadyFollowing);
|
|
126
163
|
const anyFollowed = result.followedCount > 0 || result.results.some(entry => entry.success || entry.alreadyFollowing);
|
|
164
|
+
|
|
165
|
+
// `followManyUsers` marks each user followed in the store, so `allFollowing`
|
|
166
|
+
// flips to true reactively — no local flag to set here.
|
|
127
167
|
if (allAlreadyFollowing || anyFollowed) {
|
|
128
|
-
setAllFollowing(true);
|
|
129
168
|
onFollowChange?.(true);
|
|
130
169
|
}
|
|
131
170
|
onBulkFollow?.(result);
|
|
@@ -135,14 +174,14 @@ const FollowButtonMultiInner = /*#__PURE__*/(0, _react.memo)(function FollowButt
|
|
|
135
174
|
} finally {
|
|
136
175
|
setIsSubmitting(false);
|
|
137
176
|
}
|
|
138
|
-
}, [disabled, isLoading, allFollowing, followAllUsers, onFollowChange, onBulkFollow, preventParentActions]);
|
|
177
|
+
}, [disabled, isLoading, allFollowing, followAllUsers, unfollowAllUsers, onFollowChange, onBulkFollow, onBulkUnfollow, preventParentActions]);
|
|
139
178
|
const baseButtonStyle = getBaseButtonStyle(size, style);
|
|
140
179
|
const baseTextStyle = getBaseTextStyle(size, textStyle);
|
|
141
180
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
142
181
|
className: allFollowing ? 'bg-background border-border' : 'bg-primary border-primary',
|
|
143
182
|
style: baseButtonStyle,
|
|
144
183
|
onPress: handlePress,
|
|
145
|
-
disabled: disabled || isLoading
|
|
184
|
+
disabled: disabled || isLoading,
|
|
146
185
|
activeOpacity: 0.8,
|
|
147
186
|
children: showLoadingState && isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
|
|
148
187
|
size: "small",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_OxyContext","_bloom","_useFollow","_theme","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_FOLLOW_ALL_LABEL","DEFAULT_FOLLOWED_ALL_LABEL","isMultiMode","props","Array","isArray","userIds","FollowButtonInner","memo","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","colors","useTheme","isFollowing","isLoading","toggleFollow","setFollowStatus","fetchStatus","useFollowForButton","handlePress","useCallback","event","preventDefault","stopPropagation","err","error","Error","String","toast","message","useEffect","baseButtonStyle","getBaseButtonStyle","baseTextStyle","getBaseTextStyle","jsx","TouchableOpacity","className","onPress","activeOpacity","children","ActivityIndicator","color","text","negativeForeground","Text","FollowButtonMultiInner","initiallyAllFollowing","followAllLabel","followedAllLabel","onBulkFollow","follow","useFollow","followAllUsers","undefined","isAnyLoading","allFollowing","setAllFollowing","useState","isSubmitting","setIsSubmitting","result","allAlreadyFollowing","followedCount","results","length","every","entry","alreadyFollowing","anyFollowed","some","success","FollowButton","canUsePrivateApi","user","currentUser","useOxy","currentUserId","id","trim","rawUserIds","multiUserIds","useMemo","seen","Set","cleaned","raw","add","push","targetUserId","exports","baseStyle","flexDirection","alignItems","justifyContent","borderWidth","Platform","select","web","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","sizeStyle","paddingVertical","paddingHorizontal","minWidth","borderRadius","fontWeight","sizeTextStyle","fontSize","_default"],"sourceRoot":"../../../../src","sources":["ui/components/FollowButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_OxyContext","_bloom","_useFollow","_theme","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_FOLLOW_ALL_LABEL","DEFAULT_FOLLOWED_ALL_LABEL","isMultiMode","props","Array","isArray","userIds","FollowButtonInner","memo","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","colors","useTheme","isFollowing","isLoading","toggleFollow","setFollowStatus","fetchStatus","useFollowForButton","handlePress","useCallback","event","preventDefault","stopPropagation","err","error","Error","String","toast","message","useEffect","baseButtonStyle","getBaseButtonStyle","baseTextStyle","getBaseTextStyle","jsx","TouchableOpacity","className","onPress","activeOpacity","children","ActivityIndicator","color","text","negativeForeground","Text","FollowButtonMultiInner","followAllLabel","followedAllLabel","onBulkFollow","onBulkUnfollow","follow","useFollow","followAllUsers","undefined","unfollowAllUsers","isAnyLoading","allFollowing","fetchAllStatuses","isSubmitting","setIsSubmitting","useState","userIdsKey","useMemo","join","result","allAlreadyFollowing","followedCount","results","length","every","entry","alreadyFollowing","anyFollowed","some","success","FollowButton","canUsePrivateApi","user","currentUser","useOxy","currentUserId","id","trim","rawUserIds","multiUserIds","seen","Set","cleaned","raw","add","push","targetUserId","exports","baseStyle","flexDirection","alignItems","justifyContent","borderWidth","Platform","select","web","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","sizeStyle","paddingVertical","paddingHorizontal","minWidth","borderRadius","fontWeight","sizeTextStyle","fontSize","_default"],"sourceRoot":"../../../../src","sources":["ui/components/FollowButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -154,6 +154,12 @@ const useFollow = userId => {
|
|
|
154
154
|
if (!canUsePrivateApi) throw new Error('Authentication is required to follow users');
|
|
155
155
|
return _followStore.useFollowStore.getState().followManyUsers(userIds, oxyServices);
|
|
156
156
|
}, [canUsePrivateApi, userIds, oxyServices]);
|
|
157
|
+
|
|
158
|
+
// Bulk unfollow — unfollows ALL users in ONE network call (idempotent; never follows).
|
|
159
|
+
const unfollowAllUsers = (0, _react.useCallback)(async () => {
|
|
160
|
+
if (!canUsePrivateApi) throw new Error('Authentication is required to unfollow users');
|
|
161
|
+
return _followStore.useFollowStore.getState().unfollowManyUsers(userIds, oxyServices);
|
|
162
|
+
}, [canUsePrivateApi, userIds, oxyServices]);
|
|
157
163
|
const clearErrorForUser = (0, _react.useCallback)(targetUserId => {
|
|
158
164
|
_followStore.useFollowStore.getState().clearFollowError(targetUserId);
|
|
159
165
|
}, []);
|
|
@@ -185,6 +191,7 @@ const useFollow = userId => {
|
|
|
185
191
|
fetchStatusForUser,
|
|
186
192
|
fetchAllStatuses,
|
|
187
193
|
followAllUsers,
|
|
194
|
+
unfollowAllUsers,
|
|
188
195
|
clearErrorForUser,
|
|
189
196
|
isAnyLoading: multiUserLoadingState.isAnyLoading,
|
|
190
197
|
hasAnyError: multiUserLoadingState.hasAnyError,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_followStore","_OxyContext","_core","_shallow","useFollow","userId","oxyServices","canUsePrivateApi","useOxy","userIds","useMemo","Array","isArray","isSingleUser","isFollowing","useFollowStore","useCallback","s","followingUsers","isLoading","loadingUsers","error","errors","followerCount","followerCounts","followingCount","followingCounts","isLoadingCounts","loadingCounts","followFlat","useShallow","flat","uid","followData","data","Boolean","multiUserLoadingState","isAnyLoading","hasAnyError","allFollowing","allNotFollowing","some","every","toggleFollow","Error","currentlyFollowing","getState","toggleFollowUser","setFollowStatus","following","setFollowingStatus","fetchStatus","fetchFollowStatus","clearError","clearFollowError","fetchUserCounts","setFollowerCount","count","setFollowingCount","useEffect","catch","loggerUtil","warn","component","toggleFollowForUser","targetUserId","currentState","setFollowStatusForUser","fetchStatusForUser","fetchAllStatuses","store","Promise","all","map","followAllUsers","followManyUsers","clearErrorForUser","updateCountsFromFollowAction","action","counts","currentUserId","getCurrentUserId","undefined","exports","useFollowForButton","useFollowerCounts"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollow.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_followStore","_OxyContext","_core","_shallow","useFollow","userId","oxyServices","canUsePrivateApi","useOxy","userIds","useMemo","Array","isArray","isSingleUser","isFollowing","useFollowStore","useCallback","s","followingUsers","isLoading","loadingUsers","error","errors","followerCount","followerCounts","followingCount","followingCounts","isLoadingCounts","loadingCounts","followFlat","useShallow","flat","uid","followData","data","Boolean","multiUserLoadingState","isAnyLoading","hasAnyError","allFollowing","allNotFollowing","some","every","toggleFollow","Error","currentlyFollowing","getState","toggleFollowUser","setFollowStatus","following","setFollowingStatus","fetchStatus","fetchFollowStatus","clearError","clearFollowError","fetchUserCounts","setFollowerCount","count","setFollowingCount","useEffect","catch","loggerUtil","warn","component","toggleFollowForUser","targetUserId","currentState","setFollowStatusForUser","fetchStatusForUser","fetchAllStatuses","store","Promise","all","map","followAllUsers","followManyUsers","unfollowAllUsers","unfollowManyUsers","clearErrorForUser","updateCountsFromFollowAction","action","counts","currentUserId","getCurrentUserId","undefined","exports","useFollowForButton","useFollowerCounts"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollow.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -227,6 +227,74 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
227
227
|
throw error;
|
|
228
228
|
}
|
|
229
229
|
},
|
|
230
|
+
unfollowManyUsers: async (userIds, oxyServices) => {
|
|
231
|
+
set(state => {
|
|
232
|
+
const loadingUsers = {
|
|
233
|
+
...state.loadingUsers
|
|
234
|
+
};
|
|
235
|
+
const errors = {
|
|
236
|
+
...state.errors
|
|
237
|
+
};
|
|
238
|
+
for (const uid of userIds) {
|
|
239
|
+
loadingUsers[uid] = true;
|
|
240
|
+
errors[uid] = null;
|
|
241
|
+
}
|
|
242
|
+
return {
|
|
243
|
+
loadingUsers,
|
|
244
|
+
errors
|
|
245
|
+
};
|
|
246
|
+
});
|
|
247
|
+
try {
|
|
248
|
+
const result = await oxyServices.unfollowUsers(userIds);
|
|
249
|
+
set(state => {
|
|
250
|
+
const followingUsers = {
|
|
251
|
+
...state.followingUsers
|
|
252
|
+
};
|
|
253
|
+
const loadingUsers = {
|
|
254
|
+
...state.loadingUsers
|
|
255
|
+
};
|
|
256
|
+
const errors = {
|
|
257
|
+
...state.errors
|
|
258
|
+
};
|
|
259
|
+
for (const uid of userIds) {
|
|
260
|
+
loadingUsers[uid] = false;
|
|
261
|
+
}
|
|
262
|
+
for (const entry of result.results) {
|
|
263
|
+
if (entry.success) {
|
|
264
|
+
followingUsers[entry.userId] = false;
|
|
265
|
+
errors[entry.userId] = null;
|
|
266
|
+
} else {
|
|
267
|
+
errors[entry.userId] = 'Failed to update follow status';
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return {
|
|
271
|
+
followingUsers,
|
|
272
|
+
loadingUsers,
|
|
273
|
+
errors
|
|
274
|
+
};
|
|
275
|
+
});
|
|
276
|
+
return result;
|
|
277
|
+
} catch (error) {
|
|
278
|
+
const message = (error instanceof Error ? error.message : null) || 'Failed to update follow status';
|
|
279
|
+
set(state => {
|
|
280
|
+
const loadingUsers = {
|
|
281
|
+
...state.loadingUsers
|
|
282
|
+
};
|
|
283
|
+
const errors = {
|
|
284
|
+
...state.errors
|
|
285
|
+
};
|
|
286
|
+
for (const uid of userIds) {
|
|
287
|
+
loadingUsers[uid] = false;
|
|
288
|
+
errors[uid] = message;
|
|
289
|
+
}
|
|
290
|
+
return {
|
|
291
|
+
loadingUsers,
|
|
292
|
+
errors
|
|
293
|
+
};
|
|
294
|
+
});
|
|
295
|
+
throw error;
|
|
296
|
+
}
|
|
297
|
+
},
|
|
230
298
|
setFollowerCount: (userId, count) => set(state => ({
|
|
231
299
|
followerCounts: {
|
|
232
300
|
...state.followerCounts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_zustand","require","useFollowStore","exports","create","set","get","followingUsers","loadingUsers","fetchingUsers","errors","followerCounts","followingCounts","loadingCounts","setFollowingStatus","userId","isFollowing","state","clearFollowError","resetFollowState","fetchFollowStatus","oxyServices","response","getFollowStatus","error","Error","message","toggleFollowUser","isCurrentlyFollowing","newFollowState","unfollowUser","followUser","counts","currentUserId","getCurrentUserId","updates","followers","following","followManyUsers","userIds","uid","result","followUsers","entry","results","success","alreadyFollowing","setFollowerCount","count","setFollowingCount","updateCountsFromFollowAction","targetUserId","action","fetchUserCounts","user","getUserById","_count"],"sourceRoot":"../../../../src","sources":["ui/stores/followStore.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_zustand","require","useFollowStore","exports","create","set","get","followingUsers","loadingUsers","fetchingUsers","errors","followerCounts","followingCounts","loadingCounts","setFollowingStatus","userId","isFollowing","state","clearFollowError","resetFollowState","fetchFollowStatus","oxyServices","response","getFollowStatus","error","Error","message","toggleFollowUser","isCurrentlyFollowing","newFollowState","unfollowUser","followUser","counts","currentUserId","getCurrentUserId","updates","followers","following","followManyUsers","userIds","uid","result","followUsers","entry","results","success","alreadyFollowing","unfollowManyUsers","unfollowUsers","setFollowerCount","count","setFollowingCount","updateCountsFromFollowAction","targetUserId","action","fetchUserCounts","user","getUserById","_count"],"sourceRoot":"../../../../src","sources":["ui/stores/followStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -87,12 +87,12 @@ const FollowButtonInner = /*#__PURE__*/memo(function FollowButtonInner({
|
|
|
87
87
|
});
|
|
88
88
|
const FollowButtonMultiInner = /*#__PURE__*/memo(function FollowButtonMultiInner({
|
|
89
89
|
userIds,
|
|
90
|
-
initiallyAllFollowing = false,
|
|
91
90
|
size = 'medium',
|
|
92
91
|
followAllLabel = DEFAULT_FOLLOW_ALL_LABEL,
|
|
93
92
|
followedAllLabel = DEFAULT_FOLLOWED_ALL_LABEL,
|
|
94
93
|
onFollowChange,
|
|
95
94
|
onBulkFollow,
|
|
95
|
+
onBulkUnfollow,
|
|
96
96
|
style,
|
|
97
97
|
textStyle,
|
|
98
98
|
disabled = false,
|
|
@@ -104,23 +104,62 @@ const FollowButtonMultiInner = /*#__PURE__*/memo(function FollowButtonMultiInner
|
|
|
104
104
|
} = useTheme();
|
|
105
105
|
const follow = useFollow(userIds);
|
|
106
106
|
const followAllUsers = 'followAllUsers' in follow ? follow.followAllUsers : undefined;
|
|
107
|
+
const unfollowAllUsers = 'unfollowAllUsers' in follow ? follow.unfollowAllUsers : undefined;
|
|
107
108
|
const isAnyLoading = 'isAnyLoading' in follow ? follow.isAnyLoading : false;
|
|
108
|
-
|
|
109
|
+
|
|
110
|
+
// `allFollowing` is store-derived (LIVE aggregate of each target's follow
|
|
111
|
+
// status) — it reacts in real time as individual members are followed or
|
|
112
|
+
// unfollowed elsewhere. Only `isSubmitting` is transient local state for the
|
|
113
|
+
// in-flight bulk call.
|
|
114
|
+
const allFollowing = 'allFollowing' in follow ? follow.allFollowing : false;
|
|
115
|
+
const fetchAllStatuses = 'fetchAllStatuses' in follow ? follow.fetchAllStatuses : undefined;
|
|
109
116
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
110
117
|
const isLoading = isSubmitting || isAnyLoading;
|
|
118
|
+
|
|
119
|
+
// Populate the store with each member's follow status once on mount and again
|
|
120
|
+
// only when the SET of target users changes. `fetchAllStatuses` is referentially
|
|
121
|
+
// stable (its useFollow useCallback deps are [canUsePrivateApi, userIds,
|
|
122
|
+
// oxyServices]; `userIds` inside useFollow is memoized, and the outer wrapper
|
|
123
|
+
// memoizes `multiUserIds`), so depending on it plus the stable joined-string
|
|
124
|
+
// key cannot self-retrigger — `allFollowing`/loading are intentionally NOT in
|
|
125
|
+
// the deps.
|
|
126
|
+
const userIdsKey = useMemo(() => userIds.join(','), [userIds]);
|
|
127
|
+
useEffect(() => {
|
|
128
|
+
fetchAllStatuses?.();
|
|
129
|
+
}, [userIdsKey, fetchAllStatuses]);
|
|
111
130
|
const handlePress = useCallback(async event => {
|
|
112
131
|
if (preventParentActions && event?.preventDefault) {
|
|
113
132
|
event.preventDefault();
|
|
114
133
|
event.stopPropagation?.();
|
|
115
134
|
}
|
|
116
|
-
if (disabled || isLoading
|
|
135
|
+
if (disabled || isLoading) return;
|
|
136
|
+
if (allFollowing) {
|
|
137
|
+
if (!unfollowAllUsers) return;
|
|
138
|
+
setIsSubmitting(true);
|
|
139
|
+
try {
|
|
140
|
+
const result = await unfollowAllUsers();
|
|
141
|
+
// `unfollowManyUsers` flips each user to not-following in the store, so
|
|
142
|
+
// `allFollowing` becomes false reactively — no local flag.
|
|
143
|
+
onFollowChange?.(false);
|
|
144
|
+
onBulkUnfollow?.(result);
|
|
145
|
+
} catch (err) {
|
|
146
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
147
|
+
toast.error(error.message || 'Failed to update follow status');
|
|
148
|
+
} finally {
|
|
149
|
+
setIsSubmitting(false);
|
|
150
|
+
}
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (!followAllUsers) return;
|
|
117
154
|
setIsSubmitting(true);
|
|
118
155
|
try {
|
|
119
156
|
const result = await followAllUsers();
|
|
120
157
|
const allAlreadyFollowing = result.followedCount === 0 && result.results.length > 0 && result.results.every(entry => entry.alreadyFollowing);
|
|
121
158
|
const anyFollowed = result.followedCount > 0 || result.results.some(entry => entry.success || entry.alreadyFollowing);
|
|
159
|
+
|
|
160
|
+
// `followManyUsers` marks each user followed in the store, so `allFollowing`
|
|
161
|
+
// flips to true reactively — no local flag to set here.
|
|
122
162
|
if (allAlreadyFollowing || anyFollowed) {
|
|
123
|
-
setAllFollowing(true);
|
|
124
163
|
onFollowChange?.(true);
|
|
125
164
|
}
|
|
126
165
|
onBulkFollow?.(result);
|
|
@@ -130,14 +169,14 @@ const FollowButtonMultiInner = /*#__PURE__*/memo(function FollowButtonMultiInner
|
|
|
130
169
|
} finally {
|
|
131
170
|
setIsSubmitting(false);
|
|
132
171
|
}
|
|
133
|
-
}, [disabled, isLoading, allFollowing, followAllUsers, onFollowChange, onBulkFollow, preventParentActions]);
|
|
172
|
+
}, [disabled, isLoading, allFollowing, followAllUsers, unfollowAllUsers, onFollowChange, onBulkFollow, onBulkUnfollow, preventParentActions]);
|
|
134
173
|
const baseButtonStyle = getBaseButtonStyle(size, style);
|
|
135
174
|
const baseTextStyle = getBaseTextStyle(size, textStyle);
|
|
136
175
|
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
137
176
|
className: allFollowing ? 'bg-background border-border' : 'bg-primary border-primary',
|
|
138
177
|
style: baseButtonStyle,
|
|
139
178
|
onPress: handlePress,
|
|
140
|
-
disabled: disabled || isLoading
|
|
179
|
+
disabled: disabled || isLoading,
|
|
141
180
|
activeOpacity: 0.8,
|
|
142
181
|
children: showLoadingState && isLoading ? /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
143
182
|
size: "small",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useCallback","useMemo","useState","memo","TouchableOpacity","Text","Platform","ActivityIndicator","useOxy","toast","useFollow","useFollowForButton","useTheme","jsx","_jsx","DEFAULT_FOLLOW_ALL_LABEL","DEFAULT_FOLLOWED_ALL_LABEL","isMultiMode","props","Array","isArray","userIds","FollowButtonInner","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","colors","isFollowing","isLoading","toggleFollow","setFollowStatus","fetchStatus","handlePress","event","preventDefault","stopPropagation","err","error","Error","String","message","baseButtonStyle","getBaseButtonStyle","baseTextStyle","getBaseTextStyle","className","onPress","activeOpacity","children","color","text","negativeForeground","FollowButtonMultiInner","initiallyAllFollowing","followAllLabel","followedAllLabel","onBulkFollow","follow","followAllUsers","undefined","isAnyLoading","allFollowing","setAllFollowing","isSubmitting","setIsSubmitting","result","allAlreadyFollowing","followedCount","results","length","every","entry","alreadyFollowing","anyFollowed","some","success","FollowButton","canUsePrivateApi","user","currentUser","currentUserId","id","trim","rawUserIds","multiUserIds","seen","Set","cleaned","raw","has","add","push","targetUserId","baseStyle","flexDirection","alignItems","justifyContent","borderWidth","select","web","default","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","sizeStyle","paddingVertical","paddingHorizontal","minWidth","borderRadius","fontWeight","sizeTextStyle","fontSize"],"sourceRoot":"../../../../src","sources":["ui/components/FollowButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useCallback","useMemo","useState","memo","TouchableOpacity","Text","Platform","ActivityIndicator","useOxy","toast","useFollow","useFollowForButton","useTheme","jsx","_jsx","DEFAULT_FOLLOW_ALL_LABEL","DEFAULT_FOLLOWED_ALL_LABEL","isMultiMode","props","Array","isArray","userIds","FollowButtonInner","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","colors","isFollowing","isLoading","toggleFollow","setFollowStatus","fetchStatus","handlePress","event","preventDefault","stopPropagation","err","error","Error","String","message","baseButtonStyle","getBaseButtonStyle","baseTextStyle","getBaseTextStyle","className","onPress","activeOpacity","children","color","text","negativeForeground","FollowButtonMultiInner","followAllLabel","followedAllLabel","onBulkFollow","onBulkUnfollow","follow","followAllUsers","undefined","unfollowAllUsers","isAnyLoading","allFollowing","fetchAllStatuses","isSubmitting","setIsSubmitting","userIdsKey","join","result","allAlreadyFollowing","followedCount","results","length","every","entry","alreadyFollowing","anyFollowed","some","success","FollowButton","canUsePrivateApi","user","currentUser","currentUserId","id","trim","rawUserIds","multiUserIds","seen","Set","cleaned","raw","has","add","push","targetUserId","baseStyle","flexDirection","alignItems","justifyContent","borderWidth","select","web","default","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","sizeStyle","paddingVertical","paddingHorizontal","minWidth","borderRadius","fontWeight","sizeTextStyle","fontSize"],"sourceRoot":"../../../../src","sources":["ui/components/FollowButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -151,6 +151,12 @@ export const useFollow = userId => {
|
|
|
151
151
|
if (!canUsePrivateApi) throw new Error('Authentication is required to follow users');
|
|
152
152
|
return useFollowStore.getState().followManyUsers(userIds, oxyServices);
|
|
153
153
|
}, [canUsePrivateApi, userIds, oxyServices]);
|
|
154
|
+
|
|
155
|
+
// Bulk unfollow — unfollows ALL users in ONE network call (idempotent; never follows).
|
|
156
|
+
const unfollowAllUsers = useCallback(async () => {
|
|
157
|
+
if (!canUsePrivateApi) throw new Error('Authentication is required to unfollow users');
|
|
158
|
+
return useFollowStore.getState().unfollowManyUsers(userIds, oxyServices);
|
|
159
|
+
}, [canUsePrivateApi, userIds, oxyServices]);
|
|
154
160
|
const clearErrorForUser = useCallback(targetUserId => {
|
|
155
161
|
useFollowStore.getState().clearFollowError(targetUserId);
|
|
156
162
|
}, []);
|
|
@@ -182,6 +188,7 @@ export const useFollow = userId => {
|
|
|
182
188
|
fetchStatusForUser,
|
|
183
189
|
fetchAllStatuses,
|
|
184
190
|
followAllUsers,
|
|
191
|
+
unfollowAllUsers,
|
|
185
192
|
clearErrorForUser,
|
|
186
193
|
isAnyLoading: multiUserLoadingState.isAnyLoading,
|
|
187
194
|
hasAnyError: multiUserLoadingState.hasAnyError,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","useEffect","useFollowStore","useOxy","logger","loggerUtil","useShallow","useFollow","userId","oxyServices","canUsePrivateApi","userIds","Array","isArray","isSingleUser","isFollowing","s","followingUsers","isLoading","loadingUsers","error","errors","followerCount","followerCounts","followingCount","followingCounts","isLoadingCounts","loadingCounts","followFlat","flat","uid","followData","data","Boolean","multiUserLoadingState","isAnyLoading","hasAnyError","allFollowing","allNotFollowing","some","every","toggleFollow","Error","currentlyFollowing","getState","toggleFollowUser","setFollowStatus","following","setFollowingStatus","fetchStatus","fetchFollowStatus","clearError","clearFollowError","fetchUserCounts","setFollowerCount","count","setFollowingCount","catch","warn","component","toggleFollowForUser","targetUserId","currentState","setFollowStatusForUser","fetchStatusForUser","fetchAllStatuses","store","Promise","all","map","followAllUsers","followManyUsers","clearErrorForUser","updateCountsFromFollowAction","action","counts","currentUserId","getCurrentUserId","undefined","useFollowForButton","useFollowerCounts"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollow.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useEffect","useFollowStore","useOxy","logger","loggerUtil","useShallow","useFollow","userId","oxyServices","canUsePrivateApi","userIds","Array","isArray","isSingleUser","isFollowing","s","followingUsers","isLoading","loadingUsers","error","errors","followerCount","followerCounts","followingCount","followingCounts","isLoadingCounts","loadingCounts","followFlat","flat","uid","followData","data","Boolean","multiUserLoadingState","isAnyLoading","hasAnyError","allFollowing","allNotFollowing","some","every","toggleFollow","Error","currentlyFollowing","getState","toggleFollowUser","setFollowStatus","following","setFollowingStatus","fetchStatus","fetchFollowStatus","clearError","clearFollowError","fetchUserCounts","setFollowerCount","count","setFollowingCount","catch","warn","component","toggleFollowForUser","targetUserId","currentState","setFollowStatusForUser","fetchStatusForUser","fetchAllStatuses","store","Promise","all","map","followAllUsers","followManyUsers","unfollowAllUsers","unfollowManyUsers","clearErrorForUser","updateCountsFromFollowAction","action","counts","currentUserId","getCurrentUserId","undefined","useFollowForButton","useFollowerCounts"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollow.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -223,6 +223,74 @@ export const useFollowStore = create((set, get) => ({
|
|
|
223
223
|
throw error;
|
|
224
224
|
}
|
|
225
225
|
},
|
|
226
|
+
unfollowManyUsers: async (userIds, oxyServices) => {
|
|
227
|
+
set(state => {
|
|
228
|
+
const loadingUsers = {
|
|
229
|
+
...state.loadingUsers
|
|
230
|
+
};
|
|
231
|
+
const errors = {
|
|
232
|
+
...state.errors
|
|
233
|
+
};
|
|
234
|
+
for (const uid of userIds) {
|
|
235
|
+
loadingUsers[uid] = true;
|
|
236
|
+
errors[uid] = null;
|
|
237
|
+
}
|
|
238
|
+
return {
|
|
239
|
+
loadingUsers,
|
|
240
|
+
errors
|
|
241
|
+
};
|
|
242
|
+
});
|
|
243
|
+
try {
|
|
244
|
+
const result = await oxyServices.unfollowUsers(userIds);
|
|
245
|
+
set(state => {
|
|
246
|
+
const followingUsers = {
|
|
247
|
+
...state.followingUsers
|
|
248
|
+
};
|
|
249
|
+
const loadingUsers = {
|
|
250
|
+
...state.loadingUsers
|
|
251
|
+
};
|
|
252
|
+
const errors = {
|
|
253
|
+
...state.errors
|
|
254
|
+
};
|
|
255
|
+
for (const uid of userIds) {
|
|
256
|
+
loadingUsers[uid] = false;
|
|
257
|
+
}
|
|
258
|
+
for (const entry of result.results) {
|
|
259
|
+
if (entry.success) {
|
|
260
|
+
followingUsers[entry.userId] = false;
|
|
261
|
+
errors[entry.userId] = null;
|
|
262
|
+
} else {
|
|
263
|
+
errors[entry.userId] = 'Failed to update follow status';
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return {
|
|
267
|
+
followingUsers,
|
|
268
|
+
loadingUsers,
|
|
269
|
+
errors
|
|
270
|
+
};
|
|
271
|
+
});
|
|
272
|
+
return result;
|
|
273
|
+
} catch (error) {
|
|
274
|
+
const message = (error instanceof Error ? error.message : null) || 'Failed to update follow status';
|
|
275
|
+
set(state => {
|
|
276
|
+
const loadingUsers = {
|
|
277
|
+
...state.loadingUsers
|
|
278
|
+
};
|
|
279
|
+
const errors = {
|
|
280
|
+
...state.errors
|
|
281
|
+
};
|
|
282
|
+
for (const uid of userIds) {
|
|
283
|
+
loadingUsers[uid] = false;
|
|
284
|
+
errors[uid] = message;
|
|
285
|
+
}
|
|
286
|
+
return {
|
|
287
|
+
loadingUsers,
|
|
288
|
+
errors
|
|
289
|
+
};
|
|
290
|
+
});
|
|
291
|
+
throw error;
|
|
292
|
+
}
|
|
293
|
+
},
|
|
226
294
|
setFollowerCount: (userId, count) => set(state => ({
|
|
227
295
|
followerCounts: {
|
|
228
296
|
...state.followerCounts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["create","useFollowStore","set","get","followingUsers","loadingUsers","fetchingUsers","errors","followerCounts","followingCounts","loadingCounts","setFollowingStatus","userId","isFollowing","state","clearFollowError","resetFollowState","fetchFollowStatus","oxyServices","response","getFollowStatus","error","Error","message","toggleFollowUser","isCurrentlyFollowing","newFollowState","unfollowUser","followUser","counts","currentUserId","getCurrentUserId","updates","followers","following","followManyUsers","userIds","uid","result","followUsers","entry","results","success","alreadyFollowing","setFollowerCount","count","setFollowingCount","updateCountsFromFollowAction","targetUserId","action","fetchUserCounts","user","getUserById","_count"],"sourceRoot":"../../../../src","sources":["ui/stores/followStore.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,SAAS;
|
|
1
|
+
{"version":3,"names":["create","useFollowStore","set","get","followingUsers","loadingUsers","fetchingUsers","errors","followerCounts","followingCounts","loadingCounts","setFollowingStatus","userId","isFollowing","state","clearFollowError","resetFollowState","fetchFollowStatus","oxyServices","response","getFollowStatus","error","Error","message","toggleFollowUser","isCurrentlyFollowing","newFollowState","unfollowUser","followUser","counts","currentUserId","getCurrentUserId","updates","followers","following","followManyUsers","userIds","uid","result","followUsers","entry","results","success","alreadyFollowing","unfollowManyUsers","unfollowUsers","setFollowerCount","count","setFollowingCount","updateCountsFromFollowAction","targetUserId","action","fetchUserCounts","user","getUserById","_count"],"sourceRoot":"../../../../src","sources":["ui/stores/followStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ViewStyle, type TextStyle, type StyleProp } from 'react-native';
|
|
3
|
-
import type { BulkFollowResult } from '@oxyhq/core';
|
|
3
|
+
import type { BulkFollowResult, BulkUnfollowResult } from '@oxyhq/core';
|
|
4
4
|
/** Props shared by both single- and multi-user follow modes. */
|
|
5
5
|
interface FollowButtonBaseProps {
|
|
6
6
|
size?: 'small' | 'medium' | 'large';
|
|
@@ -25,6 +25,7 @@ export interface MultiFollowButtonProps extends FollowButtonBaseProps {
|
|
|
25
25
|
followAllLabel?: string;
|
|
26
26
|
followedAllLabel?: string;
|
|
27
27
|
onBulkFollow?: (result: BulkFollowResult) => void;
|
|
28
|
+
onBulkUnfollow?: (result: BulkUnfollowResult) => void;
|
|
28
29
|
userId?: never;
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FollowButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAC/E,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAKtB,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"FollowButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAC/E,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAKtB,OAAO,KAAK,EAAe,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKrF,gEAAgE;AAChE,UAAU,qBAAqB;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;CACjD;AAED,yEAAyE;AACzE,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,qFAAqF;AACrF,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACnE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtD,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;AA+MjF,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAiD7C,CAAC;AAiDF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,eAAe,YAAY,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type OxyServices, type BulkFollowResult } from '@oxyhq/core';
|
|
1
|
+
import { type OxyServices, type BulkFollowResult, type BulkUnfollowResult } from '@oxyhq/core';
|
|
2
2
|
/**
|
|
3
3
|
* useFollow — Hook for follow state management.
|
|
4
4
|
*
|
|
@@ -32,6 +32,7 @@ export declare const useFollow: (userId?: string | string[]) => {
|
|
|
32
32
|
fetchStatusForUser?: undefined;
|
|
33
33
|
fetchAllStatuses?: undefined;
|
|
34
34
|
followAllUsers?: undefined;
|
|
35
|
+
unfollowAllUsers?: undefined;
|
|
35
36
|
clearErrorForUser?: undefined;
|
|
36
37
|
isAnyLoading?: undefined;
|
|
37
38
|
hasAnyError?: undefined;
|
|
@@ -48,6 +49,7 @@ export declare const useFollow: (userId?: string | string[]) => {
|
|
|
48
49
|
fetchStatusForUser: (targetUserId: string) => Promise<void>;
|
|
49
50
|
fetchAllStatuses: () => Promise<void>;
|
|
50
51
|
followAllUsers: () => Promise<BulkFollowResult>;
|
|
52
|
+
unfollowAllUsers: () => Promise<BulkUnfollowResult>;
|
|
51
53
|
clearErrorForUser: (targetUserId: string) => void;
|
|
52
54
|
isAnyLoading: boolean;
|
|
53
55
|
hasAnyError: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFollow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useFollow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGrH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,GAAG,MAAM,EAAE;;;;;iCAgFF,OAAO;;;;;;;8BAqBV,MAAM;+BAKL,MAAM;;;;;;;;;;;;;;;qBA5DR,OAAO;mBAAa,OAAO;eAAS,MAAM,GAAG,IAAI;;wCA6EhC,MAAM;2CAMT,MAAM,aAAa,OAAO;uCAIxB,MAAM;;0BAYrB,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;;;;;;iCAoBzB,OAAO;;CAiBxD,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM;;;;;8BAiBD,MAAM;+BAIL,MAAM;CAYrD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OxyServices, BulkFollowResult } from '@oxyhq/core';
|
|
1
|
+
import type { OxyServices, BulkFollowResult, BulkUnfollowResult } from '@oxyhq/core';
|
|
2
2
|
interface FollowState {
|
|
3
3
|
followingUsers: Record<string, boolean>;
|
|
4
4
|
loadingUsers: Record<string, boolean>;
|
|
@@ -13,6 +13,7 @@ interface FollowState {
|
|
|
13
13
|
fetchFollowStatus: (userId: string, oxyServices: OxyServices) => Promise<void>;
|
|
14
14
|
toggleFollowUser: (userId: string, oxyServices: OxyServices, isCurrentlyFollowing: boolean) => Promise<void>;
|
|
15
15
|
followManyUsers: (userIds: string[], oxyServices: OxyServices) => Promise<BulkFollowResult>;
|
|
16
|
+
unfollowManyUsers: (userIds: string[], oxyServices: OxyServices) => Promise<BulkUnfollowResult>;
|
|
16
17
|
setFollowerCount: (userId: string, count: number) => void;
|
|
17
18
|
setFollowingCount: (userId: string, count: number) => void;
|
|
18
19
|
updateCountsFromFollowAction: (targetUserId: string, action: 'follow' | 'unfollow', counts: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"followStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAErF,UAAU,WAAW;IACnB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAEtC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7G,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE5F,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEhG,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,4BAA4B,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,UAAU,EAAE,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtK,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E;AAED,eAAO,MAAM,cAAc,0EAmPxB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ViewStyle, type TextStyle, type StyleProp } from 'react-native';
|
|
3
|
-
import type { BulkFollowResult } from '@oxyhq/core';
|
|
3
|
+
import type { BulkFollowResult, BulkUnfollowResult } from '@oxyhq/core';
|
|
4
4
|
/** Props shared by both single- and multi-user follow modes. */
|
|
5
5
|
interface FollowButtonBaseProps {
|
|
6
6
|
size?: 'small' | 'medium' | 'large';
|
|
@@ -25,6 +25,7 @@ export interface MultiFollowButtonProps extends FollowButtonBaseProps {
|
|
|
25
25
|
followAllLabel?: string;
|
|
26
26
|
followedAllLabel?: string;
|
|
27
27
|
onBulkFollow?: (result: BulkFollowResult) => void;
|
|
28
|
+
onBulkUnfollow?: (result: BulkUnfollowResult) => void;
|
|
28
29
|
userId?: never;
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FollowButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAC/E,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAKtB,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"FollowButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAC;AAC/E,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAKtB,OAAO,KAAK,EAAe,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKrF,gEAAgE;AAChE,UAAU,qBAAqB;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;CACjD;AAED,yEAAyE;AACzE,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,qFAAqF;AACrF,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACnE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtD,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;AA+MjF,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAiD7C,CAAC;AAiDF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,eAAe,YAAY,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type OxyServices, type BulkFollowResult } from '@oxyhq/core';
|
|
1
|
+
import { type OxyServices, type BulkFollowResult, type BulkUnfollowResult } from '@oxyhq/core';
|
|
2
2
|
/**
|
|
3
3
|
* useFollow — Hook for follow state management.
|
|
4
4
|
*
|
|
@@ -32,6 +32,7 @@ export declare const useFollow: (userId?: string | string[]) => {
|
|
|
32
32
|
fetchStatusForUser?: undefined;
|
|
33
33
|
fetchAllStatuses?: undefined;
|
|
34
34
|
followAllUsers?: undefined;
|
|
35
|
+
unfollowAllUsers?: undefined;
|
|
35
36
|
clearErrorForUser?: undefined;
|
|
36
37
|
isAnyLoading?: undefined;
|
|
37
38
|
hasAnyError?: undefined;
|
|
@@ -48,6 +49,7 @@ export declare const useFollow: (userId?: string | string[]) => {
|
|
|
48
49
|
fetchStatusForUser: (targetUserId: string) => Promise<void>;
|
|
49
50
|
fetchAllStatuses: () => Promise<void>;
|
|
50
51
|
followAllUsers: () => Promise<BulkFollowResult>;
|
|
52
|
+
unfollowAllUsers: () => Promise<BulkUnfollowResult>;
|
|
51
53
|
clearErrorForUser: (targetUserId: string) => void;
|
|
52
54
|
isAnyLoading: boolean;
|
|
53
55
|
hasAnyError: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFollow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"useFollow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGrH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,GAAG,MAAM,EAAE;;;;;iCAgFF,OAAO;;;;;;;8BAqBV,MAAM;+BAKL,MAAM;;;;;;;;;;;;;;;qBA5DR,OAAO;mBAAa,OAAO;eAAS,MAAM,GAAG,IAAI;;wCA6EhC,MAAM;2CAMT,MAAM,aAAa,OAAO;uCAIxB,MAAM;;0BAYrB,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;;;;;;iCAoBzB,OAAO;;CAiBxD,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM;;;;;8BAiBD,MAAM;+BAIL,MAAM;CAYrD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OxyServices, BulkFollowResult } from '@oxyhq/core';
|
|
1
|
+
import type { OxyServices, BulkFollowResult, BulkUnfollowResult } from '@oxyhq/core';
|
|
2
2
|
interface FollowState {
|
|
3
3
|
followingUsers: Record<string, boolean>;
|
|
4
4
|
loadingUsers: Record<string, boolean>;
|
|
@@ -13,6 +13,7 @@ interface FollowState {
|
|
|
13
13
|
fetchFollowStatus: (userId: string, oxyServices: OxyServices) => Promise<void>;
|
|
14
14
|
toggleFollowUser: (userId: string, oxyServices: OxyServices, isCurrentlyFollowing: boolean) => Promise<void>;
|
|
15
15
|
followManyUsers: (userIds: string[], oxyServices: OxyServices) => Promise<BulkFollowResult>;
|
|
16
|
+
unfollowManyUsers: (userIds: string[], oxyServices: OxyServices) => Promise<BulkUnfollowResult>;
|
|
16
17
|
setFollowerCount: (userId: string, count: number) => void;
|
|
17
18
|
setFollowingCount: (userId: string, count: number) => void;
|
|
18
19
|
updateCountsFromFollowAction: (targetUserId: string, action: 'follow' | 'unfollow', counts: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"followStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAErF,UAAU,WAAW;IACnB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAEtC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7G,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE5F,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEhG,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,4BAA4B,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,UAAU,EAAE,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtK,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E;AAED,eAAO,MAAM,cAAc,0EAmPxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/services",
|
|
3
|
-
"version": "10.3.
|
|
3
|
+
"version": "10.3.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",
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
"peerDependencies": {
|
|
162
162
|
"@expo/vector-icons": "^15.0.3",
|
|
163
163
|
"@oxyhq/bloom": ">=0.5.0",
|
|
164
|
-
"@oxyhq/core": "^3.
|
|
164
|
+
"@oxyhq/core": "^3.6.0",
|
|
165
165
|
"@react-native-community/netinfo": "^11.4.1",
|
|
166
166
|
"@tanstack/query-async-storage-persister": "^5.100",
|
|
167
167
|
"@tanstack/query-sync-storage-persister": "^5.100",
|
|
@@ -12,7 +12,7 @@ import { useOxy } from '../context/OxyContext';
|
|
|
12
12
|
import { toast } from '@oxyhq/bloom';
|
|
13
13
|
import { useFollow, useFollowForButton } from '../hooks/useFollow';
|
|
14
14
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
15
|
-
import type { OxyServices, BulkFollowResult } from '@oxyhq/core';
|
|
15
|
+
import type { OxyServices, BulkFollowResult, BulkUnfollowResult } from '@oxyhq/core';
|
|
16
16
|
|
|
17
17
|
const DEFAULT_FOLLOW_ALL_LABEL = 'Follow all';
|
|
18
18
|
const DEFAULT_FOLLOWED_ALL_LABEL = 'Following';
|
|
@@ -43,6 +43,7 @@ export interface MultiFollowButtonProps extends FollowButtonBaseProps {
|
|
|
43
43
|
followAllLabel?: string;
|
|
44
44
|
followedAllLabel?: string;
|
|
45
45
|
onBulkFollow?: (result: BulkFollowResult) => void;
|
|
46
|
+
onBulkUnfollow?: (result: BulkUnfollowResult) => void;
|
|
46
47
|
userId?: never;
|
|
47
48
|
}
|
|
48
49
|
|
|
@@ -137,12 +138,12 @@ const FollowButtonInner = memo(function FollowButtonInner({
|
|
|
137
138
|
|
|
138
139
|
const FollowButtonMultiInner = memo(function FollowButtonMultiInner({
|
|
139
140
|
userIds,
|
|
140
|
-
initiallyAllFollowing = false,
|
|
141
141
|
size = 'medium',
|
|
142
142
|
followAllLabel = DEFAULT_FOLLOW_ALL_LABEL,
|
|
143
143
|
followedAllLabel = DEFAULT_FOLLOWED_ALL_LABEL,
|
|
144
144
|
onFollowChange,
|
|
145
145
|
onBulkFollow,
|
|
146
|
+
onBulkUnfollow,
|
|
146
147
|
style,
|
|
147
148
|
textStyle,
|
|
148
149
|
disabled = false,
|
|
@@ -152,20 +153,57 @@ const FollowButtonMultiInner = memo(function FollowButtonMultiInner({
|
|
|
152
153
|
const { colors } = useTheme();
|
|
153
154
|
const follow = useFollow(userIds);
|
|
154
155
|
const followAllUsers = 'followAllUsers' in follow ? follow.followAllUsers : undefined;
|
|
156
|
+
const unfollowAllUsers = 'unfollowAllUsers' in follow ? follow.unfollowAllUsers : undefined;
|
|
155
157
|
const isAnyLoading = 'isAnyLoading' in follow ? follow.isAnyLoading : false;
|
|
156
158
|
|
|
157
|
-
|
|
159
|
+
// `allFollowing` is store-derived (LIVE aggregate of each target's follow
|
|
160
|
+
// status) — it reacts in real time as individual members are followed or
|
|
161
|
+
// unfollowed elsewhere. Only `isSubmitting` is transient local state for the
|
|
162
|
+
// in-flight bulk call.
|
|
163
|
+
const allFollowing = 'allFollowing' in follow ? follow.allFollowing : false;
|
|
164
|
+
const fetchAllStatuses = 'fetchAllStatuses' in follow ? follow.fetchAllStatuses : undefined;
|
|
158
165
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
159
166
|
|
|
160
167
|
const isLoading = isSubmitting || isAnyLoading;
|
|
161
168
|
|
|
169
|
+
// Populate the store with each member's follow status once on mount and again
|
|
170
|
+
// only when the SET of target users changes. `fetchAllStatuses` is referentially
|
|
171
|
+
// stable (its useFollow useCallback deps are [canUsePrivateApi, userIds,
|
|
172
|
+
// oxyServices]; `userIds` inside useFollow is memoized, and the outer wrapper
|
|
173
|
+
// memoizes `multiUserIds`), so depending on it plus the stable joined-string
|
|
174
|
+
// key cannot self-retrigger — `allFollowing`/loading are intentionally NOT in
|
|
175
|
+
// the deps.
|
|
176
|
+
const userIdsKey = useMemo(() => userIds.join(','), [userIds]);
|
|
177
|
+
useEffect(() => {
|
|
178
|
+
fetchAllStatuses?.();
|
|
179
|
+
}, [userIdsKey, fetchAllStatuses]);
|
|
180
|
+
|
|
162
181
|
const handlePress = useCallback(async (event?: { preventDefault?: () => void; stopPropagation?: () => void }) => {
|
|
163
182
|
if (preventParentActions && event?.preventDefault) {
|
|
164
183
|
event.preventDefault();
|
|
165
184
|
event.stopPropagation?.();
|
|
166
185
|
}
|
|
167
|
-
if (disabled || isLoading
|
|
186
|
+
if (disabled || isLoading) return;
|
|
168
187
|
|
|
188
|
+
if (allFollowing) {
|
|
189
|
+
if (!unfollowAllUsers) return;
|
|
190
|
+
setIsSubmitting(true);
|
|
191
|
+
try {
|
|
192
|
+
const result = await unfollowAllUsers();
|
|
193
|
+
// `unfollowManyUsers` flips each user to not-following in the store, so
|
|
194
|
+
// `allFollowing` becomes false reactively — no local flag.
|
|
195
|
+
onFollowChange?.(false);
|
|
196
|
+
onBulkUnfollow?.(result);
|
|
197
|
+
} catch (err: unknown) {
|
|
198
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
199
|
+
toast.error(error.message || 'Failed to update follow status');
|
|
200
|
+
} finally {
|
|
201
|
+
setIsSubmitting(false);
|
|
202
|
+
}
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
if (!followAllUsers) return;
|
|
169
207
|
setIsSubmitting(true);
|
|
170
208
|
try {
|
|
171
209
|
const result = await followAllUsers();
|
|
@@ -175,8 +213,9 @@ const FollowButtonMultiInner = memo(function FollowButtonMultiInner({
|
|
|
175
213
|
const anyFollowed = result.followedCount > 0
|
|
176
214
|
|| result.results.some((entry) => entry.success || entry.alreadyFollowing);
|
|
177
215
|
|
|
216
|
+
// `followManyUsers` marks each user followed in the store, so `allFollowing`
|
|
217
|
+
// flips to true reactively — no local flag to set here.
|
|
178
218
|
if (allAlreadyFollowing || anyFollowed) {
|
|
179
|
-
setAllFollowing(true);
|
|
180
219
|
onFollowChange?.(true);
|
|
181
220
|
}
|
|
182
221
|
onBulkFollow?.(result);
|
|
@@ -186,7 +225,7 @@ const FollowButtonMultiInner = memo(function FollowButtonMultiInner({
|
|
|
186
225
|
} finally {
|
|
187
226
|
setIsSubmitting(false);
|
|
188
227
|
}
|
|
189
|
-
}, [disabled, isLoading, allFollowing, followAllUsers, onFollowChange, onBulkFollow, preventParentActions]);
|
|
228
|
+
}, [disabled, isLoading, allFollowing, followAllUsers, unfollowAllUsers, onFollowChange, onBulkFollow, onBulkUnfollow, preventParentActions]);
|
|
190
229
|
|
|
191
230
|
const baseButtonStyle = getBaseButtonStyle(size, style);
|
|
192
231
|
const baseTextStyle = getBaseTextStyle(size, textStyle);
|
|
@@ -199,7 +238,7 @@ const FollowButtonMultiInner = memo(function FollowButtonMultiInner({
|
|
|
199
238
|
}
|
|
200
239
|
style={baseButtonStyle}
|
|
201
240
|
onPress={handlePress}
|
|
202
|
-
disabled={disabled || isLoading
|
|
241
|
+
disabled={disabled || isLoading}
|
|
203
242
|
activeOpacity={0.8}
|
|
204
243
|
>
|
|
205
244
|
{showLoadingState && isLoading ? (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useCallback, useMemo, useEffect } from 'react';
|
|
2
2
|
import { useFollowStore } from '../stores/followStore';
|
|
3
3
|
import { useOxy } from '../context/OxyContext';
|
|
4
|
-
import { logger as loggerUtil, type OxyServices, type BulkFollowResult } from '@oxyhq/core';
|
|
4
|
+
import { logger as loggerUtil, type OxyServices, type BulkFollowResult, type BulkUnfollowResult } from '@oxyhq/core';
|
|
5
5
|
import { useShallow } from 'zustand/react/shallow';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -167,6 +167,12 @@ export const useFollow = (userId?: string | string[]) => {
|
|
|
167
167
|
return useFollowStore.getState().followManyUsers(userIds, oxyServices);
|
|
168
168
|
}, [canUsePrivateApi, userIds, oxyServices]);
|
|
169
169
|
|
|
170
|
+
// Bulk unfollow — unfollows ALL users in ONE network call (idempotent; never follows).
|
|
171
|
+
const unfollowAllUsers = useCallback(async (): Promise<BulkUnfollowResult> => {
|
|
172
|
+
if (!canUsePrivateApi) throw new Error('Authentication is required to unfollow users');
|
|
173
|
+
return useFollowStore.getState().unfollowManyUsers(userIds, oxyServices);
|
|
174
|
+
}, [canUsePrivateApi, userIds, oxyServices]);
|
|
175
|
+
|
|
170
176
|
const clearErrorForUser = useCallback((targetUserId: string) => {
|
|
171
177
|
useFollowStore.getState().clearFollowError(targetUserId);
|
|
172
178
|
}, []);
|
|
@@ -201,6 +207,7 @@ export const useFollow = (userId?: string | string[]) => {
|
|
|
201
207
|
fetchStatusForUser,
|
|
202
208
|
fetchAllStatuses,
|
|
203
209
|
followAllUsers,
|
|
210
|
+
unfollowAllUsers,
|
|
204
211
|
clearErrorForUser,
|
|
205
212
|
isAnyLoading: multiUserLoadingState.isAnyLoading,
|
|
206
213
|
hasAnyError: multiUserLoadingState.hasAnyError,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { create } from 'zustand';
|
|
2
|
-
import type { OxyServices, BulkFollowResult } from '@oxyhq/core';
|
|
2
|
+
import type { OxyServices, BulkFollowResult, BulkUnfollowResult } from '@oxyhq/core';
|
|
3
3
|
|
|
4
4
|
interface FollowState {
|
|
5
5
|
followingUsers: Record<string, boolean>;
|
|
@@ -18,6 +18,8 @@ interface FollowState {
|
|
|
18
18
|
toggleFollowUser: (userId: string, oxyServices: OxyServices, isCurrentlyFollowing: boolean) => Promise<void>;
|
|
19
19
|
// Bulk follow — follows MANY users in one network call; never unfollows.
|
|
20
20
|
followManyUsers: (userIds: string[], oxyServices: OxyServices) => Promise<BulkFollowResult>;
|
|
21
|
+
// Bulk unfollow — unfollows MANY users in one network call; idempotent, never follows.
|
|
22
|
+
unfollowManyUsers: (userIds: string[], oxyServices: OxyServices) => Promise<BulkUnfollowResult>;
|
|
21
23
|
// New methods for follower counts
|
|
22
24
|
setFollowerCount: (userId: string, count: number) => void;
|
|
23
25
|
setFollowingCount: (userId: string, count: number) => void;
|
|
@@ -172,6 +174,50 @@ export const useFollowStore = create<FollowState>((set: any, get: any) => ({
|
|
|
172
174
|
throw error;
|
|
173
175
|
}
|
|
174
176
|
},
|
|
177
|
+
unfollowManyUsers: async (userIds: string[], oxyServices: OxyServices): Promise<BulkUnfollowResult> => {
|
|
178
|
+
set((state: FollowState) => {
|
|
179
|
+
const loadingUsers = { ...state.loadingUsers };
|
|
180
|
+
const errors = { ...state.errors };
|
|
181
|
+
for (const uid of userIds) {
|
|
182
|
+
loadingUsers[uid] = true;
|
|
183
|
+
errors[uid] = null;
|
|
184
|
+
}
|
|
185
|
+
return { loadingUsers, errors };
|
|
186
|
+
});
|
|
187
|
+
try {
|
|
188
|
+
const result = await oxyServices.unfollowUsers(userIds);
|
|
189
|
+
set((state: FollowState) => {
|
|
190
|
+
const followingUsers = { ...state.followingUsers };
|
|
191
|
+
const loadingUsers = { ...state.loadingUsers };
|
|
192
|
+
const errors = { ...state.errors };
|
|
193
|
+
for (const uid of userIds) {
|
|
194
|
+
loadingUsers[uid] = false;
|
|
195
|
+
}
|
|
196
|
+
for (const entry of result.results) {
|
|
197
|
+
if (entry.success) {
|
|
198
|
+
followingUsers[entry.userId] = false;
|
|
199
|
+
errors[entry.userId] = null;
|
|
200
|
+
} else {
|
|
201
|
+
errors[entry.userId] = 'Failed to update follow status';
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return { followingUsers, loadingUsers, errors };
|
|
205
|
+
});
|
|
206
|
+
return result;
|
|
207
|
+
} catch (error: unknown) {
|
|
208
|
+
const message = (error instanceof Error ? error.message : null) || 'Failed to update follow status';
|
|
209
|
+
set((state: FollowState) => {
|
|
210
|
+
const loadingUsers = { ...state.loadingUsers };
|
|
211
|
+
const errors = { ...state.errors };
|
|
212
|
+
for (const uid of userIds) {
|
|
213
|
+
loadingUsers[uid] = false;
|
|
214
|
+
errors[uid] = message;
|
|
215
|
+
}
|
|
216
|
+
return { loadingUsers, errors };
|
|
217
|
+
});
|
|
218
|
+
throw error;
|
|
219
|
+
}
|
|
220
|
+
},
|
|
175
221
|
setFollowerCount: (userId: string, count: number) => set((state: FollowState) => ({
|
|
176
222
|
followerCounts: { ...state.followerCounts, [userId]: count },
|
|
177
223
|
})),
|