@oxyhq/services 27.1.2 → 27.1.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 (36) hide show
  1. package/lib/commonjs/index.js +18 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/FollowTargetButton.js +22 -11
  4. package/lib/commonjs/ui/components/FollowTargetButton.js.map +1 -1
  5. package/lib/commonjs/ui/hooks/useFollowTarget.js +11 -2
  6. package/lib/commonjs/ui/hooks/useFollowTarget.js.map +1 -1
  7. package/lib/commonjs/ui/stores/followTargetStore.js +12 -0
  8. package/lib/commonjs/ui/stores/followTargetStore.js.map +1 -1
  9. package/lib/module/index.js +7 -1
  10. package/lib/module/index.js.map +1 -1
  11. package/lib/module/ui/components/FollowTargetButton.js +22 -11
  12. package/lib/module/ui/components/FollowTargetButton.js.map +1 -1
  13. package/lib/module/ui/hooks/useFollowTarget.js +12 -3
  14. package/lib/module/ui/hooks/useFollowTarget.js.map +1 -1
  15. package/lib/module/ui/stores/followTargetStore.js +11 -0
  16. package/lib/module/ui/stores/followTargetStore.js.map +1 -1
  17. package/lib/typescript/commonjs/index.d.ts +1 -1
  18. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  19. package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts +6 -1
  20. package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts.map +1 -1
  21. package/lib/typescript/commonjs/ui/hooks/useFollowTarget.d.ts.map +1 -1
  22. package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts +7 -0
  23. package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts.map +1 -1
  24. package/lib/typescript/module/index.d.ts +1 -1
  25. package/lib/typescript/module/index.d.ts.map +1 -1
  26. package/lib/typescript/module/ui/components/FollowTargetButton.d.ts +6 -1
  27. package/lib/typescript/module/ui/components/FollowTargetButton.d.ts.map +1 -1
  28. package/lib/typescript/module/ui/hooks/useFollowTarget.d.ts.map +1 -1
  29. package/lib/typescript/module/ui/stores/followTargetStore.d.ts +7 -0
  30. package/lib/typescript/module/ui/stores/followTargetStore.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/src/index.ts +11 -1
  33. package/src/ui/components/FollowTargetButton.tsx +28 -6
  34. package/src/ui/components/__tests__/followTargetButton.test.ts +12 -0
  35. package/src/ui/hooks/useFollowTarget.ts +12 -4
  36. package/src/ui/stores/followTargetStore.ts +11 -0
@@ -33,6 +33,12 @@ Object.defineProperty(exports, "CreateAccountScreen", {
33
33
  return _CreateAccountScreen.default;
34
34
  }
35
35
  });
36
+ Object.defineProperty(exports, "FOLLOW_ACTION_LEAVES_ACTIVE", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _FollowTargetButton.FOLLOW_ACTION_LEAVES_ACTIVE;
40
+ }
41
+ });
36
42
  Object.defineProperty(exports, "FollowButton", {
37
43
  enumerable: true,
38
44
  get: function () {
@@ -171,6 +177,12 @@ Object.defineProperty(exports, "UNKNOWN_FOLLOW_STATUS", {
171
177
  return _followTargetStore.UNKNOWN_FOLLOW_STATUS;
172
178
  }
173
179
  });
180
+ Object.defineProperty(exports, "buildFollowMenuItems", {
181
+ enumerable: true,
182
+ get: function () {
183
+ return _FollowTargetButton.buildFollowMenuItems;
184
+ }
185
+ });
174
186
  Object.defineProperty(exports, "clearedFieldsFromAccountUpdate", {
175
187
  enumerable: true,
176
188
  get: function () {
@@ -321,6 +333,12 @@ Object.defineProperty(exports, "queryKeys", {
321
333
  return _queryKeys.queryKeys;
322
334
  }
323
335
  });
336
+ Object.defineProperty(exports, "resolveFollowPrimaryAction", {
337
+ enumerable: true,
338
+ get: function () {
339
+ return _FollowTargetButton.resolveFollowPrimaryAction;
340
+ }
341
+ });
324
342
  Object.defineProperty(exports, "setOxyAssetInstance", {
325
343
  enumerable: true,
326
344
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_reactNative","_OxyProvider","_interopRequireDefault","_OxyContext","_useAuth","_identityBinding","_authStore","_accountStore","_assetStore","_useAssets","_useFileDownloadUrl","_useFollow","_useStorage","_useAccountQueries","_useServicesQueries","_useSecurityQueries","_useAuthMethods","_usePaymentQueries","_useAccountMutations","_useServicesMutations","_mutationFactory","_mutationKeys","_queryKeys","_userCache","_useMutationStatus","_useOnlineStatus","_useOxyEvent","_errorHandlers","_useFileFiltering","_OxySignInButton","_oauthPopup","_OxyAuthPrompt","_OxyOAuthCallback","_OxyConsentScreen","_RequireOxyAuth","_FollowButton","_FollowTargetButton","_useFollowTarget","_followTargetStore","_OxyPayButton","_LogoIcon","_LogoText","_ProfileButton","_OxyAuthChooser","_OxySignInRequestSurface","_useSwitchableAccounts","_ProfileScreen","_ManageAccountScreen","_NotificationsScreen","_PreferencesScreen","_ConnectedAppsScreen","_CreateAccountScreen","_AccountMembersScreen","_AccountSettingsScreen","_bottomSheetManager","_useSurfaceHeader","_SurfaceHeaderAction","_accountDialogManager","e","__esModule","default","setPlatformOS","Platform","OS"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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,qBAAA,GAAAlD,sBAAA,CAAAH,OAAA;AACA,IAAAsD,sBAAA,GAAAnD,sBAAA,CAAAH,OAAA;AAKA,IAAAuD,mBAAA,GAAAvD,OAAA;AAMA,IAAAwD,iBAAA,GAAAxD,OAAA;AACA,IAAAyD,oBAAA,GAAAzD,OAAA;AAMA,IAAA0D,qBAAA,GAAA1D,OAAA;AAI8C,SAAAG,uBAAAwD,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAnX9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAIA,IAAAG,mBAAa,EAACC,qBAAQ,CAACC,EAAgB,CAAC;;AAExC;AACA;AACA;;AAMA;AACA;AACA;;AAGA;AACA;AACA;;AAgBA;AACA;AACA;;AAOA;AACA;AACA;;AAgCA;;AAeA;AACA;AACA;;AA2BA;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA;;AAMA;AACA;AACA;;AASA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAsBA;AACA;AACA;AACA;AACA;;AAMA;;AAuBA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAIA;;AAOA;;AAKA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_reactNative","_OxyProvider","_interopRequireDefault","_OxyContext","_useAuth","_identityBinding","_authStore","_accountStore","_assetStore","_useAssets","_useFileDownloadUrl","_useFollow","_useStorage","_useAccountQueries","_useServicesQueries","_useSecurityQueries","_useAuthMethods","_usePaymentQueries","_useAccountMutations","_useServicesMutations","_mutationFactory","_mutationKeys","_queryKeys","_userCache","_useMutationStatus","_useOnlineStatus","_useOxyEvent","_errorHandlers","_useFileFiltering","_OxySignInButton","_oauthPopup","_OxyAuthPrompt","_OxyOAuthCallback","_OxyConsentScreen","_RequireOxyAuth","_FollowButton","_FollowTargetButton","_useFollowTarget","_followTargetStore","_OxyPayButton","_LogoIcon","_LogoText","_ProfileButton","_OxyAuthChooser","_OxySignInRequestSurface","_useSwitchableAccounts","_ProfileScreen","_ManageAccountScreen","_NotificationsScreen","_PreferencesScreen","_ConnectedAppsScreen","_CreateAccountScreen","_AccountMembersScreen","_AccountSettingsScreen","_bottomSheetManager","_useSurfaceHeader","_SurfaceHeaderAction","_accountDialogManager","e","__esModule","default","setPlatformOS","Platform","OS"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAMA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAEA,IAAAK,QAAA,GAAAL,OAAA;AAKA,IAAAM,gBAAA,GAAAN,OAAA;AAKA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AAgBA,IAAAU,UAAA,GAAAV,OAAA;AACA,IAAAW,mBAAA,GAAAX,OAAA;AACA,IAAAY,UAAA,GAAAZ,OAAA;AACA,IAAAa,WAAA,GAAAb,OAAA;AAMA,IAAAc,kBAAA,GAAAd,OAAA;AAUA,IAAAe,mBAAA,GAAAf,OAAA;AAQA,IAAAgB,mBAAA,GAAAhB,OAAA;AAKA,IAAAiB,eAAA,GAAAjB,OAAA;AACA,IAAAkB,kBAAA,GAAAlB,OAAA;AAyBA,IAAAmB,oBAAA,GAAAnB,OAAA;AAUA,IAAAoB,qBAAA,GAAApB,OAAA;AAOA,IAAAqB,gBAAA,GAAArB,OAAA;AAUA,IAAAsB,aAAA,GAAAtB,OAAA;AAQA,IAAAuB,UAAA,GAAAvB,OAAA;AAqBA,IAAAwB,UAAA,GAAAxB,OAAA;AAcA,IAAAyB,kBAAA,GAAAzB,OAAA;AAEA,IAAA0B,gBAAA,GAAA1B,OAAA;AACA,IAAA2B,YAAA,GAAA3B,OAAA;AAKA,IAAA4B,cAAA,GAAA5B,OAAA;AAWA,IAAA6B,iBAAA,GAAA7B,OAAA;AA+BA,IAAA8B,gBAAA,GAAA3B,sBAAA,CAAAH,OAAA;AAOA,IAAA+B,WAAA,GAAA/B,OAAA;AAUA,IAAAgC,cAAA,GAAAhC,OAAA;AAEA,IAAAiC,iBAAA,GAAAjC,OAAA;AAEA,IAAAkC,iBAAA,GAAAlC,OAAA;AAYA,IAAAmC,eAAA,GAAAnC,OAAA;AAGA,IAAAoC,aAAA,GAAAjC,sBAAA,CAAAH,OAAA;AAGA,IAAAqC,mBAAA,GAAArC,OAAA;AAiBA,IAAAsC,gBAAA,GAAAtC,OAAA;AAEA,IAAAuC,kBAAA,GAAAvC,OAAA;AASA,IAAAwC,aAAA,GAAArC,sBAAA,CAAAH,OAAA;AACA,IAAAyC,SAAA,GAAAzC,OAAA;AACA,IAAA0C,SAAA,GAAA1C,OAAA;AAKA,IAAA2C,cAAA,GAAAxC,sBAAA,CAAAH,OAAA;AASA,IAAA4C,eAAA,GAAAzC,sBAAA,CAAAH,OAAA;AAWA,IAAA6C,wBAAA,GAAA7C,OAAA;AAUA,IAAA8C,sBAAA,GAAA9C,OAAA;AAIA,IAAA+C,cAAA,GAAA5C,sBAAA,CAAAH,OAAA;AACA,IAAAgD,oBAAA,GAAA7C,sBAAA,CAAAH,OAAA;AACA,IAAAiD,oBAAA,GAAA9C,sBAAA,CAAAH,OAAA;AACA,IAAAkD,kBAAA,GAAA/C,sBAAA,CAAAH,OAAA;AACA,IAAAmD,oBAAA,GAAAhD,sBAAA,CAAAH,OAAA;AAGA,IAAAoD,oBAAA,GAAAjD,sBAAA,CAAAH,OAAA;AACA,IAAAqD,qBAAA,GAAAlD,sBAAA,CAAAH,OAAA;AACA,IAAAsD,sBAAA,GAAAnD,sBAAA,CAAAH,OAAA;AAKA,IAAAuD,mBAAA,GAAAvD,OAAA;AAMA,IAAAwD,iBAAA,GAAAxD,OAAA;AACA,IAAAyD,oBAAA,GAAAzD,OAAA;AAMA,IAAA0D,qBAAA,GAAA1D,OAAA;AAI8C,SAAAG,uBAAAwD,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA7X9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAIA,IAAAG,mBAAa,EAACC,qBAAQ,CAACC,EAAgB,CAAC;;AAExC;AACA;AACA;;AAMA;AACA;AACA;;AAGA;AACA;AACA;;AAgBA;AACA;AACA;;AAOA;AACA;AACA;;AAgCA;;AAeA;AACA;AACA;;AA2BA;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA;;AAMA;AACA;AACA;;AASA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAsBA;AACA;AACA;AACA;AACA;;AAMA;;AAiCA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAIA;;AAOA;;AAKA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;AACA","ignoreList":[]}
@@ -13,6 +13,7 @@ var _icons = require("@oxyhq/bloom/icons");
13
13
  var _menu = require("@oxyhq/bloom/menu");
14
14
  var _toast = require("@oxyhq/bloom/toast");
15
15
  var _useFollowTarget = require("../hooks/useFollowTarget.js");
16
+ var _followTargetStore = require("../stores/followTargetStore.js");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  /**
18
19
  * `FollowTargetButton` — one button for everything an Oxy user can follow.
@@ -195,6 +196,7 @@ const FollowTargetButton = exports.FollowTargetButton = /*#__PURE__*/(0, _react.
195
196
  showOptions = true,
196
197
  durations = DEFAULT_DURATIONS,
197
198
  applicationName,
199
+ initialStatus,
198
200
  onChange
199
201
  }) {
200
202
  const {
@@ -206,7 +208,13 @@ const FollowTargetButton = exports.FollowTargetButton = /*#__PURE__*/(0, _react.
206
208
  unfollow,
207
209
  disableHere,
208
210
  enableHere
209
- } = (0, _useFollowTarget.useFollowTarget)(targetId);
211
+ } = (0, _useFollowTarget.useFollowTarget)(targetId, {
212
+ initialStatus
213
+ });
214
+ const reportMutationFailure = (0, _react.useCallback)(() => {
215
+ const message = _followTargetStore.useFollowTargetStore.getState().errors[targetId] ?? 'Could not update follow status';
216
+ _toast.toast.error(message);
217
+ }, [targetId]);
210
218
  const text = (0, _react.useMemo)(() => ({
211
219
  ...VERB_LABELS[verb],
212
220
  ...labels
@@ -235,25 +243,28 @@ const FollowTargetButton = exports.FollowTargetButton = /*#__PURE__*/(0, _react.
235
243
  applicationMode: status.applicationMode
236
244
  })) {
237
245
  case 'enable-here':
238
- if (await enableHere()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['enable-here']);
246
+ if (await enableHere()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['enable-here']);else reportMutationFailure();
239
247
  return;
240
248
  case 'unfollow':
241
- if (await unfollow()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.unfollow);
249
+ if (await unfollow()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.unfollow);else reportMutationFailure();
242
250
  return;
243
251
  case 'follow':
244
- if (await follow()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.follow);
252
+ if (await follow()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.follow);else reportMutationFailure();
245
253
  }
246
- }, [isFollowing, status.applicationMode, follow, unfollow, enableHere, onChange]);
254
+ }, [isFollowing, status.applicationMode, follow, unfollow, enableHere, onChange, reportMutationFailure]);
247
255
  const handleTimed = (0, _react.useCallback)(async (seconds, durationLabel) => {
248
256
  if (!(await follow({
249
257
  expiresIn: seconds
250
- }))) return;
258
+ }))) {
259
+ reportMutationFailure();
260
+ return;
261
+ }
251
262
  onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['follow-timed']);
252
263
  // The confirmation is the point: a follow that ends on its own is a
253
264
  // promise, and a user who does not see it made will not believe it.
254
265
  // Which is also why it must not appear when the promise was not made.
255
266
  _toast.toast.success(`Following for ${durationLabel.toLowerCase()}`);
256
- }, [follow, onChange]);
267
+ }, [follow, onChange, reportMutationFailure]);
257
268
  const menuItems = (0, _react.useMemo)(() => buildFollowMenuItems({
258
269
  following: isFollowing,
259
270
  applicationMode: status.applicationMode,
@@ -275,20 +286,20 @@ const FollowTargetButton = exports.FollowTargetButton = /*#__PURE__*/(0, _react.
275
286
  // menu item exists to end.
276
287
  case 'enable-here':
277
288
  void enableHere().then(ok => {
278
- if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['enable-here']);
289
+ if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['enable-here']);else reportMutationFailure();
279
290
  });
280
291
  return;
281
292
  case 'disable-here':
282
293
  void disableHere().then(ok => {
283
- if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['disable-here']);
294
+ if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['disable-here']);else reportMutationFailure();
284
295
  });
285
296
  return;
286
297
  case 'unfollow':
287
298
  void unfollow().then(ok => {
288
- if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.unfollow);
299
+ if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.unfollow);else reportMutationFailure();
289
300
  });
290
301
  }
291
- }, [handleTimed, enableHere, disableHere, unfollow, onChange]);
302
+ }, [handleTimed, enableHere, disableHere, unfollow, onChange, reportMutationFailure]);
292
303
  const primary = /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
293
304
  variant: isFollowing ? 'secondary' : 'primary',
294
305
  size: size
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_button","_icons","_menu","_toast","_useFollowTarget","_jsxRuntime","VERB_LABELS","follow","idle","active","pending","disabled","subscribe","join","watch","HOUR","DEFAULT_DURATIONS","label","seconds","FOLLOW_ACTION_LEAVES_ACTIVE","exports","unfollow","resolveFollowPrimaryAction","input","isFollowing","applicationMode","buildFollowMenuItems","items","following","durations","d","push","key","idleVerb","toLowerCase","action","type","durationLabel","hasRelationship","isPending","applicationName","FollowTargetButton","memo","targetId","verb","labels","size","style","showOptions","onChange","status","isUnknown","disableHere","enableHere","useFollowTarget","text","useMemo","globalState","handlePrimary","useCallback","handleTimed","expiresIn","toast","success","menuItems","Boolean","relationshipId","runItem","item","then","ok","primary","jsx","Button","variant","loading","onPress","accessibilityLabel","children","length","View","jsxs","flexDirection","alignItems","gap","Menu","MenuTrigger","hint","props","icon","ChevronBottom_Stroke2_Corner0_Rounded","width","accessibilityHint","MenuContent","showCancel","map","MenuItem","MenuItemText"],"sourceRoot":"../../../../src","sources":["ui/components/FollowTargetButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_button","_icons","_menu","_toast","_useFollowTarget","_followTargetStore","_jsxRuntime","VERB_LABELS","follow","idle","active","pending","disabled","subscribe","join","watch","HOUR","DEFAULT_DURATIONS","label","seconds","FOLLOW_ACTION_LEAVES_ACTIVE","exports","unfollow","resolveFollowPrimaryAction","input","isFollowing","applicationMode","buildFollowMenuItems","items","following","durations","d","push","key","idleVerb","toLowerCase","action","type","durationLabel","hasRelationship","isPending","applicationName","FollowTargetButton","memo","targetId","verb","labels","size","style","showOptions","initialStatus","onChange","status","isUnknown","disableHere","enableHere","useFollowTarget","reportMutationFailure","useCallback","message","useFollowTargetStore","getState","errors","toast","error","text","useMemo","globalState","handlePrimary","handleTimed","expiresIn","success","menuItems","Boolean","relationshipId","runItem","item","then","ok","primary","jsx","Button","variant","loading","onPress","accessibilityLabel","children","length","View","jsxs","flexDirection","alignItems","gap","Menu","MenuTrigger","hint","props","icon","ChevronBottom_Stroke2_Corner0_Rounded","width","accessibilityHint","MenuContent","showCancel","map","MenuItem","MenuItemText"],"sourceRoot":"../../../../src","sources":["ui/components/FollowTargetButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -52,12 +52,21 @@ function useFollowTarget(targetId, options) {
52
52
  _followTargetStore.useFollowTargetStore.getState().setStatus(targetId, next);
53
53
  _followTargetStore.useFollowTargetStore.getState().setError(targetId, undefined);
54
54
  } catch (e) {
55
- _followTargetStore.useFollowTargetStore.getState().setError(targetId, e instanceof Error ? e.message : 'Could not read follow status');
55
+ const store = _followTargetStore.useFollowTargetStore.getState();
56
+ const message = e instanceof Error ? e.message : 'Could not read follow status';
57
+ // Leave `isUnknown` false so the button stays interactive and can retry.
58
+ // A failed read is not the same as "never asked" — disabling forever would
59
+ // strand the user with no affordance when the network blips.
60
+ if (!store.statuses[targetId]) {
61
+ store.setStatus(targetId, _followTargetStore.UNKNOWN_FOLLOW_STATUS);
62
+ }
63
+ store.setError(targetId, message);
56
64
  }
57
65
  }, [targetId, canUsePrivateApi, oxyServices]);
58
66
  (0, _react.useEffect)(() => {
59
67
  if (!targetId || !canUsePrivateApi) return;
60
- if (_followTargetStore.useFollowTargetStore.getState().statuses[targetId]) return;
68
+ const existing = _followTargetStore.useFollowTargetStore.getState().statuses[targetId];
69
+ if (existing && (0, _followTargetStore.isCompleteFollowStatus)(existing)) return;
61
70
  void refresh();
62
71
  }, [targetId, canUsePrivateApi, refresh]);
63
72
 
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_OxyContext","_followTargetStore","useFollowTarget","targetId","options","oxyServices","canUsePrivateApi","useOxy","status","useFollowTargetStore","useCallback","s","statuses","undefined","isPending","pending","error","errors","initialStatus","useEffect","store","getState","setStatus","refresh","next","getFollowTargetStatus","setError","e","Error","message","mutate","optimistic","run","failureMessage","previous","setPending","settled","current","UNKNOWN_FOLLOW_STATUS","follow","opts","withApplicationMode","globalState","applicationMode","expiresIn","expiresAt","Date","now","toISOString","followTarget","unfollow","relationshipId","unfollowTarget","disableHere","setFollowApplicationMode","enableHere","restoreFollowInheritance","isFollowing","isFollowedGlobally","isUnknown"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollowTarget.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_OxyContext","_followTargetStore","useFollowTarget","targetId","options","oxyServices","canUsePrivateApi","useOxy","status","useFollowTargetStore","useCallback","s","statuses","undefined","isPending","pending","error","errors","initialStatus","useEffect","store","getState","setStatus","refresh","next","getFollowTargetStatus","setError","e","message","Error","UNKNOWN_FOLLOW_STATUS","existing","isCompleteFollowStatus","mutate","optimistic","run","failureMessage","previous","setPending","settled","current","follow","opts","withApplicationMode","globalState","applicationMode","expiresIn","expiresAt","Date","now","toISOString","followTarget","unfollow","relationshipId","unfollowTarget","disableHere","setFollowApplicationMode","enableHere","restoreFollowInheritance","isFollowing","isFollowedGlobally","isUnknown"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollowTarget.ts"],"mappings":";;;;;;AAiBA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AApBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyCO,SAASG,eAAeA,CAC7BC,QAA4B,EAC5BC,OAA0C,EACnB;EACvB,MAAM;IAAEC,WAAW;IAAEC;EAAiB,CAAC,GAAG,IAAAC,kBAAM,EAAC,CAAC;EAElD,MAAMC,MAAM,GAAG,IAAAC,uCAAoB,EACjC,IAAAC,kBAAW,EAAEC,CAAC,IAAMR,QAAQ,GAAGQ,CAAC,CAACC,QAAQ,CAACT,QAAQ,CAAC,GAAGU,SAAU,EAAE,CAACV,QAAQ,CAAC,CAC9E,CAAC;EACD,MAAMW,SAAS,GAAG,IAAAL,uCAAoB,EACpC,IAAAC,kBAAW,EAAEC,CAAC,IAAMR,QAAQ,GAAIQ,CAAC,CAACI,OAAO,CAACZ,QAAQ,CAAC,IAAI,KAAK,GAAI,KAAM,EAAE,CAACA,QAAQ,CAAC,CACpF,CAAC;EACD,MAAMa,KAAK,GAAG,IAAAP,uCAAoB,EAChC,IAAAC,kBAAW,EAAEC,CAAC,IAAMR,QAAQ,GAAGQ,CAAC,CAACM,MAAM,CAACd,QAAQ,CAAC,GAAGU,SAAU,EAAE,CAACV,QAAQ,CAAC,CAC5E,CAAC;EAED,MAAMe,aAAa,GAAGd,OAAO,EAAEc,aAAa;;EAE5C;EACA;EACA,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAAChB,QAAQ,IAAI,CAACe,aAAa,EAAE;IACjC,MAAME,KAAK,GAAGX,uCAAoB,CAACY,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAACD,KAAK,CAACR,QAAQ,CAACT,QAAQ,CAAC,EAAEiB,KAAK,CAACE,SAAS,CAACnB,QAAQ,EAAEe,aAAa,CAAC;EACzE,CAAC,EAAE,CAACf,QAAQ,EAAEe,aAAa,CAAC,CAAC;EAE7B,MAAMK,OAAO,GAAG,IAAAb,kBAAW,EAAC,YAAY;IACtC;IACA;IACA;IACA;IACA,IAAI,CAACP,QAAQ,IAAI,CAACG,gBAAgB,EAAE;IACpC,IAAI;MACF,MAAMkB,IAAI,GAAG,MAAMnB,WAAW,CAACoB,qBAAqB,CAACtB,QAAQ,CAAC;MAC9DM,uCAAoB,CAACY,QAAQ,CAAC,CAAC,CAACC,SAAS,CAACnB,QAAQ,EAAEqB,IAAI,CAAC;MACzDf,uCAAoB,CAACY,QAAQ,CAAC,CAAC,CAACK,QAAQ,CAACvB,QAAQ,EAAEU,SAAS,CAAC;IAC/D,CAAC,CAAC,OAAOc,CAAC,EAAE;MACV,MAAMP,KAAK,GAAGX,uCAAoB,CAACY,QAAQ,CAAC,CAAC;MAC7C,MAAMO,OAAO,GAAGD,CAAC,YAAYE,KAAK,GAAGF,CAAC,CAACC,OAAO,GAAG,8BAA8B;MAC/E;MACA;MACA;MACA,IAAI,CAACR,KAAK,CAACR,QAAQ,CAACT,QAAQ,CAAC,EAAE;QAC7BiB,KAAK,CAACE,SAAS,CAACnB,QAAQ,EAAE2B,wCAAqB,CAAC;MAClD;MACAV,KAAK,CAACM,QAAQ,CAACvB,QAAQ,EAAEyB,OAAO,CAAC;IACnC;EACF,CAAC,EAAE,CAACzB,QAAQ,EAAEG,gBAAgB,EAAED,WAAW,CAAC,CAAC;EAE7C,IAAAc,gBAAS,EAAC,MAAM;IACd,IAAI,CAAChB,QAAQ,IAAI,CAACG,gBAAgB,EAAE;IACpC,MAAMyB,QAAQ,GAAGtB,uCAAoB,CAACY,QAAQ,CAAC,CAAC,CAACT,QAAQ,CAACT,QAAQ,CAAC;IACnE,IAAI4B,QAAQ,IAAI,IAAAC,yCAAsB,EAACD,QAAQ,CAAC,EAAE;IAClD,KAAKR,OAAO,CAAC,CAAC;EAChB,CAAC,EAAE,CAACpB,QAAQ,EAAEG,gBAAgB,EAAEiB,OAAO,CAAC,CAAC;;EAEzC;AACF;AACA;AACA;AACA;EACE,MAAMU,MAAM,GAAG,IAAAvB,kBAAW,EACxB,OACEwB,UAAwB,EACxBC,GAA4C,EAC5CC,cAAsB,KACD;IACrB,IAAI,CAACjC,QAAQ,EAAE,OAAO,KAAK;IAC3B,MAAMiB,KAAK,GAAGX,uCAAoB,CAACY,QAAQ,CAAC,CAAC;IAC7C,MAAMgB,QAAQ,GAAGjB,KAAK,CAACR,QAAQ,CAACT,QAAQ,CAAC;IACzCiB,KAAK,CAACE,SAAS,CAACnB,QAAQ,EAAE+B,UAAU,CAAC;IACrCd,KAAK,CAACkB,UAAU,CAACnC,QAAQ,EAAE,IAAI,CAAC;IAChCiB,KAAK,CAACM,QAAQ,CAACvB,QAAQ,EAAEU,SAAS,CAAC;IACnC,IAAI;MACF,MAAM0B,OAAO,GAAG,MAAMJ,GAAG,CAAC,CAAC;MAC3B,IAAII,OAAO,EAAE9B,uCAAoB,CAACY,QAAQ,CAAC,CAAC,CAACC,SAAS,CAACnB,QAAQ,EAAEoC,OAAO,CAAC;MACzE,OAAO,IAAI;IACb,CAAC,CAAC,OAAOZ,CAAC,EAAE;MACV,MAAMhB,CAAC,GAAGF,uCAAoB,CAACY,QAAQ,CAAC,CAAC;MACzC;MACA;MACA,IAAIgB,QAAQ,EAAE1B,CAAC,CAACW,SAAS,CAACnB,QAAQ,EAAEkC,QAAQ,CAAC;MAC7C1B,CAAC,CAACe,QAAQ,CAACvB,QAAQ,EAAEwB,CAAC,YAAYE,KAAK,GAAGF,CAAC,CAACC,OAAO,GAAGQ,cAAc,CAAC;MACrE,OAAO,KAAK;IACd,CAAC,SAAS;MACR3B,uCAAoB,CAACY,QAAQ,CAAC,CAAC,CAACiB,UAAU,CAACnC,QAAQ,EAAE,KAAK,CAAC;IAC7D;EACF,CAAC,EACD,CAACA,QAAQ,CACX,CAAC;EAED,MAAMqC,OAAO,GAAGhC,MAAM,IAAIsB,wCAAqB;EAE/C,MAAMW,MAAM,GAAG,IAAA/B,kBAAW,EACxB,MAAOgC,IAA6B,IAAK;IACvC,IAAI,CAACvC,QAAQ,EAAE,OAAO,KAAK;IAC3B,OAAO8B,MAAM,CACX;MACE,GAAG,IAAAU,sCAAmB,EAAC;QAAE,GAAGH,OAAO;QAAEI,WAAW,EAAE;MAAS,CAAC,EAAEJ,OAAO,CAACK,eAAe,CAAC;MACtF,IAAIH,IAAI,EAAEI,SAAS,GACf;QAAEC,SAAS,EAAE,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGP,IAAI,CAACI,SAAS,GAAG,IAAI,CAAC,CAACI,WAAW,CAAC;MAAE,CAAC,GACzE,CAAC,CAAC;IACR,CAAC;IACD;IACA;IACA;IACA,YAAY,CAAC,MAAM7C,WAAW,CAAC8C,YAAY,CAAChD,QAAQ,EAAEuC,IAAI,CAAC,EAAElC,MAAM,EACnE,kBACF,CAAC;EACH,CAAC,EACD,CAACL,QAAQ,EAAEqC,OAAO,EAAEP,MAAM,EAAE5B,WAAW,CACzC,CAAC;EAED,MAAM+C,QAAQ,GAAG,IAAA1C,kBAAW,EAAC,YAAY;IACvC,MAAM2C,cAAc,GAAGb,OAAO,CAACa,cAAc;IAC7C,IAAI,CAAClD,QAAQ,IAAI,CAACkD,cAAc,EAAE,OAAO,KAAK;IAC9C,OAAOpB,MAAM,CACX;MAAE,GAAGH;IAAsB,CAAC,EAC5B,YAAY;MACV,MAAMzB,WAAW,CAACiD,cAAc,CAACD,cAAc,CAAC;MAChD,OAAO;QAAE,GAAGvB;MAAsB,CAAC;IACrC,CAAC,EACD,oBACF,CAAC;EACH,CAAC,EAAE,CAAC3B,QAAQ,EAAEqC,OAAO,CAACa,cAAc,EAAEpB,MAAM,EAAE5B,WAAW,CAAC,CAAC;EAE3D,MAAMkD,WAAW,GAAG,IAAA7C,kBAAW,EAAC,YAAY;IAC1C,MAAM2C,cAAc,GAAGb,OAAO,CAACa,cAAc;IAC7C,IAAI,CAAClD,QAAQ,IAAI,CAACkD,cAAc,EAAE,OAAO,KAAK;IAC9C,MAAMnB,UAAU,GAAG,IAAAS,sCAAmB,EAACH,OAAO,EAAE,UAAU,CAAC;IAC3D,OAAOP,MAAM,CACXC,UAAU,EACV,YAAY;MACV,MAAM7B,WAAW,CAACmD,wBAAwB,CAACH,cAAc,EAAE,UAAU,CAAC;MACtE,OAAOnB,UAAU;IACnB,CAAC,EACD,qDACF,CAAC;EACH,CAAC,EAAE,CAAC/B,QAAQ,EAAEqC,OAAO,EAAEP,MAAM,EAAE5B,WAAW,CAAC,CAAC;EAE5C,MAAMoD,UAAU,GAAG,IAAA/C,kBAAW,EAAC,YAAY;IACzC,MAAM2C,cAAc,GAAGb,OAAO,CAACa,cAAc;IAC7C,IAAI,CAAClD,QAAQ,IAAI,CAACkD,cAAc,EAAE,OAAO,KAAK;IAC9C,MAAMnB,UAAU,GAAG,IAAAS,sCAAmB,EAACH,OAAO,EAAE,SAAS,CAAC;IAC1D,OAAOP,MAAM,CACXC,UAAU,EACV,YAAY;MACV,MAAM7B,WAAW,CAACqD,wBAAwB,CAACL,cAAc,CAAC;MAC1D,OAAOnB,UAAU;IACnB,CAAC,EACD,qDACF,CAAC;EACH,CAAC,EAAE,CAAC/B,QAAQ,EAAEqC,OAAO,EAAEP,MAAM,EAAE5B,WAAW,CAAC,CAAC;EAE5C,OAAO;IACLG,MAAM,EAAEgC,OAAO;IACfmB,WAAW,EAAE,IAAAC,qCAAkB,EAACpB,OAAO,CAAC;IACxCqB,SAAS,EAAErD,MAAM,KAAKK,SAAS;IAC/BC,SAAS;IACTE,KAAK;IACLyB,MAAM;IACNW,QAAQ;IACRG,WAAW;IACXE,UAAU;IACVlC;EACF,CAAC;AACH","ignoreList":[]}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.UNKNOWN_FOLLOW_STATUS = void 0;
7
+ exports.isCompleteFollowStatus = isCompleteFollowStatus;
7
8
  exports.isFollowedGlobally = isFollowedGlobally;
8
9
  exports.useFollowTargetStore = void 0;
9
10
  exports.withApplicationMode = withApplicationMode;
@@ -96,6 +97,17 @@ function isFollowedGlobally(status) {
96
97
  return status.globalState === 'active' || status.globalState === 'requested';
97
98
  }
98
99
 
100
+ /**
101
+ * Whether a cached status is safe to act on without a round trip.
102
+ *
103
+ * List payloads often carry `globalState` without `relationshipId`. Treating
104
+ * that as authoritative would leave disable/unfollow as no-ops forever.
105
+ */
106
+ function isCompleteFollowStatus(status) {
107
+ if (isFollowedGlobally(status)) return Boolean(status.relationshipId);
108
+ return true;
109
+ }
110
+
99
111
  /**
100
112
  * Apply a mode change to a cached status without a round trip.
101
113
  *
@@ -1 +1 @@
1
- {"version":3,"names":["_zustand","require","UNKNOWN_FOLLOW_STATUS","exports","globalState","applicationMode","effectiveState","useFollowTargetStore","create","set","statuses","pending","errors","setStatus","targetId","status","s","seed","entries","setPending","setError","error","reset","isFollowedGlobally","withApplicationMode","mode"],"sourceRoot":"../../../../src","sources":["ui/stores/followTargetStore.ts"],"mappings":";;;;;;;;;AAwBA,IAAAA,QAAA,GAAAC,OAAA;AAxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,qBAAmC,GAAAC,OAAA,CAAAD,qBAAA,GAAG;EACjDE,WAAW,EAAE,MAAM;EACnBC,eAAe,EAAE,SAAS;EAC1BC,cAAc,EAAE;AAClB,CAAC;AAEM,MAAMC,oBAAoB,GAAAJ,OAAA,CAAAI,oBAAA,GAAG,IAAAC,eAAM,EAAqBC,GAAG,KAAM;EACtEC,QAAQ,EAAE,CAAC,CAAC;EACZC,OAAO,EAAE,CAAC,CAAC;EACXC,MAAM,EAAE,CAAC,CAAC;EAEVC,SAAS,EAAEA,CAACC,QAAQ,EAAEC,MAAM,KAC1BN,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,CAACI,QAAQ,GAAGC;IAAO;EAAE,CAAC,CAAC,CAAC;EAEnEE,IAAI,EAAGC,OAAO,IAAKT,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,GAAGQ;IAAQ;EAAE,CAAC,CAAC,CAAC;EAE5EC,UAAU,EAAEA,CAACL,QAAQ,EAAEH,OAAO,KAC5BF,GAAG,CAAEO,CAAC,KAAM;IAAEL,OAAO,EAAE;MAAE,GAAGK,CAAC,CAACL,OAAO;MAAE,CAACG,QAAQ,GAAGH;IAAQ;EAAE,CAAC,CAAC,CAAC;EAElES,QAAQ,EAAEA,CAACN,QAAQ,EAAEO,KAAK,KAAKZ,GAAG,CAAEO,CAAC,KAAM;IAAEJ,MAAM,EAAE;MAAE,GAAGI,CAAC,CAACJ,MAAM;MAAE,CAACE,QAAQ,GAAGO;IAAM;EAAE,CAAC,CAAC,CAAC;EAE3F;EACA;EACA;EACA;EACAC,KAAK,EAAEA,CAAA,KAAMb,GAAG,CAAC;IAAEC,QAAQ,EAAE,CAAC,CAAC;IAAEC,OAAO,EAAE,CAAC,CAAC;IAAEC,MAAM,EAAE,CAAC;EAAE,CAAC;AAC5D,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASW,kBAAkBA,CAACR,MAAoB,EAAW;EAChE,OAAOA,MAAM,CAACX,WAAW,KAAK,QAAQ,IAAIW,MAAM,CAACX,WAAW,KAAK,WAAW;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASoB,mBAAmBA,CACjCT,MAAoB,EACpBU,IAA2B,EACb;EACd,OAAO;IACL,GAAGV,MAAM;IACTV,eAAe,EAAEoB,IAAI;IACrBnB,cAAc,EACZmB,IAAI,KAAK,UAAU,GACf,eAAe,GACfV,MAAM,CAACX,WAAW,KAAK,QAAQ,GAC7B,WAAW,GACXW,MAAM,CAACX,WAAW,KAAK,WAAW,GAChC,WAAW,GACX;EACZ,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["_zustand","require","UNKNOWN_FOLLOW_STATUS","exports","globalState","applicationMode","effectiveState","useFollowTargetStore","create","set","statuses","pending","errors","setStatus","targetId","status","s","seed","entries","setPending","setError","error","reset","isFollowedGlobally","isCompleteFollowStatus","Boolean","relationshipId","withApplicationMode","mode"],"sourceRoot":"../../../../src","sources":["ui/stores/followTargetStore.ts"],"mappings":";;;;;;;;;;AAwBA,IAAAA,QAAA,GAAAC,OAAA;AAxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,qBAAmC,GAAAC,OAAA,CAAAD,qBAAA,GAAG;EACjDE,WAAW,EAAE,MAAM;EACnBC,eAAe,EAAE,SAAS;EAC1BC,cAAc,EAAE;AAClB,CAAC;AAEM,MAAMC,oBAAoB,GAAAJ,OAAA,CAAAI,oBAAA,GAAG,IAAAC,eAAM,EAAqBC,GAAG,KAAM;EACtEC,QAAQ,EAAE,CAAC,CAAC;EACZC,OAAO,EAAE,CAAC,CAAC;EACXC,MAAM,EAAE,CAAC,CAAC;EAEVC,SAAS,EAAEA,CAACC,QAAQ,EAAEC,MAAM,KAC1BN,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,CAACI,QAAQ,GAAGC;IAAO;EAAE,CAAC,CAAC,CAAC;EAEnEE,IAAI,EAAGC,OAAO,IAAKT,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,GAAGQ;IAAQ;EAAE,CAAC,CAAC,CAAC;EAE5EC,UAAU,EAAEA,CAACL,QAAQ,EAAEH,OAAO,KAC5BF,GAAG,CAAEO,CAAC,KAAM;IAAEL,OAAO,EAAE;MAAE,GAAGK,CAAC,CAACL,OAAO;MAAE,CAACG,QAAQ,GAAGH;IAAQ;EAAE,CAAC,CAAC,CAAC;EAElES,QAAQ,EAAEA,CAACN,QAAQ,EAAEO,KAAK,KAAKZ,GAAG,CAAEO,CAAC,KAAM;IAAEJ,MAAM,EAAE;MAAE,GAAGI,CAAC,CAACJ,MAAM;MAAE,CAACE,QAAQ,GAAGO;IAAM;EAAE,CAAC,CAAC,CAAC;EAE3F;EACA;EACA;EACA;EACAC,KAAK,EAAEA,CAAA,KAAMb,GAAG,CAAC;IAAEC,QAAQ,EAAE,CAAC,CAAC;IAAEC,OAAO,EAAE,CAAC,CAAC;IAAEC,MAAM,EAAE,CAAC;EAAE,CAAC;AAC5D,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASW,kBAAkBA,CAACR,MAAoB,EAAW;EAChE,OAAOA,MAAM,CAACX,WAAW,KAAK,QAAQ,IAAIW,MAAM,CAACX,WAAW,KAAK,WAAW;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASoB,sBAAsBA,CAACT,MAAoB,EAAW;EACpE,IAAIQ,kBAAkB,CAACR,MAAM,CAAC,EAAE,OAAOU,OAAO,CAACV,MAAM,CAACW,cAAc,CAAC;EACrE,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CACjCZ,MAAoB,EACpBa,IAA2B,EACb;EACd,OAAO;IACL,GAAGb,MAAM;IACTV,eAAe,EAAEuB,IAAI;IACrBtB,cAAc,EACZsB,IAAI,KAAK,UAAU,GACf,eAAe,GACfb,MAAM,CAACX,WAAW,KAAK,QAAQ,GAC7B,WAAW,GACXW,MAAM,CAACX,WAAW,KAAK,WAAW,GAChC,WAAW,GACX;EACZ,CAAC;AACH","ignoreList":[]}
@@ -146,7 +146,13 @@ export { OxyConsentScreen } from "./ui/components/OxyConsentScreen.js";
146
146
  export { RequireOxyAuth } from "./ui/components/RequireOxyAuth.js";
147
147
  export { default as FollowButton } from "./ui/components/FollowButton.js";
148
148
  // The follow graph (#809): follows anything registered, not just users.
149
- export { FollowTargetButton } from "./ui/components/FollowTargetButton.js";
149
+ export { FollowTargetButton,
150
+ // The product rules the button encodes, for an application drawing its own
151
+ // affordance instead of using it — a chip grid, a compact row control.
152
+ // Unexported, they get duplicated, and the duplicate is where the "off here"
153
+ // rule goes wrong: pressing a follow that is switched off here must re-enable
154
+ // it here, not unfollow everywhere.
155
+ buildFollowMenuItems, resolveFollowPrimaryAction, FOLLOW_ACTION_LEAVES_ACTIVE } from "./ui/components/FollowTargetButton.js";
150
156
  export { useFollowTarget } from "./ui/hooks/useFollowTarget.js";
151
157
  export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS,
152
158
  // The answer to "does the user follow this at all". Documented in
@@ -1 +1 @@
1
- {"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useAuth","IdentityBoundSessionError","useAuthStore","useAccountStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useSeedFollowStatuses","useStorage","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useConnectedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useAuthMethods","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeConnectedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useMutationStatus","useOnlineStatus","useOxyEvent","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","OXY_OAUTH_STATE_STORAGE_KEY","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","OxySignInButton","openOAuthPopup","OxyAuthPrompt","OxyOAuthCallback","OxyConsentScreen","RequireOxyAuth","FollowButton","FollowTargetButton","useFollowTarget","useFollowTargetStore","UNKNOWN_FOLLOW_STATUS","isFollowedGlobally","withApplicationMode","OxyPayButton","LogoIcon","LogoText","ProfileButton","OxyAuthChooser","OxySignInRequestSurface","useSwitchableAccounts","ProfileScreen","ManageAccountScreen","NotificationsScreen","PreferencesScreen","ConnectedAppsScreen","CreateAccountScreen","AccountMembersScreen","AccountSettingsScreen","showBottomSheet","closeBottomSheet","useSurfaceHeader","SurfaceHeaderAction","openAccountDialog","closeAccountDialog","subscribeToAccountDialog"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,SAASA,aAAa,QAAyB,aAAa;AAC5D,SAASC,QAAQ,QAAQ,cAAc;AACvCD,aAAa,CAACC,QAAQ,CAACC,EAAgB,CAAC;;AAExC;AACA;AACA;AACA,SAASC,OAAO,IAAIC,WAAW,QAAQ,gCAA6B;AACpE,SAASC,MAAM,QAAQ,4BAAyB;AAEhD,SAASC,OAAO,QAAQ,uBAAoB;AAE5C;AACA;AACA;AACA,SAASC,yBAAyB,QAAQ,iCAA8B;;AAExE;AACA;AACA;AACA,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SAASC,eAAe,QAAQ,6BAA0B;AAC1D,SACIC,aAAa,EACbC,SAAS,IAAIC,cAAc,EAC3BC,QAAQ,EACRC,iBAAiB,EACjBC,eAAe,EACfC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,kBAAkB,EAClBC,gBAAgB,QACb,2BAAwB;;AAE/B;AACA;AACA;AACA,SAAST,SAAS,EAAEU,mBAAmB,QAAQ,yBAAsB;AACrE,SAASC,kBAAkB,QAAQ,kCAA+B;AAClE,SAASC,SAAS,EAAEC,iBAAiB,EAAEC,qBAAqB,QAAQ,yBAAsB;AAC1F,SAASC,UAAU,QAAQ,0BAAuB;AAGlD;AACA;AACA;AACA,SACIC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,WAAW,EACXC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,gBAAgB,QACb,yCAAsC;AAC7C,SACIC,WAAW,EACXC,UAAU,EACVC,iBAAiB,EACjBC,cAAc,EACdC,eAAe,EACfC,sBAAsB,QACnB,0CAAuC;AAC9C,SACIC,mBAAmB,EACnBC,yBAAyB,EACzBC,2BAA2B,QACxB,0CAAuC;AAC9C,SAASC,cAAc,QAAQ,sCAAmC;AAClE,SACIC,mBAAmB,EACnBC,eAAe,EACfC,aAAa,EACbC,yBAAyB,QACtB,yCAAsC;;AAE7C;;AAeA;AACA;AACA;AACA,SACIC,gBAAgB,EAChBC,eAAe,EACfC,wBAAwB,EACxBC,wBAAwB,EACxBC,gCAAgC,EAChCC,wBAAwB,EACxBC,qBAAqB,EACrBC,aAAa,QACV,6CAA0C;AACjD,SACIC,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAY,EACZC,mBAAmB,EACnBC,eAAe,QACZ,8CAA2C;AAClD,SACIC,qBAAqB,EACrBC,qBAAqB,QAClB,yCAAsC;AAM7C;AACA,SAASC,YAAY,QAAQ,sCAAmC;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA,SACIC,SAAS,EACTC,wBAAwB,EACxBC,qBAAqB,EACrBC,wBAAwB,EACxBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,wBAAwB,EACxBC,yBAAyB,EACzBC,8BAA8B,EAC9BC,4BAA4B,QACzB,iCAA8B;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SACIC,gBAAgB,EAChBC,iBAAiB,EACjBC,qBAAqB,EACrBC,8BAA8B,EAC9BC,8BAA8B,QAC3B,iCAA8B;AAOrC;AACA,SAASC,iBAAiB,QAAQ,iCAA8B;AAEhE,SAASC,eAAe,QAAQ,+BAA4B;AAC5D,SAASC,WAAW,QAAQ,2BAAwB;;AAEpD;AACA;AACA;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,6BAA0B;AAGjC;AACA;AACA;AACA,SAASC,gBAAgB,QAAQ,gCAA6B;AAG9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SACEC,2BAA2B,EAC3BC,mCAAmC,QAC9B,aAAa;AACpB,SAASvF,OAAO,IAAIwF,eAAe,QAAQ,oCAAiC;AAG5E;AACA;AACA;AACA;AACA,SAASC,cAAc,QAAQ,0BAAuB;AAUtD,SAASC,aAAa,QAAQ,kCAA+B;AAE7D,SAASC,gBAAgB,QAAQ,qCAAkC;AAEnE,SAASC,gBAAgB,QAAQ,qCAAkC;AAOnE;AACA;AACA;AACA;AACA;AACA,SAASC,cAAc,QAAQ,mCAAgC;AAG/D,SAAS7F,OAAO,IAAI8F,YAAY,QAAQ,iCAA8B;AAEtE;AACA,SAASC,kBAAkB,QAAQ,uCAAoC;AAOvE,SAASC,eAAe,QAAQ,+BAA4B;AAE5D,SACEC,oBAAoB,EACpBC,qBAAqB;AACrB;AACA;AACA;AACAC,kBAAkB,EAClBC,mBAAmB,QACd,kCAA+B;AACtC,SAASpG,OAAO,IAAIqG,YAAY,QAAQ,iCAA8B;AACtE,SAASC,QAAQ,QAAQ,kCAA+B;AACxD,SAASC,QAAQ,QAAQ,kCAA+B;;AAExD;AACA;AACA;AACA,SAASvG,OAAO,IAAIwG,aAAa,QAAQ,kCAA+B;AAIxE;AACA;AACA;AACA;AACA;AACA,SAASxG,OAAO,IAAIyG,cAAc,QAAQ,mCAAgC;AAG1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,uBAAuB,QAAQ,4CAAyC;AAIjF;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,qBAAqB,QAAQ,qCAAkC;AAGxE;AACA,SAAS3G,OAAO,IAAI4G,aAAa,QAAQ,+BAA4B;AACrE,SAAS5G,OAAO,IAAI6G,mBAAmB,QAAQ,qCAAkC;AACjF,SAAS7G,OAAO,IAAI8G,mBAAmB,QAAQ,qCAAkC;AACjF,SAAS9G,OAAO,IAAI+G,iBAAiB,QAAQ,mCAAgC;AAC7E,SAAS/G,OAAO,IAAIgH,mBAAmB,QAAQ,qCAAkC;;AAEjF;AACA,SAAShH,OAAO,IAAIiH,mBAAmB,QAAQ,qCAAkC;AACjF,SAASjH,OAAO,IAAIkH,oBAAoB,QAAQ,sCAAmC;AACnF,SAASlH,OAAO,IAAImH,qBAAqB,QAAQ,uCAAoC;;AAErF;AACA;AACA;AACA,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,uCAAoC;AAGtF;AACA;AACA;AACA,SAASC,gBAAgB,QAAmC,gCAA6B;AACzF,SAASC,mBAAmB,QAAuC,wCAAqC;;AAExG;AACA;AACA;AACA;AACA,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,wBAAwB,QACnB,yCAAsC","ignoreList":[]}
1
+ {"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useAuth","IdentityBoundSessionError","useAuthStore","useAccountStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useSeedFollowStatuses","useStorage","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useConnectedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useAuthMethods","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeConnectedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useMutationStatus","useOnlineStatus","useOxyEvent","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","OXY_OAUTH_STATE_STORAGE_KEY","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","OxySignInButton","openOAuthPopup","OxyAuthPrompt","OxyOAuthCallback","OxyConsentScreen","RequireOxyAuth","FollowButton","FollowTargetButton","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","useFollowTarget","useFollowTargetStore","UNKNOWN_FOLLOW_STATUS","isFollowedGlobally","withApplicationMode","OxyPayButton","LogoIcon","LogoText","ProfileButton","OxyAuthChooser","OxySignInRequestSurface","useSwitchableAccounts","ProfileScreen","ManageAccountScreen","NotificationsScreen","PreferencesScreen","ConnectedAppsScreen","CreateAccountScreen","AccountMembersScreen","AccountSettingsScreen","showBottomSheet","closeBottomSheet","useSurfaceHeader","SurfaceHeaderAction","openAccountDialog","closeAccountDialog","subscribeToAccountDialog"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -40,6 +40,7 @@ import { ChevronBottom_Stroke2_Corner0_Rounded as ChevronDown } from '@oxyhq/blo
40
40
  import { Menu, MenuContent, MenuItem, MenuItemText, MenuTrigger } from '@oxyhq/bloom/menu';
41
41
  import { toast } from '@oxyhq/bloom/toast';
42
42
  import { useFollowTarget } from "../hooks/useFollowTarget.js";
43
+ import { useFollowTargetStore } from "../stores/followTargetStore.js";
43
44
 
44
45
  /**
45
46
  * The small vocabulary of verbs the ecosystem actually uses. An application
@@ -189,6 +190,7 @@ export const FollowTargetButton = /*#__PURE__*/memo(function FollowTargetButton(
189
190
  showOptions = true,
190
191
  durations = DEFAULT_DURATIONS,
191
192
  applicationName,
193
+ initialStatus,
192
194
  onChange
193
195
  }) {
194
196
  const {
@@ -200,7 +202,13 @@ export const FollowTargetButton = /*#__PURE__*/memo(function FollowTargetButton(
200
202
  unfollow,
201
203
  disableHere,
202
204
  enableHere
203
- } = useFollowTarget(targetId);
205
+ } = useFollowTarget(targetId, {
206
+ initialStatus
207
+ });
208
+ const reportMutationFailure = useCallback(() => {
209
+ const message = useFollowTargetStore.getState().errors[targetId] ?? 'Could not update follow status';
210
+ toast.error(message);
211
+ }, [targetId]);
204
212
  const text = useMemo(() => ({
205
213
  ...VERB_LABELS[verb],
206
214
  ...labels
@@ -229,25 +237,28 @@ export const FollowTargetButton = /*#__PURE__*/memo(function FollowTargetButton(
229
237
  applicationMode: status.applicationMode
230
238
  })) {
231
239
  case 'enable-here':
232
- if (await enableHere()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['enable-here']);
240
+ if (await enableHere()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['enable-here']);else reportMutationFailure();
233
241
  return;
234
242
  case 'unfollow':
235
- if (await unfollow()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.unfollow);
243
+ if (await unfollow()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.unfollow);else reportMutationFailure();
236
244
  return;
237
245
  case 'follow':
238
- if (await follow()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.follow);
246
+ if (await follow()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.follow);else reportMutationFailure();
239
247
  }
240
- }, [isFollowing, status.applicationMode, follow, unfollow, enableHere, onChange]);
248
+ }, [isFollowing, status.applicationMode, follow, unfollow, enableHere, onChange, reportMutationFailure]);
241
249
  const handleTimed = useCallback(async (seconds, durationLabel) => {
242
250
  if (!(await follow({
243
251
  expiresIn: seconds
244
- }))) return;
252
+ }))) {
253
+ reportMutationFailure();
254
+ return;
255
+ }
245
256
  onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['follow-timed']);
246
257
  // The confirmation is the point: a follow that ends on its own is a
247
258
  // promise, and a user who does not see it made will not believe it.
248
259
  // Which is also why it must not appear when the promise was not made.
249
260
  toast.success(`Following for ${durationLabel.toLowerCase()}`);
250
- }, [follow, onChange]);
261
+ }, [follow, onChange, reportMutationFailure]);
251
262
  const menuItems = useMemo(() => buildFollowMenuItems({
252
263
  following: isFollowing,
253
264
  applicationMode: status.applicationMode,
@@ -269,20 +280,20 @@ export const FollowTargetButton = /*#__PURE__*/memo(function FollowTargetButton(
269
280
  // menu item exists to end.
270
281
  case 'enable-here':
271
282
  void enableHere().then(ok => {
272
- if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['enable-here']);
283
+ if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['enable-here']);else reportMutationFailure();
273
284
  });
274
285
  return;
275
286
  case 'disable-here':
276
287
  void disableHere().then(ok => {
277
- if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['disable-here']);
288
+ if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['disable-here']);else reportMutationFailure();
278
289
  });
279
290
  return;
280
291
  case 'unfollow':
281
292
  void unfollow().then(ok => {
282
- if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.unfollow);
293
+ if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.unfollow);else reportMutationFailure();
283
294
  });
284
295
  }
285
- }, [handleTimed, enableHere, disableHere, unfollow, onChange]);
296
+ }, [handleTimed, enableHere, disableHere, unfollow, onChange, reportMutationFailure]);
286
297
  const primary = /*#__PURE__*/_jsx(Button, {
287
298
  variant: isFollowing ? 'secondary' : 'primary',
288
299
  size: size
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","useMemo","View","Button","ChevronBottom_Stroke2_Corner0_Rounded","ChevronDown","Menu","MenuContent","MenuItem","MenuItemText","MenuTrigger","toast","useFollowTarget","jsx","_jsx","jsxs","_jsxs","VERB_LABELS","follow","idle","active","pending","disabled","subscribe","join","watch","HOUR","DEFAULT_DURATIONS","label","seconds","FOLLOW_ACTION_LEAVES_ACTIVE","unfollow","resolveFollowPrimaryAction","input","isFollowing","applicationMode","buildFollowMenuItems","items","following","durations","d","push","key","idleVerb","toLowerCase","action","type","durationLabel","hasRelationship","isPending","applicationName","FollowTargetButton","targetId","verb","labels","size","style","showOptions","onChange","status","isUnknown","disableHere","enableHere","text","globalState","handlePrimary","handleTimed","expiresIn","success","menuItems","Boolean","relationshipId","runItem","item","then","ok","primary","variant","loading","onPress","accessibilityLabel","children","length","flexDirection","alignItems","gap","hint","props","icon","width","accessibilityHint","showCancel","map"],"sourceRoot":"../../../../src","sources":["ui/components/FollowTargetButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","useMemo","View","Button","ChevronBottom_Stroke2_Corner0_Rounded","ChevronDown","Menu","MenuContent","MenuItem","MenuItemText","MenuTrigger","toast","useFollowTarget","useFollowTargetStore","jsx","_jsx","jsxs","_jsxs","VERB_LABELS","follow","idle","active","pending","disabled","subscribe","join","watch","HOUR","DEFAULT_DURATIONS","label","seconds","FOLLOW_ACTION_LEAVES_ACTIVE","unfollow","resolveFollowPrimaryAction","input","isFollowing","applicationMode","buildFollowMenuItems","items","following","durations","d","push","key","idleVerb","toLowerCase","action","type","durationLabel","hasRelationship","isPending","applicationName","FollowTargetButton","targetId","verb","labels","size","style","showOptions","initialStatus","onChange","status","isUnknown","disableHere","enableHere","reportMutationFailure","message","getState","errors","error","text","globalState","handlePrimary","handleTimed","expiresIn","success","menuItems","Boolean","relationshipId","runItem","item","then","ok","primary","variant","loading","onPress","accessibilityLabel","children","length","flexDirection","alignItems","gap","hint","props","icon","width","accessibilityHint","showCancel","map"],"sourceRoot":"../../../../src","sources":["ui/components/FollowTargetButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,7 @@
19
19
 
20
20
  import { useCallback, useEffect } from 'react';
21
21
  import { useOxy } from "../context/OxyContext.js";
22
- import { isFollowedGlobally, UNKNOWN_FOLLOW_STATUS, useFollowTargetStore, withApplicationMode } from "../stores/followTargetStore.js";
22
+ import { isCompleteFollowStatus, isFollowedGlobally, UNKNOWN_FOLLOW_STATUS, useFollowTargetStore, withApplicationMode } from "../stores/followTargetStore.js";
23
23
  export function useFollowTarget(targetId, options) {
24
24
  const {
25
25
  oxyServices,
@@ -48,12 +48,21 @@ export function useFollowTarget(targetId, options) {
48
48
  useFollowTargetStore.getState().setStatus(targetId, next);
49
49
  useFollowTargetStore.getState().setError(targetId, undefined);
50
50
  } catch (e) {
51
- useFollowTargetStore.getState().setError(targetId, e instanceof Error ? e.message : 'Could not read follow status');
51
+ const store = useFollowTargetStore.getState();
52
+ const message = e instanceof Error ? e.message : 'Could not read follow status';
53
+ // Leave `isUnknown` false so the button stays interactive and can retry.
54
+ // A failed read is not the same as "never asked" — disabling forever would
55
+ // strand the user with no affordance when the network blips.
56
+ if (!store.statuses[targetId]) {
57
+ store.setStatus(targetId, UNKNOWN_FOLLOW_STATUS);
58
+ }
59
+ store.setError(targetId, message);
52
60
  }
53
61
  }, [targetId, canUsePrivateApi, oxyServices]);
54
62
  useEffect(() => {
55
63
  if (!targetId || !canUsePrivateApi) return;
56
- if (useFollowTargetStore.getState().statuses[targetId]) return;
64
+ const existing = useFollowTargetStore.getState().statuses[targetId];
65
+ if (existing && isCompleteFollowStatus(existing)) return;
57
66
  void refresh();
58
67
  }, [targetId, canUsePrivateApi, refresh]);
59
68
 
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useOxy","isFollowedGlobally","UNKNOWN_FOLLOW_STATUS","useFollowTargetStore","withApplicationMode","useFollowTarget","targetId","options","oxyServices","canUsePrivateApi","status","s","statuses","undefined","isPending","pending","error","errors","initialStatus","store","getState","setStatus","refresh","next","getFollowTargetStatus","setError","e","Error","message","mutate","optimistic","run","failureMessage","previous","setPending","settled","current","follow","opts","globalState","applicationMode","expiresIn","expiresAt","Date","now","toISOString","followTarget","unfollow","relationshipId","unfollowTarget","disableHere","setFollowApplicationMode","enableHere","restoreFollowInheritance","isFollowing","isUnknown"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollowTarget.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAE9C,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,SACEC,kBAAkB,EAClBC,qBAAqB,EACrBC,oBAAoB,EACpBC,mBAAmB,QACd,gCAA6B;AA8BpC,OAAO,SAASC,eAAeA,CAC7BC,QAA4B,EAC5BC,OAA0C,EACnB;EACvB,MAAM;IAAEC,WAAW;IAAEC;EAAiB,CAAC,GAAGT,MAAM,CAAC,CAAC;EAElD,MAAMU,MAAM,GAAGP,oBAAoB,CACjCL,WAAW,CAAEa,CAAC,IAAML,QAAQ,GAAGK,CAAC,CAACC,QAAQ,CAACN,QAAQ,CAAC,GAAGO,SAAU,EAAE,CAACP,QAAQ,CAAC,CAC9E,CAAC;EACD,MAAMQ,SAAS,GAAGX,oBAAoB,CACpCL,WAAW,CAAEa,CAAC,IAAML,QAAQ,GAAIK,CAAC,CAACI,OAAO,CAACT,QAAQ,CAAC,IAAI,KAAK,GAAI,KAAM,EAAE,CAACA,QAAQ,CAAC,CACpF,CAAC;EACD,MAAMU,KAAK,GAAGb,oBAAoB,CAChCL,WAAW,CAAEa,CAAC,IAAML,QAAQ,GAAGK,CAAC,CAACM,MAAM,CAACX,QAAQ,CAAC,GAAGO,SAAU,EAAE,CAACP,QAAQ,CAAC,CAC5E,CAAC;EAED,MAAMY,aAAa,GAAGX,OAAO,EAAEW,aAAa;;EAE5C;EACA;EACAnB,SAAS,CAAC,MAAM;IACd,IAAI,CAACO,QAAQ,IAAI,CAACY,aAAa,EAAE;IACjC,MAAMC,KAAK,GAAGhB,oBAAoB,CAACiB,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAACD,KAAK,CAACP,QAAQ,CAACN,QAAQ,CAAC,EAAEa,KAAK,CAACE,SAAS,CAACf,QAAQ,EAAEY,aAAa,CAAC;EACzE,CAAC,EAAE,CAACZ,QAAQ,EAAEY,aAAa,CAAC,CAAC;EAE7B,MAAMI,OAAO,GAAGxB,WAAW,CAAC,YAAY;IACtC;IACA;IACA;IACA;IACA,IAAI,CAACQ,QAAQ,IAAI,CAACG,gBAAgB,EAAE;IACpC,IAAI;MACF,MAAMc,IAAI,GAAG,MAAMf,WAAW,CAACgB,qBAAqB,CAAClB,QAAQ,CAAC;MAC9DH,oBAAoB,CAACiB,QAAQ,CAAC,CAAC,CAACC,SAAS,CAACf,QAAQ,EAAEiB,IAAI,CAAC;MACzDpB,oBAAoB,CAACiB,QAAQ,CAAC,CAAC,CAACK,QAAQ,CAACnB,QAAQ,EAAEO,SAAS,CAAC;IAC/D,CAAC,CAAC,OAAOa,CAAC,EAAE;MACVvB,oBAAoB,CACjBiB,QAAQ,CAAC,CAAC,CACVK,QAAQ,CAACnB,QAAQ,EAAEoB,CAAC,YAAYC,KAAK,GAAGD,CAAC,CAACE,OAAO,GAAG,8BAA8B,CAAC;IACxF;EACF,CAAC,EAAE,CAACtB,QAAQ,EAAEG,gBAAgB,EAAED,WAAW,CAAC,CAAC;EAE7CT,SAAS,CAAC,MAAM;IACd,IAAI,CAACO,QAAQ,IAAI,CAACG,gBAAgB,EAAE;IACpC,IAAIN,oBAAoB,CAACiB,QAAQ,CAAC,CAAC,CAACR,QAAQ,CAACN,QAAQ,CAAC,EAAE;IACxD,KAAKgB,OAAO,CAAC,CAAC;EAChB,CAAC,EAAE,CAAChB,QAAQ,EAAEG,gBAAgB,EAAEa,OAAO,CAAC,CAAC;;EAEzC;AACF;AACA;AACA;AACA;EACE,MAAMO,MAAM,GAAG/B,WAAW,CACxB,OACEgC,UAAwB,EACxBC,GAA4C,EAC5CC,cAAsB,KACD;IACrB,IAAI,CAAC1B,QAAQ,EAAE,OAAO,KAAK;IAC3B,MAAMa,KAAK,GAAGhB,oBAAoB,CAACiB,QAAQ,CAAC,CAAC;IAC7C,MAAMa,QAAQ,GAAGd,KAAK,CAACP,QAAQ,CAACN,QAAQ,CAAC;IACzCa,KAAK,CAACE,SAAS,CAACf,QAAQ,EAAEwB,UAAU,CAAC;IACrCX,KAAK,CAACe,UAAU,CAAC5B,QAAQ,EAAE,IAAI,CAAC;IAChCa,KAAK,CAACM,QAAQ,CAACnB,QAAQ,EAAEO,SAAS,CAAC;IACnC,IAAI;MACF,MAAMsB,OAAO,GAAG,MAAMJ,GAAG,CAAC,CAAC;MAC3B,IAAII,OAAO,EAAEhC,oBAAoB,CAACiB,QAAQ,CAAC,CAAC,CAACC,SAAS,CAACf,QAAQ,EAAE6B,OAAO,CAAC;MACzE,OAAO,IAAI;IACb,CAAC,CAAC,OAAOT,CAAC,EAAE;MACV,MAAMf,CAAC,GAAGR,oBAAoB,CAACiB,QAAQ,CAAC,CAAC;MACzC;MACA;MACA,IAAIa,QAAQ,EAAEtB,CAAC,CAACU,SAAS,CAACf,QAAQ,EAAE2B,QAAQ,CAAC;MAC7CtB,CAAC,CAACc,QAAQ,CAACnB,QAAQ,EAAEoB,CAAC,YAAYC,KAAK,GAAGD,CAAC,CAACE,OAAO,GAAGI,cAAc,CAAC;MACrE,OAAO,KAAK;IACd,CAAC,SAAS;MACR7B,oBAAoB,CAACiB,QAAQ,CAAC,CAAC,CAACc,UAAU,CAAC5B,QAAQ,EAAE,KAAK,CAAC;IAC7D;EACF,CAAC,EACD,CAACA,QAAQ,CACX,CAAC;EAED,MAAM8B,OAAO,GAAG1B,MAAM,IAAIR,qBAAqB;EAE/C,MAAMmC,MAAM,GAAGvC,WAAW,CACxB,MAAOwC,IAA6B,IAAK;IACvC,IAAI,CAAChC,QAAQ,EAAE,OAAO,KAAK;IAC3B,OAAOuB,MAAM,CACX;MACE,GAAGzB,mBAAmB,CAAC;QAAE,GAAGgC,OAAO;QAAEG,WAAW,EAAE;MAAS,CAAC,EAAEH,OAAO,CAACI,eAAe,CAAC;MACtF,IAAIF,IAAI,EAAEG,SAAS,GACf;QAAEC,SAAS,EAAE,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGN,IAAI,CAACG,SAAS,GAAG,IAAI,CAAC,CAACI,WAAW,CAAC;MAAE,CAAC,GACzE,CAAC,CAAC;IACR,CAAC;IACD;IACA;IACA;IACA,YAAY,CAAC,MAAMrC,WAAW,CAACsC,YAAY,CAACxC,QAAQ,EAAEgC,IAAI,CAAC,EAAE5B,MAAM,EACnE,kBACF,CAAC;EACH,CAAC,EACD,CAACJ,QAAQ,EAAE8B,OAAO,EAAEP,MAAM,EAAErB,WAAW,CACzC,CAAC;EAED,MAAMuC,QAAQ,GAAGjD,WAAW,CAAC,YAAY;IACvC,MAAMkD,cAAc,GAAGZ,OAAO,CAACY,cAAc;IAC7C,IAAI,CAAC1C,QAAQ,IAAI,CAAC0C,cAAc,EAAE,OAAO,KAAK;IAC9C,OAAOnB,MAAM,CACX;MAAE,GAAG3B;IAAsB,CAAC,EAC5B,YAAY;MACV,MAAMM,WAAW,CAACyC,cAAc,CAACD,cAAc,CAAC;MAChD,OAAO;QAAE,GAAG9C;MAAsB,CAAC;IACrC,CAAC,EACD,oBACF,CAAC;EACH,CAAC,EAAE,CAACI,QAAQ,EAAE8B,OAAO,CAACY,cAAc,EAAEnB,MAAM,EAAErB,WAAW,CAAC,CAAC;EAE3D,MAAM0C,WAAW,GAAGpD,WAAW,CAAC,YAAY;IAC1C,MAAMkD,cAAc,GAAGZ,OAAO,CAACY,cAAc;IAC7C,IAAI,CAAC1C,QAAQ,IAAI,CAAC0C,cAAc,EAAE,OAAO,KAAK;IAC9C,MAAMlB,UAAU,GAAG1B,mBAAmB,CAACgC,OAAO,EAAE,UAAU,CAAC;IAC3D,OAAOP,MAAM,CACXC,UAAU,EACV,YAAY;MACV,MAAMtB,WAAW,CAAC2C,wBAAwB,CAACH,cAAc,EAAE,UAAU,CAAC;MACtE,OAAOlB,UAAU;IACnB,CAAC,EACD,qDACF,CAAC;EACH,CAAC,EAAE,CAACxB,QAAQ,EAAE8B,OAAO,EAAEP,MAAM,EAAErB,WAAW,CAAC,CAAC;EAE5C,MAAM4C,UAAU,GAAGtD,WAAW,CAAC,YAAY;IACzC,MAAMkD,cAAc,GAAGZ,OAAO,CAACY,cAAc;IAC7C,IAAI,CAAC1C,QAAQ,IAAI,CAAC0C,cAAc,EAAE,OAAO,KAAK;IAC9C,MAAMlB,UAAU,GAAG1B,mBAAmB,CAACgC,OAAO,EAAE,SAAS,CAAC;IAC1D,OAAOP,MAAM,CACXC,UAAU,EACV,YAAY;MACV,MAAMtB,WAAW,CAAC6C,wBAAwB,CAACL,cAAc,CAAC;MAC1D,OAAOlB,UAAU;IACnB,CAAC,EACD,qDACF,CAAC;EACH,CAAC,EAAE,CAACxB,QAAQ,EAAE8B,OAAO,EAAEP,MAAM,EAAErB,WAAW,CAAC,CAAC;EAE5C,OAAO;IACLE,MAAM,EAAE0B,OAAO;IACfkB,WAAW,EAAErD,kBAAkB,CAACmC,OAAO,CAAC;IACxCmB,SAAS,EAAE7C,MAAM,KAAKG,SAAS;IAC/BC,SAAS;IACTE,KAAK;IACLqB,MAAM;IACNU,QAAQ;IACRG,WAAW;IACXE,UAAU;IACV9B;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useOxy","isCompleteFollowStatus","isFollowedGlobally","UNKNOWN_FOLLOW_STATUS","useFollowTargetStore","withApplicationMode","useFollowTarget","targetId","options","oxyServices","canUsePrivateApi","status","s","statuses","undefined","isPending","pending","error","errors","initialStatus","store","getState","setStatus","refresh","next","getFollowTargetStatus","setError","e","message","Error","existing","mutate","optimistic","run","failureMessage","previous","setPending","settled","current","follow","opts","globalState","applicationMode","expiresIn","expiresAt","Date","now","toISOString","followTarget","unfollow","relationshipId","unfollowTarget","disableHere","setFollowApplicationMode","enableHere","restoreFollowInheritance","isFollowing","isUnknown"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollowTarget.ts"],"mappings":"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","ignoreList":[]}
@@ -90,6 +90,17 @@ export function isFollowedGlobally(status) {
90
90
  return status.globalState === 'active' || status.globalState === 'requested';
91
91
  }
92
92
 
93
+ /**
94
+ * Whether a cached status is safe to act on without a round trip.
95
+ *
96
+ * List payloads often carry `globalState` without `relationshipId`. Treating
97
+ * that as authoritative would leave disable/unfollow as no-ops forever.
98
+ */
99
+ export function isCompleteFollowStatus(status) {
100
+ if (isFollowedGlobally(status)) return Boolean(status.relationshipId);
101
+ return true;
102
+ }
103
+
93
104
  /**
94
105
  * Apply a mode change to a cached status without a round trip.
95
106
  *
@@ -1 +1 @@
1
- {"version":3,"names":["create","UNKNOWN_FOLLOW_STATUS","globalState","applicationMode","effectiveState","useFollowTargetStore","set","statuses","pending","errors","setStatus","targetId","status","s","seed","entries","setPending","setError","error","reset","isFollowedGlobally","withApplicationMode","mode"],"sourceRoot":"../../../../src","sources":["ui/stores/followTargetStore.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,SAAS;;AAGhC;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAmC,GAAG;EACjDC,WAAW,EAAE,MAAM;EACnBC,eAAe,EAAE,SAAS;EAC1BC,cAAc,EAAE;AAClB,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAGL,MAAM,CAAqBM,GAAG,KAAM;EACtEC,QAAQ,EAAE,CAAC,CAAC;EACZC,OAAO,EAAE,CAAC,CAAC;EACXC,MAAM,EAAE,CAAC,CAAC;EAEVC,SAAS,EAAEA,CAACC,QAAQ,EAAEC,MAAM,KAC1BN,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,CAACI,QAAQ,GAAGC;IAAO;EAAE,CAAC,CAAC,CAAC;EAEnEE,IAAI,EAAGC,OAAO,IAAKT,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,GAAGQ;IAAQ;EAAE,CAAC,CAAC,CAAC;EAE5EC,UAAU,EAAEA,CAACL,QAAQ,EAAEH,OAAO,KAC5BF,GAAG,CAAEO,CAAC,KAAM;IAAEL,OAAO,EAAE;MAAE,GAAGK,CAAC,CAACL,OAAO;MAAE,CAACG,QAAQ,GAAGH;IAAQ;EAAE,CAAC,CAAC,CAAC;EAElES,QAAQ,EAAEA,CAACN,QAAQ,EAAEO,KAAK,KAAKZ,GAAG,CAAEO,CAAC,KAAM;IAAEJ,MAAM,EAAE;MAAE,GAAGI,CAAC,CAACJ,MAAM;MAAE,CAACE,QAAQ,GAAGO;IAAM;EAAE,CAAC,CAAC,CAAC;EAE3F;EACA;EACA;EACA;EACAC,KAAK,EAAEA,CAAA,KAAMb,GAAG,CAAC;IAAEC,QAAQ,EAAE,CAAC,CAAC;IAAEC,OAAO,EAAE,CAAC,CAAC;IAAEC,MAAM,EAAE,CAAC;EAAE,CAAC;AAC5D,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASW,kBAAkBA,CAACR,MAAoB,EAAW;EAChE,OAAOA,MAAM,CAACV,WAAW,KAAK,QAAQ,IAAIU,MAAM,CAACV,WAAW,KAAK,WAAW;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASmB,mBAAmBA,CACjCT,MAAoB,EACpBU,IAA2B,EACb;EACd,OAAO;IACL,GAAGV,MAAM;IACTT,eAAe,EAAEmB,IAAI;IACrBlB,cAAc,EACZkB,IAAI,KAAK,UAAU,GACf,eAAe,GACfV,MAAM,CAACV,WAAW,KAAK,QAAQ,GAC7B,WAAW,GACXU,MAAM,CAACV,WAAW,KAAK,WAAW,GAChC,WAAW,GACX;EACZ,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["create","UNKNOWN_FOLLOW_STATUS","globalState","applicationMode","effectiveState","useFollowTargetStore","set","statuses","pending","errors","setStatus","targetId","status","s","seed","entries","setPending","setError","error","reset","isFollowedGlobally","isCompleteFollowStatus","Boolean","relationshipId","withApplicationMode","mode"],"sourceRoot":"../../../../src","sources":["ui/stores/followTargetStore.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,SAAS;;AAGhC;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAmC,GAAG;EACjDC,WAAW,EAAE,MAAM;EACnBC,eAAe,EAAE,SAAS;EAC1BC,cAAc,EAAE;AAClB,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAGL,MAAM,CAAqBM,GAAG,KAAM;EACtEC,QAAQ,EAAE,CAAC,CAAC;EACZC,OAAO,EAAE,CAAC,CAAC;EACXC,MAAM,EAAE,CAAC,CAAC;EAEVC,SAAS,EAAEA,CAACC,QAAQ,EAAEC,MAAM,KAC1BN,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,CAACI,QAAQ,GAAGC;IAAO;EAAE,CAAC,CAAC,CAAC;EAEnEE,IAAI,EAAGC,OAAO,IAAKT,GAAG,CAAEO,CAAC,KAAM;IAAEN,QAAQ,EAAE;MAAE,GAAGM,CAAC,CAACN,QAAQ;MAAE,GAAGQ;IAAQ;EAAE,CAAC,CAAC,CAAC;EAE5EC,UAAU,EAAEA,CAACL,QAAQ,EAAEH,OAAO,KAC5BF,GAAG,CAAEO,CAAC,KAAM;IAAEL,OAAO,EAAE;MAAE,GAAGK,CAAC,CAACL,OAAO;MAAE,CAACG,QAAQ,GAAGH;IAAQ;EAAE,CAAC,CAAC,CAAC;EAElES,QAAQ,EAAEA,CAACN,QAAQ,EAAEO,KAAK,KAAKZ,GAAG,CAAEO,CAAC,KAAM;IAAEJ,MAAM,EAAE;MAAE,GAAGI,CAAC,CAACJ,MAAM;MAAE,CAACE,QAAQ,GAAGO;IAAM;EAAE,CAAC,CAAC,CAAC;EAE3F;EACA;EACA;EACA;EACAC,KAAK,EAAEA,CAAA,KAAMb,GAAG,CAAC;IAAEC,QAAQ,EAAE,CAAC,CAAC;IAAEC,OAAO,EAAE,CAAC,CAAC;IAAEC,MAAM,EAAE,CAAC;EAAE,CAAC;AAC5D,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASW,kBAAkBA,CAACR,MAAoB,EAAW;EAChE,OAAOA,MAAM,CAACV,WAAW,KAAK,QAAQ,IAAIU,MAAM,CAACV,WAAW,KAAK,WAAW;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASmB,sBAAsBA,CAACT,MAAoB,EAAW;EACpE,IAAIQ,kBAAkB,CAACR,MAAM,CAAC,EAAE,OAAOU,OAAO,CAACV,MAAM,CAACW,cAAc,CAAC;EACrE,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CACjCZ,MAAoB,EACpBa,IAA2B,EACb;EACd,OAAO;IACL,GAAGb,MAAM;IACTT,eAAe,EAAEsB,IAAI;IACrBrB,cAAc,EACZqB,IAAI,KAAK,UAAU,GACf,eAAe,GACfb,MAAM,CAACV,WAAW,KAAK,QAAQ,GAC7B,WAAW,GACXU,MAAM,CAACV,WAAW,KAAK,WAAW,GAChC,WAAW,GACX;EACZ,CAAC;AACH","ignoreList":[]}
@@ -72,7 +72,7 @@ export { RequireOxyAuth } from './ui/components/RequireOxyAuth';
72
72
  export type { RequireOxyAuthProps, RequireOxyAuthPrompt } from './ui/components/RequireOxyAuth';
73
73
  export { default as FollowButton } from './ui/components/FollowButton';
74
74
  export type { FollowButtonProps, SingleFollowButtonProps, MultiFollowButtonProps } from './ui/components/FollowButton';
75
- export { FollowTargetButton } from './ui/components/FollowTargetButton';
75
+ export { FollowTargetButton, buildFollowMenuItems, resolveFollowPrimaryAction, FOLLOW_ACTION_LEAVES_ACTIVE, } from './ui/components/FollowTargetButton';
76
76
  export type { FollowTargetButtonProps, FollowVerb, FollowLabels, FollowDuration, } from './ui/components/FollowTargetButton';
77
77
  export { useFollowTarget } from './ui/hooks/useFollowTarget';
78
78
  export type { UseFollowTargetResult } from './ui/hooks/useFollowTarget';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@
30
30
  * `/v2/follows`. When it is, that component is deleted and this one takes the
31
31
  * name — not aliased, not deprecated in place.
32
32
  */
33
- import type { FollowApplicationMode } from '@oxyhq/contracts';
33
+ import type { FollowApplicationMode, FollowStatus } from '@oxyhq/contracts';
34
34
  import type { StyleProp, ViewStyle } from 'react-native';
35
35
  /**
36
36
  * The small vocabulary of verbs the ecosystem actually uses. An application
@@ -134,6 +134,11 @@ export interface FollowTargetButtonProps {
134
134
  * application" is not.
135
135
  */
136
136
  applicationName?: string;
137
+ /**
138
+ * Seed status from a list/feed payload. Incomplete rows (e.g. following without
139
+ * `relationshipId`) still trigger an authoritative refresh once private API is ready.
140
+ */
141
+ initialStatus?: FollowStatus;
137
142
  /**
138
143
  * Fires when the server accepts a change, with whether this application
139
144
  * should act on the follow NOW — the effective state, not the global one.
@@ -1 +1 @@
1
- {"version":3,"file":"FollowTargetButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowTargetButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQzD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAcD,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAeD;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAC9C,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,EACvE,OAAO,CAUR,CAAC;AAEF,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,MAAM,EACF;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAChE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,GACvB;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GACxB;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,qBAAqB,CAAC;CACxC,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,CAIxC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,qBAAqB,CAAC;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,cAAc,EAAE,CAmCnB;AAED,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,kBAAkB,+DAkK7B,CAAC"}
1
+ {"version":3,"file":"FollowTargetButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowTargetButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AASzD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAcD,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAeD;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAC9C,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,EACvE,OAAO,CAUR,CAAC;AAEF,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,MAAM,EACF;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAChE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,GACvB;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GACxB;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,qBAAqB,CAAC;CACxC,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,CAIxC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,qBAAqB,CAAC;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,cAAc,EAAE,CAmCnB;AAED,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,kBAAkB,+DAkL7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFollowTarget.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollowTarget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AASrD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,wEAAwE;IACxE,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,GACzC,qBAAqB,CA4JvB"}
1
+ {"version":3,"file":"useFollowTarget.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollowTarget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUrD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,wEAAwE;IACxE,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,GACzC,qBAAqB,CAmKvB"}
@@ -58,6 +58,13 @@ export declare const useFollowTargetStore: import("zustand").UseBoundStore<impor
58
58
  * "not followed" would offer to follow something already followed.
59
59
  */
60
60
  export declare function isFollowedGlobally(status: FollowStatus): boolean;
61
+ /**
62
+ * Whether a cached status is safe to act on without a round trip.
63
+ *
64
+ * List payloads often carry `globalState` without `relationshipId`. Treating
65
+ * that as authoritative would leave disable/unfollow as no-ops forever.
66
+ */
67
+ export declare function isCompleteFollowStatus(status: FollowStatus): boolean;
61
68
  /**
62
69
  * Apply a mode change to a cached status without a round trip.
63
70
  *
@@ -1 +1 @@
1
- {"version":3,"file":"followTargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followTargetStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5E,4EAA4E;AAC5E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAE1D,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAE3C,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;IACtD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAChE,uEAAuE;IACvE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gFAoB9B,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,qBAAqB,GAC1B,YAAY,CAad"}
1
+ {"version":3,"file":"followTargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followTargetStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5E,4EAA4E;AAC5E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAE1D,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAE3C,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;IACtD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAChE,uEAAuE;IACvE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gFAoB9B,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAGpE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,qBAAqB,GAC1B,YAAY,CAad"}
@@ -72,7 +72,7 @@ export { RequireOxyAuth } from './ui/components/RequireOxyAuth.js';
72
72
  export type { RequireOxyAuthProps, RequireOxyAuthPrompt } from './ui/components/RequireOxyAuth.js';
73
73
  export { default as FollowButton } from './ui/components/FollowButton.js';
74
74
  export type { FollowButtonProps, SingleFollowButtonProps, MultiFollowButtonProps } from './ui/components/FollowButton.js';
75
- export { FollowTargetButton } from './ui/components/FollowTargetButton.js';
75
+ export { FollowTargetButton, buildFollowMenuItems, resolveFollowPrimaryAction, FOLLOW_ACTION_LEAVES_ACTIVE, } from './ui/components/FollowTargetButton.js';
76
76
  export type { FollowTargetButtonProps, FollowVerb, FollowLabels, FollowDuration, } from './ui/components/FollowTargetButton.js';
77
77
  export { useFollowTarget } from './ui/hooks/useFollowTarget.js';
78
78
  export type { UseFollowTargetResult } from './ui/hooks/useFollowTarget.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@
30
30
  * `/v2/follows`. When it is, that component is deleted and this one takes the
31
31
  * name — not aliased, not deprecated in place.
32
32
  */
33
- import type { FollowApplicationMode } from '@oxyhq/contracts';
33
+ import type { FollowApplicationMode, FollowStatus } from '@oxyhq/contracts';
34
34
  import type { StyleProp, ViewStyle } from 'react-native';
35
35
  /**
36
36
  * The small vocabulary of verbs the ecosystem actually uses. An application
@@ -134,6 +134,11 @@ export interface FollowTargetButtonProps {
134
134
  * application" is not.
135
135
  */
136
136
  applicationName?: string;
137
+ /**
138
+ * Seed status from a list/feed payload. Incomplete rows (e.g. following without
139
+ * `relationshipId`) still trigger an authoritative refresh once private API is ready.
140
+ */
141
+ initialStatus?: FollowStatus;
137
142
  /**
138
143
  * Fires when the server accepts a change, with whether this application
139
144
  * should act on the follow NOW — the effective state, not the global one.
@@ -1 +1 @@
1
- {"version":3,"file":"FollowTargetButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowTargetButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQzD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAcD,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAeD;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAC9C,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,EACvE,OAAO,CAUR,CAAC;AAEF,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,MAAM,EACF;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAChE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,GACvB;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GACxB;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,qBAAqB,CAAC;CACxC,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,CAIxC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,qBAAqB,CAAC;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,cAAc,EAAE,CAmCnB;AAED,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,kBAAkB,+DAkK7B,CAAC"}
1
+ {"version":3,"file":"FollowTargetButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowTargetButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AASzD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAcD,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAeD;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAC9C,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,EACvE,OAAO,CAUR,CAAC;AAEF,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,MAAM,EACF;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAChE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,GACvB;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,GACxB;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,qBAAqB,CAAC;CACxC,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,CAIxC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,qBAAqB,CAAC;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,cAAc,EAAE,CAmCnB;AAED,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,kBAAkB,+DAkL7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFollowTarget.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollowTarget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AASrD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,wEAAwE;IACxE,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,GACzC,qBAAqB,CA4JvB"}
1
+ {"version":3,"file":"useFollowTarget.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useFollowTarget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUrD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,wEAAwE;IACxE,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,GACzC,qBAAqB,CAmKvB"}
@@ -58,6 +58,13 @@ export declare const useFollowTargetStore: import("zustand").UseBoundStore<impor
58
58
  * "not followed" would offer to follow something already followed.
59
59
  */
60
60
  export declare function isFollowedGlobally(status: FollowStatus): boolean;
61
+ /**
62
+ * Whether a cached status is safe to act on without a round trip.
63
+ *
64
+ * List payloads often carry `globalState` without `relationshipId`. Treating
65
+ * that as authoritative would leave disable/unfollow as no-ops forever.
66
+ */
67
+ export declare function isCompleteFollowStatus(status: FollowStatus): boolean;
61
68
  /**
62
69
  * Apply a mode change to a cached status without a round trip.
63
70
  *
@@ -1 +1 @@
1
- {"version":3,"file":"followTargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followTargetStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5E,4EAA4E;AAC5E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAE1D,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAE3C,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;IACtD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAChE,uEAAuE;IACvE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gFAoB9B,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,qBAAqB,GAC1B,YAAY,CAad"}
1
+ {"version":3,"file":"followTargetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/followTargetStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5E,4EAA4E;AAC5E,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAE1D,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAE3C,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC;IACtD,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAChE,uEAAuE;IACvE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF,eAAO,MAAM,oBAAoB,gFAoB9B,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAGpE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,qBAAqB,GAC1B,YAAY,CAad"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "27.1.2",
3
+ "version": "27.1.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",
package/src/index.ts CHANGED
@@ -279,7 +279,17 @@ export type { RequireOxyAuthProps, RequireOxyAuthPrompt } from './ui/components/
279
279
  export { default as FollowButton } from './ui/components/FollowButton';
280
280
  export type { FollowButtonProps, SingleFollowButtonProps, MultiFollowButtonProps } from './ui/components/FollowButton';
281
281
  // The follow graph (#809): follows anything registered, not just users.
282
- export { FollowTargetButton } from './ui/components/FollowTargetButton';
282
+ export {
283
+ FollowTargetButton,
284
+ // The product rules the button encodes, for an application drawing its own
285
+ // affordance instead of using it — a chip grid, a compact row control.
286
+ // Unexported, they get duplicated, and the duplicate is where the "off here"
287
+ // rule goes wrong: pressing a follow that is switched off here must re-enable
288
+ // it here, not unfollow everywhere.
289
+ buildFollowMenuItems,
290
+ resolveFollowPrimaryAction,
291
+ FOLLOW_ACTION_LEAVES_ACTIVE,
292
+ } from './ui/components/FollowTargetButton';
283
293
  export type {
284
294
  FollowTargetButtonProps,
285
295
  FollowVerb,
@@ -32,7 +32,7 @@
32
32
  */
33
33
 
34
34
  import { memo, useCallback, useMemo } from 'react';
35
- import type { FollowApplicationMode } from '@oxyhq/contracts';
35
+ import type { FollowApplicationMode, FollowStatus } from '@oxyhq/contracts';
36
36
  import type { StyleProp, ViewStyle } from 'react-native';
37
37
  import { View } from 'react-native';
38
38
  import { Button } from '@oxyhq/bloom/button';
@@ -40,6 +40,7 @@ import { ChevronBottom_Stroke2_Corner0_Rounded as ChevronDown } from '@oxyhq/blo
40
40
  import { Menu, MenuContent, MenuItem, MenuItemText, MenuTrigger } from '@oxyhq/bloom/menu';
41
41
  import { toast } from '@oxyhq/bloom/toast';
42
42
  import { useFollowTarget } from '../hooks/useFollowTarget';
43
+ import { useFollowTargetStore } from '../stores/followTargetStore';
43
44
 
44
45
  /**
45
46
  * The small vocabulary of verbs the ecosystem actually uses. An application
@@ -220,6 +221,11 @@ export interface FollowTargetButtonProps {
220
221
  * application" is not.
221
222
  */
222
223
  applicationName?: string;
224
+ /**
225
+ * Seed status from a list/feed payload. Incomplete rows (e.g. following without
226
+ * `relationshipId`) still trigger an authoritative refresh once private API is ready.
227
+ */
228
+ initialStatus?: FollowStatus;
223
229
  /**
224
230
  * Fires when the server accepts a change, with whether this application
225
231
  * should act on the follow NOW — the effective state, not the global one.
@@ -246,10 +252,17 @@ export const FollowTargetButton = memo(function FollowTargetButton({
246
252
  showOptions = true,
247
253
  durations = DEFAULT_DURATIONS,
248
254
  applicationName,
255
+ initialStatus,
249
256
  onChange,
250
257
  }: FollowTargetButtonProps) {
251
258
  const { status, isFollowing, isUnknown, isPending, follow, unfollow, disableHere, enableHere } =
252
- useFollowTarget(targetId);
259
+ useFollowTarget(targetId, { initialStatus });
260
+
261
+ const reportMutationFailure = useCallback(() => {
262
+ const message =
263
+ useFollowTargetStore.getState().errors[targetId] ?? 'Could not update follow status';
264
+ toast.error(message);
265
+ }, [targetId]);
253
266
 
254
267
  const text = useMemo(() => ({ ...VERB_LABELS[verb], ...labels }), [verb, labels]);
255
268
 
@@ -275,25 +288,31 @@ export const FollowTargetButton = memo(function FollowTargetButton({
275
288
  switch (resolveFollowPrimaryAction({ isFollowing, applicationMode: status.applicationMode })) {
276
289
  case 'enable-here':
277
290
  if (await enableHere()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['enable-here']);
291
+ else reportMutationFailure();
278
292
  return;
279
293
  case 'unfollow':
280
294
  if (await unfollow()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.unfollow);
295
+ else reportMutationFailure();
281
296
  return;
282
297
  case 'follow':
283
298
  if (await follow()) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.follow);
299
+ else reportMutationFailure();
284
300
  }
285
- }, [isFollowing, status.applicationMode, follow, unfollow, enableHere, onChange]);
301
+ }, [isFollowing, status.applicationMode, follow, unfollow, enableHere, onChange, reportMutationFailure]);
286
302
 
287
303
  const handleTimed = useCallback(
288
304
  async (seconds: number, durationLabel: string) => {
289
- if (!(await follow({ expiresIn: seconds }))) return;
305
+ if (!(await follow({ expiresIn: seconds }))) {
306
+ reportMutationFailure();
307
+ return;
308
+ }
290
309
  onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['follow-timed']);
291
310
  // The confirmation is the point: a follow that ends on its own is a
292
311
  // promise, and a user who does not see it made will not believe it.
293
312
  // Which is also why it must not appear when the promise was not made.
294
313
  toast.success(`Following for ${durationLabel.toLowerCase()}`);
295
314
  },
296
- [follow, onChange]
315
+ [follow, onChange, reportMutationFailure]
297
316
  );
298
317
 
299
318
  const menuItems = useMemo(
@@ -332,20 +351,23 @@ export const FollowTargetButton = memo(function FollowTargetButton({
332
351
  case 'enable-here':
333
352
  void enableHere().then((ok) => {
334
353
  if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['enable-here']);
354
+ else reportMutationFailure();
335
355
  });
336
356
  return;
337
357
  case 'disable-here':
338
358
  void disableHere().then((ok) => {
339
359
  if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE['disable-here']);
360
+ else reportMutationFailure();
340
361
  });
341
362
  return;
342
363
  case 'unfollow':
343
364
  void unfollow().then((ok) => {
344
365
  if (ok) onChange?.(FOLLOW_ACTION_LEAVES_ACTIVE.unfollow);
366
+ else reportMutationFailure();
345
367
  });
346
368
  }
347
369
  },
348
- [handleTimed, enableHere, disableHere, unfollow, onChange]
370
+ [handleTimed, enableHere, disableHere, unfollow, onChange, reportMutationFailure]
349
371
  );
350
372
 
351
373
  const primary = (
@@ -18,6 +18,7 @@ import {
18
18
  resolveFollowPrimaryAction,
19
19
  } from '../FollowTargetButton';
20
20
  import {
21
+ isCompleteFollowStatus,
21
22
  isFollowedGlobally,
22
23
  UNKNOWN_FOLLOW_STATUS,
23
24
  withApplicationMode,
@@ -153,6 +154,17 @@ describe('withApplicationMode', () => {
153
154
  );
154
155
  expect(isFollowedGlobally(UNKNOWN_FOLLOW_STATUS)).toBe(false);
155
156
  });
157
+
158
+ it('treats a following row without relationshipId as incomplete', () => {
159
+ expect(
160
+ isCompleteFollowStatus({
161
+ globalState: 'active',
162
+ applicationMode: 'inherit',
163
+ effectiveState: 'following',
164
+ })
165
+ ).toBe(false);
166
+ expect(isCompleteFollowStatus(UNKNOWN_FOLLOW_STATUS)).toBe(true);
167
+ });
156
168
  });
157
169
 
158
170
  describe('what onChange reports', () => {
@@ -19,6 +19,7 @@ import { useCallback, useEffect } from 'react';
19
19
  import type { FollowStatus } from '@oxyhq/contracts';
20
20
  import { useOxy } from '../context/OxyContext';
21
21
  import {
22
+ isCompleteFollowStatus,
22
23
  isFollowedGlobally,
23
24
  UNKNOWN_FOLLOW_STATUS,
24
25
  useFollowTargetStore,
@@ -90,15 +91,22 @@ export function useFollowTarget(
90
91
  useFollowTargetStore.getState().setStatus(targetId, next);
91
92
  useFollowTargetStore.getState().setError(targetId, undefined);
92
93
  } catch (e) {
93
- useFollowTargetStore
94
- .getState()
95
- .setError(targetId, e instanceof Error ? e.message : 'Could not read follow status');
94
+ const store = useFollowTargetStore.getState();
95
+ const message = e instanceof Error ? e.message : 'Could not read follow status';
96
+ // Leave `isUnknown` false so the button stays interactive and can retry.
97
+ // A failed read is not the same as "never asked" — disabling forever would
98
+ // strand the user with no affordance when the network blips.
99
+ if (!store.statuses[targetId]) {
100
+ store.setStatus(targetId, UNKNOWN_FOLLOW_STATUS);
101
+ }
102
+ store.setError(targetId, message);
96
103
  }
97
104
  }, [targetId, canUsePrivateApi, oxyServices]);
98
105
 
99
106
  useEffect(() => {
100
107
  if (!targetId || !canUsePrivateApi) return;
101
- if (useFollowTargetStore.getState().statuses[targetId]) return;
108
+ const existing = useFollowTargetStore.getState().statuses[targetId];
109
+ if (existing && isCompleteFollowStatus(existing)) return;
102
110
  void refresh();
103
111
  }, [targetId, canUsePrivateApi, refresh]);
104
112
 
@@ -93,6 +93,17 @@ export function isFollowedGlobally(status: FollowStatus): boolean {
93
93
  return status.globalState === 'active' || status.globalState === 'requested';
94
94
  }
95
95
 
96
+ /**
97
+ * Whether a cached status is safe to act on without a round trip.
98
+ *
99
+ * List payloads often carry `globalState` without `relationshipId`. Treating
100
+ * that as authoritative would leave disable/unfollow as no-ops forever.
101
+ */
102
+ export function isCompleteFollowStatus(status: FollowStatus): boolean {
103
+ if (isFollowedGlobally(status)) return Boolean(status.relationshipId);
104
+ return true;
105
+ }
106
+
96
107
  /**
97
108
  * Apply a mode change to a cached status without a round trip.
98
109
  *