@oxyhq/services 27.1.0 → 27.1.1

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 (29) hide show
  1. package/lib/commonjs/index.js +12 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/FollowTargetButton.js +42 -11
  4. package/lib/commonjs/ui/components/FollowTargetButton.js.map +1 -1
  5. package/lib/commonjs/ui/hooks/useFollowTarget.js +18 -11
  6. package/lib/commonjs/ui/hooks/useFollowTarget.js.map +1 -1
  7. package/lib/module/index.js +5 -1
  8. package/lib/module/index.js.map +1 -1
  9. package/lib/module/ui/components/FollowTargetButton.js +41 -11
  10. package/lib/module/ui/components/FollowTargetButton.js.map +1 -1
  11. package/lib/module/ui/hooks/useFollowTarget.js +18 -11
  12. package/lib/module/ui/hooks/useFollowTarget.js.map +1 -1
  13. package/lib/typescript/commonjs/index.d.ts +1 -1
  14. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  15. package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts +11 -0
  16. package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts.map +1 -1
  17. package/lib/typescript/commonjs/ui/hooks/useFollowTarget.d.ts +13 -4
  18. package/lib/typescript/commonjs/ui/hooks/useFollowTarget.d.ts.map +1 -1
  19. package/lib/typescript/module/index.d.ts +1 -1
  20. package/lib/typescript/module/index.d.ts.map +1 -1
  21. package/lib/typescript/module/ui/components/FollowTargetButton.d.ts +11 -0
  22. package/lib/typescript/module/ui/components/FollowTargetButton.d.ts.map +1 -1
  23. package/lib/typescript/module/ui/hooks/useFollowTarget.d.ts +13 -4
  24. package/lib/typescript/module/ui/hooks/useFollowTarget.d.ts.map +1 -1
  25. package/package.json +2 -2
  26. package/src/index.ts +9 -1
  27. package/src/ui/components/FollowTargetButton.tsx +40 -10
  28. package/src/ui/components/__tests__/followTargetButton.test.ts +24 -4
  29. package/src/ui/hooks/useFollowTarget.ts +43 -26
@@ -279,6 +279,12 @@ Object.defineProperty(exports, "invalidateUserQueries", {
279
279
  return _queryKeys.invalidateUserQueries;
280
280
  }
281
281
  });
282
+ Object.defineProperty(exports, "isFollowedGlobally", {
283
+ enumerable: true,
284
+ get: function () {
285
+ return _followTargetStore.isFollowedGlobally;
286
+ }
287
+ });
282
288
  Object.defineProperty(exports, "isInvalidSessionError", {
283
289
  enumerable: true,
284
290
  get: function () {
@@ -723,6 +729,12 @@ Object.defineProperty(exports, "useUsersBySessions", {
723
729
  return _useAccountQueries.useUsersBySessions;
724
730
  }
725
731
  });
732
+ Object.defineProperty(exports, "withApplicationMode", {
733
+ enumerable: true,
734
+ get: function () {
735
+ return _followTargetStore.withApplicationMode;
736
+ }
737
+ });
726
738
  var _core = require("@oxyhq/core");
727
739
  var _reactNative = require("react-native");
728
740
  var _OxyProvider = _interopRequireDefault(require("./ui/components/OxyProvider.js"));
@@ -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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D,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;AA3W9C;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;;AAeA;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;AAOA,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;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":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.FollowTargetButton = void 0;
7
7
  exports.buildFollowMenuItems = buildFollowMenuItems;
8
+ exports.resolveFollowPrimaryAction = resolveFollowPrimaryAction;
8
9
  var _react = require("react");
9
10
  var _reactNative = require("react-native");
10
11
  var _button = require("@oxyhq/bloom/button");
@@ -110,6 +111,18 @@ const DEFAULT_DURATIONS = [{
110
111
  * answered — every one of them addresses a relationship that does not exist
111
112
  * yet, so offering them mid-write would mean sending a guessed id.
112
113
  */
114
+ /**
115
+ * What the main button should do for the current state.
116
+ *
117
+ * Exported because the product rule is not obvious from the label alone: a
118
+ * follow switched off here still reads as "following" globally, so the primary
119
+ * press must re-enable here — not unfollow everywhere.
120
+ */
121
+ function resolveFollowPrimaryAction(input) {
122
+ if (!input.isFollowing) return 'follow';
123
+ if (input.applicationMode === 'disabled') return 'enable-here';
124
+ return 'unfollow';
125
+ }
113
126
  function buildFollowMenuItems(input) {
114
127
  const items = [];
115
128
  if (!input.following) {
@@ -186,22 +199,39 @@ const FollowTargetButton = exports.FollowTargetButton = /*#__PURE__*/(0, _react.
186
199
  // this act here" — so the label has to be derived from the other two.
187
200
  return status.applicationMode === 'disabled' ? text.disabled : text.active;
188
201
  }, [isFollowing, status.globalState, status.applicationMode, text]);
202
+
203
+ // `onChange` fires ONLY when the server accepted the write.
204
+ //
205
+ // The mutations never reject — a refusal becomes error state so the button
206
+ // can render it — so an unconditional `onChange` after `await` reports
207
+ // INTENT rather than outcome. A caller mirroring the follow somewhere else
208
+ // (a local shelf, a ranking signal) would then mirror failures too, and the
209
+ // button beside it would show the server's truth while the mirror showed a
210
+ // press that did not happen. Same shape of trap as reading `effectiveState`
211
+ // as "does the user follow this".
189
212
  const handlePrimary = (0, _react.useCallback)(async () => {
190
- if (isFollowing) {
191
- await unfollow();
192
- onChange?.(false);
193
- return;
213
+ switch (resolveFollowPrimaryAction({
214
+ isFollowing,
215
+ applicationMode: status.applicationMode
216
+ })) {
217
+ case 'enable-here':
218
+ if (await enableHere()) onChange?.(true);
219
+ return;
220
+ case 'unfollow':
221
+ if (await unfollow()) onChange?.(false);
222
+ return;
223
+ case 'follow':
224
+ if (await follow()) onChange?.(true);
194
225
  }
195
- await follow();
196
- onChange?.(true);
197
- }, [isFollowing, follow, unfollow, onChange]);
226
+ }, [isFollowing, status.applicationMode, follow, unfollow, enableHere, onChange]);
198
227
  const handleTimed = (0, _react.useCallback)(async (seconds, durationLabel) => {
199
- await follow({
228
+ if (!(await follow({
200
229
  expiresIn: seconds
201
- });
230
+ }))) return;
202
231
  onChange?.(true);
203
232
  // The confirmation is the point: a follow that ends on its own is a
204
233
  // promise, and a user who does not see it made will not believe it.
234
+ // Which is also why it must not appear when the promise was not made.
205
235
  _toast.toast.success(`Following for ${durationLabel.toLowerCase()}`);
206
236
  }, [follow, onChange]);
207
237
  const menuItems = (0, _react.useMemo)(() => buildFollowMenuItems({
@@ -225,8 +255,9 @@ const FollowTargetButton = exports.FollowTargetButton = /*#__PURE__*/(0, _react.
225
255
  void disableHere();
226
256
  return;
227
257
  case 'unfollow':
228
- void unfollow();
229
- onChange?.(false);
258
+ void unfollow().then(ok => {
259
+ if (ok) onChange?.(false);
260
+ });
230
261
  }
231
262
  }, [handleTimed, enableHere, disableHere, unfollow, onChange]);
232
263
  const primary = /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
@@ -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","buildFollowMenuItems","input","items","following","durations","d","push","key","idleVerb","toLowerCase","action","type","durationLabel","hasRelationship","isPending","applicationMode","applicationName","FollowTargetButton","exports","memo","targetId","verb","labels","size","style","showOptions","onChange","status","isFollowing","isUnknown","unfollow","disableHere","enableHere","useFollowTarget","text","useMemo","globalState","handlePrimary","useCallback","handleTimed","expiresIn","toast","success","menuItems","Boolean","relationshipId","runItem","item","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","_jsxRuntime","VERB_LABELS","follow","idle","active","pending","disabled","subscribe","join","watch","HOUR","DEFAULT_DURATIONS","label","seconds","resolveFollowPrimaryAction","input","isFollowing","applicationMode","buildFollowMenuItems","items","following","durations","d","push","key","idleVerb","toLowerCase","action","type","durationLabel","hasRelationship","isPending","applicationName","FollowTargetButton","exports","memo","targetId","verb","labels","size","style","showOptions","onChange","status","isUnknown","unfollow","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":[]}
@@ -67,7 +67,7 @@ function useFollowTarget(targetId, options) {
67
67
  * through this so the rollback cannot be forgotten in one of them.
68
68
  */
69
69
  const mutate = (0, _react.useCallback)(async (optimistic, run, failureMessage) => {
70
- if (!targetId) return;
70
+ if (!targetId) return false;
71
71
  const store = _followTargetStore.useFollowTargetStore.getState();
72
72
  const previous = store.statuses[targetId];
73
73
  store.setStatus(targetId, optimistic);
@@ -76,20 +76,22 @@ function useFollowTarget(targetId, options) {
76
76
  try {
77
77
  const settled = await run();
78
78
  if (settled) _followTargetStore.useFollowTargetStore.getState().setStatus(targetId, settled);
79
+ return true;
79
80
  } catch (e) {
80
81
  const s = _followTargetStore.useFollowTargetStore.getState();
81
82
  // Back to what was true, not to a guess. Clearing the entry instead
82
83
  // would make the next render ask again and flash the wrong state.
83
84
  if (previous) s.setStatus(targetId, previous);
84
85
  s.setError(targetId, e instanceof Error ? e.message : failureMessage);
86
+ return false;
85
87
  } finally {
86
88
  _followTargetStore.useFollowTargetStore.getState().setPending(targetId, false);
87
89
  }
88
90
  }, [targetId]);
89
91
  const current = status ?? _followTargetStore.UNKNOWN_FOLLOW_STATUS;
90
92
  const follow = (0, _react.useCallback)(async opts => {
91
- if (!targetId) return;
92
- await mutate({
93
+ if (!targetId) return false;
94
+ return mutate({
93
95
  ...(0, _followTargetStore.withApplicationMode)({
94
96
  ...current,
95
97
  globalState: 'active'
@@ -105,8 +107,8 @@ function useFollowTarget(targetId, options) {
105
107
  }, [targetId, current, mutate, oxyServices]);
106
108
  const unfollow = (0, _react.useCallback)(async () => {
107
109
  const relationshipId = current.relationshipId;
108
- if (!targetId || !relationshipId) return;
109
- await mutate({
110
+ if (!targetId || !relationshipId) return false;
111
+ return mutate({
110
112
  ..._followTargetStore.UNKNOWN_FOLLOW_STATUS
111
113
  }, async () => {
112
114
  await oxyServices.unfollowTarget(relationshipId);
@@ -115,15 +117,20 @@ function useFollowTarget(targetId, options) {
115
117
  };
116
118
  }, 'Could not unfollow');
117
119
  }, [targetId, current.relationshipId, mutate, oxyServices]);
118
- const setMode = (0, _react.useCallback)(async mode => {
120
+ const disableHere = (0, _react.useCallback)(async () => {
119
121
  const relationshipId = current.relationshipId;
120
- if (!targetId || !relationshipId) return;
121
- await mutate((0, _followTargetStore.withApplicationMode)(current, mode), async () => {
122
- await oxyServices.setFollowApplicationMode(relationshipId, mode);
122
+ if (!targetId || !relationshipId) return false;
123
+ return mutate((0, _followTargetStore.withApplicationMode)(current, 'disabled'), async () => {
124
+ await oxyServices.setFollowApplicationMode(relationshipId, 'disabled');
125
+ }, 'Could not change this app’s setting for this follow');
126
+ }, [targetId, current, mutate, oxyServices]);
127
+ const enableHere = (0, _react.useCallback)(async () => {
128
+ const relationshipId = current.relationshipId;
129
+ if (!targetId || !relationshipId) return false;
130
+ return mutate((0, _followTargetStore.withApplicationMode)(current, 'inherit'), async () => {
131
+ await oxyServices.restoreFollowInheritance(relationshipId);
123
132
  }, 'Could not change this app’s setting for this follow');
124
133
  }, [targetId, current, mutate, oxyServices]);
125
- const disableHere = (0, _react.useCallback)(() => setMode('disabled'), [setMode]);
126
- const enableHere = (0, _react.useCallback)(() => setMode('enabled'), [setMode]);
127
134
  return {
128
135
  status: current,
129
136
  isFollowing: (0, _followTargetStore.isFollowedGlobally)(current),
@@ -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","setMode","mode","setFollowApplicationMode","disableHere","enableHere","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","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":[]}
@@ -148,7 +148,11 @@ export { default as FollowButton } from "./ui/components/FollowButton.js";
148
148
  // The follow graph (#809): follows anything registered, not just users.
149
149
  export { FollowTargetButton } from "./ui/components/FollowTargetButton.js";
150
150
  export { useFollowTarget } from "./ui/hooks/useFollowTarget.js";
151
- export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS } from "./ui/stores/followTargetStore.js";
151
+ export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS,
152
+ // The answer to "does the user follow this at all". Documented in
153
+ // docs/FOLLOWS.md and, until now, not exported — so the one line of that
154
+ // guide most likely to be reached for did not resolve.
155
+ isFollowedGlobally, withApplicationMode } from "./ui/stores/followTargetStore.js";
152
156
  export { default as OxyPayButton } from "./ui/components/OxyPayButton.js";
153
157
  export { LogoIcon } from "./ui/components/logo/LogoIcon.js";
154
158
  export { LogoText } from "./ui/components/logo/LogoText.js";
@@ -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","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":[]}
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":"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","ignoreList":[]}
@@ -105,6 +105,18 @@ const DEFAULT_DURATIONS = [{
105
105
  * answered — every one of them addresses a relationship that does not exist
106
106
  * yet, so offering them mid-write would mean sending a guessed id.
107
107
  */
108
+ /**
109
+ * What the main button should do for the current state.
110
+ *
111
+ * Exported because the product rule is not obvious from the label alone: a
112
+ * follow switched off here still reads as "following" globally, so the primary
113
+ * press must re-enable here — not unfollow everywhere.
114
+ */
115
+ export function resolveFollowPrimaryAction(input) {
116
+ if (!input.isFollowing) return 'follow';
117
+ if (input.applicationMode === 'disabled') return 'enable-here';
118
+ return 'unfollow';
119
+ }
108
120
  export function buildFollowMenuItems(input) {
109
121
  const items = [];
110
122
  if (!input.following) {
@@ -181,22 +193,39 @@ export const FollowTargetButton = /*#__PURE__*/memo(function FollowTargetButton(
181
193
  // this act here" — so the label has to be derived from the other two.
182
194
  return status.applicationMode === 'disabled' ? text.disabled : text.active;
183
195
  }, [isFollowing, status.globalState, status.applicationMode, text]);
196
+
197
+ // `onChange` fires ONLY when the server accepted the write.
198
+ //
199
+ // The mutations never reject — a refusal becomes error state so the button
200
+ // can render it — so an unconditional `onChange` after `await` reports
201
+ // INTENT rather than outcome. A caller mirroring the follow somewhere else
202
+ // (a local shelf, a ranking signal) would then mirror failures too, and the
203
+ // button beside it would show the server's truth while the mirror showed a
204
+ // press that did not happen. Same shape of trap as reading `effectiveState`
205
+ // as "does the user follow this".
184
206
  const handlePrimary = useCallback(async () => {
185
- if (isFollowing) {
186
- await unfollow();
187
- onChange?.(false);
188
- return;
207
+ switch (resolveFollowPrimaryAction({
208
+ isFollowing,
209
+ applicationMode: status.applicationMode
210
+ })) {
211
+ case 'enable-here':
212
+ if (await enableHere()) onChange?.(true);
213
+ return;
214
+ case 'unfollow':
215
+ if (await unfollow()) onChange?.(false);
216
+ return;
217
+ case 'follow':
218
+ if (await follow()) onChange?.(true);
189
219
  }
190
- await follow();
191
- onChange?.(true);
192
- }, [isFollowing, follow, unfollow, onChange]);
220
+ }, [isFollowing, status.applicationMode, follow, unfollow, enableHere, onChange]);
193
221
  const handleTimed = useCallback(async (seconds, durationLabel) => {
194
- await follow({
222
+ if (!(await follow({
195
223
  expiresIn: seconds
196
- });
224
+ }))) return;
197
225
  onChange?.(true);
198
226
  // The confirmation is the point: a follow that ends on its own is a
199
227
  // promise, and a user who does not see it made will not believe it.
228
+ // Which is also why it must not appear when the promise was not made.
200
229
  toast.success(`Following for ${durationLabel.toLowerCase()}`);
201
230
  }, [follow, onChange]);
202
231
  const menuItems = useMemo(() => buildFollowMenuItems({
@@ -220,8 +249,9 @@ export const FollowTargetButton = /*#__PURE__*/memo(function FollowTargetButton(
220
249
  void disableHere();
221
250
  return;
222
251
  case 'unfollow':
223
- void unfollow();
224
- onChange?.(false);
252
+ void unfollow().then(ok => {
253
+ if (ok) onChange?.(false);
254
+ });
225
255
  }
226
256
  }, [handleTimed, enableHere, disableHere, unfollow, onChange]);
227
257
  const primary = /*#__PURE__*/_jsx(Button, {
@@ -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","buildFollowMenuItems","input","items","following","durations","d","push","key","idleVerb","toLowerCase","action","type","durationLabel","hasRelationship","isPending","applicationMode","applicationName","FollowTargetButton","targetId","verb","labels","size","style","showOptions","onChange","status","isFollowing","isUnknown","unfollow","disableHere","enableHere","text","globalState","handlePrimary","handleTimed","expiresIn","success","menuItems","Boolean","relationshipId","runItem","item","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","jsx","_jsx","jsxs","_jsxs","VERB_LABELS","follow","idle","active","pending","disabled","subscribe","join","watch","HOUR","DEFAULT_DURATIONS","label","seconds","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","unfollow","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":[]}
@@ -63,7 +63,7 @@ export function useFollowTarget(targetId, options) {
63
63
  * through this so the rollback cannot be forgotten in one of them.
64
64
  */
65
65
  const mutate = useCallback(async (optimistic, run, failureMessage) => {
66
- if (!targetId) return;
66
+ if (!targetId) return false;
67
67
  const store = useFollowTargetStore.getState();
68
68
  const previous = store.statuses[targetId];
69
69
  store.setStatus(targetId, optimistic);
@@ -72,20 +72,22 @@ export function useFollowTarget(targetId, options) {
72
72
  try {
73
73
  const settled = await run();
74
74
  if (settled) useFollowTargetStore.getState().setStatus(targetId, settled);
75
+ return true;
75
76
  } catch (e) {
76
77
  const s = useFollowTargetStore.getState();
77
78
  // Back to what was true, not to a guess. Clearing the entry instead
78
79
  // would make the next render ask again and flash the wrong state.
79
80
  if (previous) s.setStatus(targetId, previous);
80
81
  s.setError(targetId, e instanceof Error ? e.message : failureMessage);
82
+ return false;
81
83
  } finally {
82
84
  useFollowTargetStore.getState().setPending(targetId, false);
83
85
  }
84
86
  }, [targetId]);
85
87
  const current = status ?? UNKNOWN_FOLLOW_STATUS;
86
88
  const follow = useCallback(async opts => {
87
- if (!targetId) return;
88
- await mutate({
89
+ if (!targetId) return false;
90
+ return mutate({
89
91
  ...withApplicationMode({
90
92
  ...current,
91
93
  globalState: 'active'
@@ -101,8 +103,8 @@ export function useFollowTarget(targetId, options) {
101
103
  }, [targetId, current, mutate, oxyServices]);
102
104
  const unfollow = useCallback(async () => {
103
105
  const relationshipId = current.relationshipId;
104
- if (!targetId || !relationshipId) return;
105
- await mutate({
106
+ if (!targetId || !relationshipId) return false;
107
+ return mutate({
106
108
  ...UNKNOWN_FOLLOW_STATUS
107
109
  }, async () => {
108
110
  await oxyServices.unfollowTarget(relationshipId);
@@ -111,15 +113,20 @@ export function useFollowTarget(targetId, options) {
111
113
  };
112
114
  }, 'Could not unfollow');
113
115
  }, [targetId, current.relationshipId, mutate, oxyServices]);
114
- const setMode = useCallback(async mode => {
116
+ const disableHere = useCallback(async () => {
115
117
  const relationshipId = current.relationshipId;
116
- if (!targetId || !relationshipId) return;
117
- await mutate(withApplicationMode(current, mode), async () => {
118
- await oxyServices.setFollowApplicationMode(relationshipId, mode);
118
+ if (!targetId || !relationshipId) return false;
119
+ return mutate(withApplicationMode(current, 'disabled'), async () => {
120
+ await oxyServices.setFollowApplicationMode(relationshipId, 'disabled');
121
+ }, 'Could not change this app’s setting for this follow');
122
+ }, [targetId, current, mutate, oxyServices]);
123
+ const enableHere = useCallback(async () => {
124
+ const relationshipId = current.relationshipId;
125
+ if (!targetId || !relationshipId) return false;
126
+ return mutate(withApplicationMode(current, 'inherit'), async () => {
127
+ await oxyServices.restoreFollowInheritance(relationshipId);
119
128
  }, 'Could not change this app’s setting for this follow');
120
129
  }, [targetId, current, mutate, oxyServices]);
121
- const disableHere = useCallback(() => setMode('disabled'), [setMode]);
122
- const enableHere = useCallback(() => setMode('enabled'), [setMode]);
123
130
  return {
124
131
  status: current,
125
132
  isFollowing: isFollowedGlobally(current),
@@ -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","setMode","mode","setFollowApplicationMode","disableHere","enableHere","isFollowing","isUnknown"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollowTarget.ts"],"mappings":"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","ignoreList":[]}
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":"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","ignoreList":[]}
@@ -76,7 +76,7 @@ export { FollowTargetButton } 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';
79
- export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS } from './ui/stores/followTargetStore';
79
+ export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS, isFollowedGlobally, withApplicationMode, } from './ui/stores/followTargetStore';
80
80
  export { default as OxyPayButton } from './ui/components/OxyPayButton';
81
81
  export { LogoIcon } from './ui/components/logo/LogoIcon';
82
82
  export { LogoText } from './ui/components/logo/LogoText';
@@ -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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"}
@@ -79,6 +79,17 @@ export interface FollowMenuItem {
79
79
  * answered — every one of them addresses a relationship that does not exist
80
80
  * yet, so offering them mid-write would mean sending a guessed id.
81
81
  */
82
+ /**
83
+ * What the main button should do for the current state.
84
+ *
85
+ * Exported because the product rule is not obvious from the label alone: a
86
+ * follow switched off here still reads as "following" globally, so the primary
87
+ * press must re-enable here — not unfollow everywhere.
88
+ */
89
+ export declare function resolveFollowPrimaryAction(input: {
90
+ isFollowing: boolean;
91
+ applicationMode: FollowApplicationMode;
92
+ }): 'follow' | 'unfollow' | 'enable-here';
82
93
  export declare function buildFollowMenuItems(input: {
83
94
  following: boolean;
84
95
  applicationMode: FollowApplicationMode;
@@ -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,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,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,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,kBAAkB,+DA2I7B,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,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,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,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,kBAAkB,+DAyJ7B,CAAC"}
@@ -26,13 +26,22 @@ export interface UseFollowTargetResult {
26
26
  isUnknown: boolean;
27
27
  isPending: boolean;
28
28
  error: string | undefined;
29
+ /**
30
+ * Every mutation resolves to whether the server ACCEPTED it.
31
+ *
32
+ * They never reject — a refusal becomes `error` in the store, so the button
33
+ * can render it — which means a caller that only awaits them cannot tell a
34
+ * write that happened from one that did not. Returning the outcome is what
35
+ * lets a caller mirror the change somewhere else without mirroring failures
36
+ * too.
37
+ */
29
38
  follow: (options?: {
30
39
  expiresIn?: number;
31
- }) => Promise<void>;
32
- unfollow: () => Promise<void>;
40
+ }) => Promise<boolean>;
41
+ unfollow: () => Promise<boolean>;
33
42
  /** Stop acting on this follow HERE, without giving it up everywhere. */
34
- disableHere: () => Promise<void>;
35
- enableHere: () => Promise<void>;
43
+ disableHere: () => Promise<boolean>;
44
+ enableHere: () => Promise<boolean>;
36
45
  refresh: () => Promise<void>;
37
46
  }
38
47
  export declare function useFollowTarget(targetId: string | undefined, options?: {
@@ -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,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,wEAAwE;IACxE,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,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,CAgJvB"}
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,CAwJvB"}
@@ -76,7 +76,7 @@ export { FollowTargetButton } 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';
79
- export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS } from './ui/stores/followTargetStore.js';
79
+ export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS, isFollowedGlobally, withApplicationMode, } from './ui/stores/followTargetStore.js';
80
80
  export { default as OxyPayButton } from './ui/components/OxyPayButton.js';
81
81
  export { LogoIcon } from './ui/components/logo/LogoIcon.js';
82
82
  export { LogoText } from './ui/components/logo/LogoText.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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"}
@@ -79,6 +79,17 @@ export interface FollowMenuItem {
79
79
  * answered — every one of them addresses a relationship that does not exist
80
80
  * yet, so offering them mid-write would mean sending a guessed id.
81
81
  */
82
+ /**
83
+ * What the main button should do for the current state.
84
+ *
85
+ * Exported because the product rule is not obvious from the label alone: a
86
+ * follow switched off here still reads as "following" globally, so the primary
87
+ * press must re-enable here — not unfollow everywhere.
88
+ */
89
+ export declare function resolveFollowPrimaryAction(input: {
90
+ isFollowing: boolean;
91
+ applicationMode: FollowApplicationMode;
92
+ }): 'follow' | 'unfollow' | 'enable-here';
82
93
  export declare function buildFollowMenuItems(input: {
83
94
  following: boolean;
84
95
  applicationMode: FollowApplicationMode;
@@ -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,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,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,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,kBAAkB,+DA2I7B,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,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,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,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,kBAAkB,+DAyJ7B,CAAC"}
@@ -26,13 +26,22 @@ export interface UseFollowTargetResult {
26
26
  isUnknown: boolean;
27
27
  isPending: boolean;
28
28
  error: string | undefined;
29
+ /**
30
+ * Every mutation resolves to whether the server ACCEPTED it.
31
+ *
32
+ * They never reject — a refusal becomes `error` in the store, so the button
33
+ * can render it — which means a caller that only awaits them cannot tell a
34
+ * write that happened from one that did not. Returning the outcome is what
35
+ * lets a caller mirror the change somewhere else without mirroring failures
36
+ * too.
37
+ */
29
38
  follow: (options?: {
30
39
  expiresIn?: number;
31
- }) => Promise<void>;
32
- unfollow: () => Promise<void>;
40
+ }) => Promise<boolean>;
41
+ unfollow: () => Promise<boolean>;
33
42
  /** Stop acting on this follow HERE, without giving it up everywhere. */
34
- disableHere: () => Promise<void>;
35
- enableHere: () => Promise<void>;
43
+ disableHere: () => Promise<boolean>;
44
+ enableHere: () => Promise<boolean>;
36
45
  refresh: () => Promise<void>;
37
46
  }
38
47
  export declare function useFollowTarget(targetId: string | undefined, options?: {
@@ -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,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,wEAAwE;IACxE,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,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,CAgJvB"}
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,CAwJvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "27.1.0",
3
+ "version": "27.1.1",
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",
@@ -147,7 +147,7 @@
147
147
  "@commitlint/cli": "^21.2.1",
148
148
  "@commitlint/config-conventional": "^21.2.0",
149
149
  "@expo/vector-icons": "^15.0.3",
150
- "@oxyhq/core": "19.1.0",
150
+ "@oxyhq/core": "19.1.1",
151
151
  "@react-native-async-storage/async-storage": "^2.0.0",
152
152
  "@react-native-community/netinfo": "^11.4.1",
153
153
  "@react-native/babel-preset": "^0.86.0",
package/src/index.ts CHANGED
@@ -288,7 +288,15 @@ export type {
288
288
  } from './ui/components/FollowTargetButton';
289
289
  export { useFollowTarget } from './ui/hooks/useFollowTarget';
290
290
  export type { UseFollowTargetResult } from './ui/hooks/useFollowTarget';
291
- export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS } from './ui/stores/followTargetStore';
291
+ export {
292
+ useFollowTargetStore,
293
+ UNKNOWN_FOLLOW_STATUS,
294
+ // The answer to "does the user follow this at all". Documented in
295
+ // docs/FOLLOWS.md and, until now, not exported — so the one line of that
296
+ // guide most likely to be reached for did not resolve.
297
+ isFollowedGlobally,
298
+ withApplicationMode,
299
+ } from './ui/stores/followTargetStore';
292
300
  export { default as OxyPayButton } from './ui/components/OxyPayButton';
293
301
  export { LogoIcon } from './ui/components/logo/LogoIcon';
294
302
  export { LogoText } from './ui/components/logo/LogoText';
@@ -111,6 +111,22 @@ export interface FollowMenuItem {
111
111
  * answered — every one of them addresses a relationship that does not exist
112
112
  * yet, so offering them mid-write would mean sending a guessed id.
113
113
  */
114
+ /**
115
+ * What the main button should do for the current state.
116
+ *
117
+ * Exported because the product rule is not obvious from the label alone: a
118
+ * follow switched off here still reads as "following" globally, so the primary
119
+ * press must re-enable here — not unfollow everywhere.
120
+ */
121
+ export function resolveFollowPrimaryAction(input: {
122
+ isFollowing: boolean;
123
+ applicationMode: FollowApplicationMode;
124
+ }): 'follow' | 'unfollow' | 'enable-here' {
125
+ if (!input.isFollowing) return 'follow';
126
+ if (input.applicationMode === 'disabled') return 'enable-here';
127
+ return 'unfollow';
128
+ }
129
+
114
130
  export function buildFollowMenuItems(input: {
115
131
  following: boolean;
116
132
  applicationMode: FollowApplicationMode;
@@ -210,22 +226,35 @@ export const FollowTargetButton = memo(function FollowTargetButton({
210
226
  return status.applicationMode === 'disabled' ? text.disabled : text.active;
211
227
  }, [isFollowing, status.globalState, status.applicationMode, text]);
212
228
 
229
+ // `onChange` fires ONLY when the server accepted the write.
230
+ //
231
+ // The mutations never reject — a refusal becomes error state so the button
232
+ // can render it — so an unconditional `onChange` after `await` reports
233
+ // INTENT rather than outcome. A caller mirroring the follow somewhere else
234
+ // (a local shelf, a ranking signal) would then mirror failures too, and the
235
+ // button beside it would show the server's truth while the mirror showed a
236
+ // press that did not happen. Same shape of trap as reading `effectiveState`
237
+ // as "does the user follow this".
213
238
  const handlePrimary = useCallback(async () => {
214
- if (isFollowing) {
215
- await unfollow();
216
- onChange?.(false);
217
- return;
239
+ switch (resolveFollowPrimaryAction({ isFollowing, applicationMode: status.applicationMode })) {
240
+ case 'enable-here':
241
+ if (await enableHere()) onChange?.(true);
242
+ return;
243
+ case 'unfollow':
244
+ if (await unfollow()) onChange?.(false);
245
+ return;
246
+ case 'follow':
247
+ if (await follow()) onChange?.(true);
218
248
  }
219
- await follow();
220
- onChange?.(true);
221
- }, [isFollowing, follow, unfollow, onChange]);
249
+ }, [isFollowing, status.applicationMode, follow, unfollow, enableHere, onChange]);
222
250
 
223
251
  const handleTimed = useCallback(
224
252
  async (seconds: number, durationLabel: string) => {
225
- await follow({ expiresIn: seconds });
253
+ if (!(await follow({ expiresIn: seconds }))) return;
226
254
  onChange?.(true);
227
255
  // The confirmation is the point: a follow that ends on its own is a
228
256
  // promise, and a user who does not see it made will not believe it.
257
+ // Which is also why it must not appear when the promise was not made.
229
258
  toast.success(`Following for ${durationLabel.toLowerCase()}`);
230
259
  },
231
260
  [follow, onChange]
@@ -266,8 +295,9 @@ export const FollowTargetButton = memo(function FollowTargetButton({
266
295
  void disableHere();
267
296
  return;
268
297
  case 'unfollow':
269
- void unfollow();
270
- onChange?.(false);
298
+ void unfollow().then((ok) => {
299
+ if (ok) onChange?.(false);
300
+ });
271
301
  }
272
302
  },
273
303
  [handleTimed, enableHere, disableHere, unfollow, onChange]
@@ -12,7 +12,7 @@
12
12
  * to reflect.
13
13
  */
14
14
 
15
- import { buildFollowMenuItems } from '../FollowTargetButton';
15
+ import { buildFollowMenuItems, resolveFollowPrimaryAction } from '../FollowTargetButton';
16
16
  import {
17
17
  isFollowedGlobally,
18
18
  UNKNOWN_FOLLOW_STATUS,
@@ -36,6 +36,26 @@ const base = {
36
36
 
37
37
  const keys = (items: ReturnType<typeof buildFollowMenuItems>) => items.map((i) => i.key);
38
38
 
39
+ describe('resolveFollowPrimaryAction', () => {
40
+ it('follows when not following globally', () => {
41
+ expect(resolveFollowPrimaryAction({ isFollowing: false, applicationMode: 'inherit' })).toBe(
42
+ 'follow'
43
+ );
44
+ });
45
+
46
+ it('unfollows when following and active here', () => {
47
+ expect(resolveFollowPrimaryAction({ isFollowing: true, applicationMode: 'inherit' })).toBe(
48
+ 'unfollow'
49
+ );
50
+ });
51
+
52
+ it('re-enables here instead of unfollowing everywhere when switched off in this app', () => {
53
+ expect(resolveFollowPrimaryAction({ isFollowing: true, applicationMode: 'disabled' })).toBe(
54
+ 'enable-here'
55
+ );
56
+ });
57
+ });
58
+
39
59
  describe('buildFollowMenuItems', () => {
40
60
  describe('before following', () => {
41
61
  it('offers the timed follows and nothing else', () => {
@@ -108,9 +128,9 @@ describe('withApplicationMode', () => {
108
128
  expect(isFollowedGlobally(next)).toBe(true);
109
129
  });
110
130
 
111
- it('restores the global state when enabled again', () => {
112
- expect(withApplicationMode(withApplicationMode(active, 'disabled'), 'enabled')).toMatchObject({
113
- applicationMode: 'enabled',
131
+ it('restores inheritance when enabled again', () => {
132
+ expect(withApplicationMode(withApplicationMode(active, 'disabled'), 'inherit')).toMatchObject({
133
+ applicationMode: 'inherit',
114
134
  effectiveState: 'following',
115
135
  });
116
136
  });
@@ -36,11 +36,20 @@ export interface UseFollowTargetResult {
36
36
  isUnknown: boolean;
37
37
  isPending: boolean;
38
38
  error: string | undefined;
39
- follow: (options?: { expiresIn?: number }) => Promise<void>;
40
- unfollow: () => Promise<void>;
39
+ /**
40
+ * Every mutation resolves to whether the server ACCEPTED it.
41
+ *
42
+ * They never reject — a refusal becomes `error` in the store, so the button
43
+ * can render it — which means a caller that only awaits them cannot tell a
44
+ * write that happened from one that did not. Returning the outcome is what
45
+ * lets a caller mirror the change somewhere else without mirroring failures
46
+ * too.
47
+ */
48
+ follow: (options?: { expiresIn?: number }) => Promise<boolean>;
49
+ unfollow: () => Promise<boolean>;
41
50
  /** Stop acting on this follow HERE, without giving it up everywhere. */
42
- disableHere: () => Promise<void>;
43
- enableHere: () => Promise<void>;
51
+ disableHere: () => Promise<boolean>;
52
+ enableHere: () => Promise<boolean>;
44
53
  refresh: () => Promise<void>;
45
54
  }
46
55
 
@@ -103,8 +112,8 @@ export function useFollowTarget(
103
112
  optimistic: FollowStatus,
104
113
  run: () => Promise<FollowStatus | void>,
105
114
  failureMessage: string
106
- ) => {
107
- if (!targetId) return;
115
+ ): Promise<boolean> => {
116
+ if (!targetId) return false;
108
117
  const store = useFollowTargetStore.getState();
109
118
  const previous = store.statuses[targetId];
110
119
  store.setStatus(targetId, optimistic);
@@ -113,12 +122,14 @@ export function useFollowTarget(
113
122
  try {
114
123
  const settled = await run();
115
124
  if (settled) useFollowTargetStore.getState().setStatus(targetId, settled);
125
+ return true;
116
126
  } catch (e) {
117
127
  const s = useFollowTargetStore.getState();
118
128
  // Back to what was true, not to a guess. Clearing the entry instead
119
129
  // would make the next render ask again and flash the wrong state.
120
130
  if (previous) s.setStatus(targetId, previous);
121
131
  s.setError(targetId, e instanceof Error ? e.message : failureMessage);
132
+ return false;
122
133
  } finally {
123
134
  useFollowTargetStore.getState().setPending(targetId, false);
124
135
  }
@@ -130,8 +141,8 @@ export function useFollowTarget(
130
141
 
131
142
  const follow = useCallback(
132
143
  async (opts?: { expiresIn?: number }) => {
133
- if (!targetId) return;
134
- await mutate(
144
+ if (!targetId) return false;
145
+ return mutate(
135
146
  {
136
147
  ...withApplicationMode({ ...current, globalState: 'active' }, current.applicationMode),
137
148
  ...(opts?.expiresIn
@@ -150,8 +161,8 @@ export function useFollowTarget(
150
161
 
151
162
  const unfollow = useCallback(async () => {
152
163
  const relationshipId = current.relationshipId;
153
- if (!targetId || !relationshipId) return;
154
- await mutate(
164
+ if (!targetId || !relationshipId) return false;
165
+ return mutate(
155
166
  { ...UNKNOWN_FOLLOW_STATUS },
156
167
  async () => {
157
168
  await oxyServices.unfollowTarget(relationshipId);
@@ -161,23 +172,29 @@ export function useFollowTarget(
161
172
  );
162
173
  }, [targetId, current.relationshipId, mutate, oxyServices]);
163
174
 
164
- const setMode = useCallback(
165
- async (mode: 'enabled' | 'disabled') => {
166
- const relationshipId = current.relationshipId;
167
- if (!targetId || !relationshipId) return;
168
- await mutate(
169
- withApplicationMode(current, mode),
170
- async () => {
171
- await oxyServices.setFollowApplicationMode(relationshipId, mode);
172
- },
173
- 'Could not change this app’s setting for this follow'
174
- );
175
- },
176
- [targetId, current, mutate, oxyServices]
177
- );
175
+ const disableHere = useCallback(async () => {
176
+ const relationshipId = current.relationshipId;
177
+ if (!targetId || !relationshipId) return false;
178
+ return mutate(
179
+ withApplicationMode(current, 'disabled'),
180
+ async () => {
181
+ await oxyServices.setFollowApplicationMode(relationshipId, 'disabled');
182
+ },
183
+ 'Could not change this app’s setting for this follow'
184
+ );
185
+ }, [targetId, current, mutate, oxyServices]);
178
186
 
179
- const disableHere = useCallback(() => setMode('disabled'), [setMode]);
180
- const enableHere = useCallback(() => setMode('enabled'), [setMode]);
187
+ const enableHere = useCallback(async () => {
188
+ const relationshipId = current.relationshipId;
189
+ if (!targetId || !relationshipId) return false;
190
+ return mutate(
191
+ withApplicationMode(current, 'inherit'),
192
+ async () => {
193
+ await oxyServices.restoreFollowInheritance(relationshipId);
194
+ },
195
+ 'Could not change this app’s setting for this follow'
196
+ );
197
+ }, [targetId, current, mutate, oxyServices]);
181
198
 
182
199
  return {
183
200
  status: current,