@oxyhq/services 26.2.0 → 27.1.0

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 (109) hide show
  1. package/lib/commonjs/index.js +50 -1
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/FollowButton.js +3 -5
  4. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  5. package/lib/commonjs/ui/components/FollowTargetButton.js +292 -0
  6. package/lib/commonjs/ui/components/FollowTargetButton.js.map +1 -0
  7. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js +14 -6
  8. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
  9. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +16 -3
  10. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  11. package/lib/commonjs/ui/hooks/queries/userCache.js +164 -10
  12. package/lib/commonjs/ui/hooks/queries/userCache.js.map +1 -1
  13. package/lib/commonjs/ui/hooks/useFollowTarget.js +140 -0
  14. package/lib/commonjs/ui/hooks/useFollowTarget.js.map +1 -0
  15. package/lib/commonjs/ui/screens/AccountMembersScreen.js +49 -6
  16. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  17. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +6 -1
  18. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  19. package/lib/commonjs/ui/screens/CreateAccountScreen.js +73 -40
  20. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  21. package/lib/commonjs/ui/stores/followTargetStore.js +113 -0
  22. package/lib/commonjs/ui/stores/followTargetStore.js.map +1 -0
  23. package/lib/commonjs/ui/stores/resetSessionScopedStores.js +2 -0
  24. package/lib/commonjs/ui/stores/resetSessionScopedStores.js.map +1 -1
  25. package/lib/commonjs/ui/utils/avatarUtils.js +5 -0
  26. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  27. package/lib/module/index.js +8 -2
  28. package/lib/module/index.js.map +1 -1
  29. package/lib/module/ui/components/FollowButton.js +3 -5
  30. package/lib/module/ui/components/FollowButton.js.map +1 -1
  31. package/lib/module/ui/components/FollowTargetButton.js +287 -0
  32. package/lib/module/ui/components/FollowTargetButton.js.map +1 -0
  33. package/lib/module/ui/components/authChooser/requestSurfaces.js +15 -7
  34. package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
  35. package/lib/module/ui/hooks/mutations/useAccountMutations.js +16 -3
  36. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  37. package/lib/module/ui/hooks/queries/userCache.js +161 -10
  38. package/lib/module/ui/hooks/queries/userCache.js.map +1 -1
  39. package/lib/module/ui/hooks/useFollowTarget.js +136 -0
  40. package/lib/module/ui/hooks/useFollowTarget.js.map +1 -0
  41. package/lib/module/ui/screens/AccountMembersScreen.js +49 -6
  42. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  43. package/lib/module/ui/screens/AccountSettingsScreen.js +6 -1
  44. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  45. package/lib/module/ui/screens/CreateAccountScreen.js +74 -41
  46. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  47. package/lib/module/ui/stores/followTargetStore.js +107 -0
  48. package/lib/module/ui/stores/followTargetStore.js.map +1 -0
  49. package/lib/module/ui/stores/resetSessionScopedStores.js +2 -0
  50. package/lib/module/ui/stores/resetSessionScopedStores.js.map +1 -1
  51. package/lib/module/ui/utils/avatarUtils.js +5 -0
  52. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  53. package/lib/typescript/commonjs/index.d.ts +7 -2
  54. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts +119 -0
  57. package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts.map +1 -0
  58. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts +6 -1
  59. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
  60. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +1 -1
  61. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  62. package/lib/typescript/commonjs/ui/hooks/queries/userCache.d.ts +79 -2
  63. package/lib/typescript/commonjs/ui/hooks/queries/userCache.d.ts.map +1 -1
  64. package/lib/typescript/commonjs/ui/hooks/useFollowTarget.d.ts +41 -0
  65. package/lib/typescript/commonjs/ui/hooks/useFollowTarget.d.ts.map +1 -0
  66. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  68. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts +70 -0
  70. package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
  72. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
  73. package/lib/typescript/module/index.d.ts +7 -2
  74. package/lib/typescript/module/index.d.ts.map +1 -1
  75. package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
  76. package/lib/typescript/module/ui/components/FollowTargetButton.d.ts +119 -0
  77. package/lib/typescript/module/ui/components/FollowTargetButton.d.ts.map +1 -0
  78. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts +6 -1
  79. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
  80. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +1 -1
  81. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  82. package/lib/typescript/module/ui/hooks/queries/userCache.d.ts +79 -2
  83. package/lib/typescript/module/ui/hooks/queries/userCache.d.ts.map +1 -1
  84. package/lib/typescript/module/ui/hooks/useFollowTarget.d.ts +41 -0
  85. package/lib/typescript/module/ui/hooks/useFollowTarget.d.ts.map +1 -0
  86. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  87. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  88. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  89. package/lib/typescript/module/ui/stores/followTargetStore.d.ts +70 -0
  90. package/lib/typescript/module/ui/stores/followTargetStore.d.ts.map +1 -0
  91. package/lib/typescript/module/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
  92. package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
  93. package/package.json +4 -4
  94. package/src/index.ts +26 -3
  95. package/src/ui/components/FollowButton.tsx +3 -5
  96. package/src/ui/components/FollowTargetButton.tsx +326 -0
  97. package/src/ui/components/__tests__/followTargetButton.test.ts +132 -0
  98. package/src/ui/components/authChooser/requestSurfaces.tsx +12 -4
  99. package/src/ui/hooks/mutations/useAccountMutations.ts +20 -3
  100. package/src/ui/hooks/queries/__tests__/userCacheClear.test.ts +301 -0
  101. package/src/ui/hooks/queries/userCache.ts +211 -10
  102. package/src/ui/hooks/useFollowTarget.ts +194 -0
  103. package/src/ui/screens/AccountMembersScreen.tsx +62 -6
  104. package/src/ui/screens/AccountSettingsScreen.tsx +9 -1
  105. package/src/ui/screens/CreateAccountScreen.tsx +66 -36
  106. package/src/ui/stores/__tests__/resetSessionScopedStores.test.ts +23 -0
  107. package/src/ui/stores/followTargetStore.ts +119 -0
  108. package/src/ui/stores/resetSessionScopedStores.ts +2 -0
  109. package/src/ui/utils/avatarUtils.ts +9 -0
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "AccountSettingsScreen", {
15
15
  return _AccountSettingsScreen.default;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "CLEARABLE_USER_FIELDS", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _userCache.CLEARABLE_USER_FIELDS;
22
+ }
23
+ });
18
24
  Object.defineProperty(exports, "ConnectedAppsScreen", {
19
25
  enumerable: true,
20
26
  get: function () {
@@ -33,6 +39,12 @@ Object.defineProperty(exports, "FollowButton", {
33
39
  return _FollowButton.default;
34
40
  }
35
41
  });
42
+ Object.defineProperty(exports, "FollowTargetButton", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _FollowTargetButton.FollowTargetButton;
46
+ }
47
+ });
36
48
  Object.defineProperty(exports, "IdentityBoundSessionError", {
37
49
  enumerable: true,
38
50
  get: function () {
@@ -153,6 +165,24 @@ Object.defineProperty(exports, "SurfaceHeaderAction", {
153
165
  return _SurfaceHeaderAction.SurfaceHeaderAction;
154
166
  }
155
167
  });
168
+ Object.defineProperty(exports, "UNKNOWN_FOLLOW_STATUS", {
169
+ enumerable: true,
170
+ get: function () {
171
+ return _followTargetStore.UNKNOWN_FOLLOW_STATUS;
172
+ }
173
+ });
174
+ Object.defineProperty(exports, "clearedFieldsFromAccountUpdate", {
175
+ enumerable: true,
176
+ get: function () {
177
+ return _userCache.clearedFieldsFromAccountUpdate;
178
+ }
179
+ });
180
+ Object.defineProperty(exports, "clearedFieldsFromProfileUpdate", {
181
+ enumerable: true,
182
+ get: function () {
183
+ return _userCache.clearedFieldsFromProfileUpdate;
184
+ }
185
+ });
156
186
  Object.defineProperty(exports, "closeAccountDialog", {
157
187
  enumerable: true,
158
188
  get: function () {
@@ -435,6 +465,18 @@ Object.defineProperty(exports, "useFollow", {
435
465
  return _useFollow.useFollow;
436
466
  }
437
467
  });
468
+ Object.defineProperty(exports, "useFollowTarget", {
469
+ enumerable: true,
470
+ get: function () {
471
+ return _useFollowTarget.useFollowTarget;
472
+ }
473
+ });
474
+ Object.defineProperty(exports, "useFollowTargetStore", {
475
+ enumerable: true,
476
+ get: function () {
477
+ return _followTargetStore.useFollowTargetStore;
478
+ }
479
+ });
438
480
  Object.defineProperty(exports, "useFollowerCounts", {
439
481
  enumerable: true,
440
482
  get: function () {
@@ -717,6 +759,9 @@ var _OxyOAuthCallback = require("./ui/components/OxyOAuthCallback.js");
717
759
  var _OxyConsentScreen = require("./ui/components/OxyConsentScreen.js");
718
760
  var _RequireOxyAuth = require("./ui/components/RequireOxyAuth.js");
719
761
  var _FollowButton = _interopRequireDefault(require("./ui/components/FollowButton.js"));
762
+ var _FollowTargetButton = require("./ui/components/FollowTargetButton.js");
763
+ var _useFollowTarget = require("./ui/hooks/useFollowTarget.js");
764
+ var _followTargetStore = require("./ui/stores/followTargetStore.js");
720
765
  var _OxyPayButton = _interopRequireDefault(require("./ui/components/OxyPayButton.js"));
721
766
  var _LogoIcon = require("./ui/components/logo/LogoIcon.js");
722
767
  var _LogoText = require("./ui/components/logo/LogoText.js");
@@ -804,7 +849,9 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
804
849
  // SDK's user query cache under both keys it owns (by-id + viewer-scoped
805
850
  // by-username). Consumers route ALL cache seeds (feed / list / search / profile
806
851
  // hydration) through this so a sparse source can never strip a field an
807
- // authoritative fetch already stored.
852
+ // authoritative fetch already stored. A write that DELIBERATELY empties a field
853
+ // ("remove my picture") says so with `{ cleared: [...] }` — the payload cannot
854
+ // express it, see the module docs.
808
855
 
809
856
  // Mutation status aggregator (for "Syncing..." indicators)
810
857
 
@@ -852,6 +899,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
852
899
  // Gates on `useOxy().canUsePrivateApi` / `isPrivateApiPending` — never flashes the
853
900
  // wall before the device-first cold boot resolves. Opens the ONE account dialog.
854
901
 
902
+ // The follow graph (#809): follows anything registered, not just users.
903
+
855
904
  // Sidebar account trigger. Pressing `ProfileButton` opens the unified
856
905
  // `OxyAccountDialogScreen` (the single account switcher + sign-in surface) via
857
906
  // `useOxy().openAccountDialog`.
@@ -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","_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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,oBAAA,GAAAtD,OAAA;AAMA,IAAAuD,qBAAA,GAAAvD,OAAA;AAI8C,SAAAG,uBAAAqD,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AApV9C;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;;AAIA;;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;;AAUA;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":"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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":[]}
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = exports.FollowButton = void 0;
7
7
  var _react = require("react");
8
+ var _reactNative = require("react-native");
8
9
  var _OxyContext = require("../context/OxyContext.js");
9
10
  var _toast = require("@oxyhq/bloom/toast");
10
11
  var _button = require("@oxyhq/bloom/button");
11
- var _loading = require("@oxyhq/bloom/loading");
12
12
  var _useFollow = require("../hooks/useFollow.js");
13
13
  var _followStore = require("../stores/followStore.js");
14
14
  var _theme = require("@oxyhq/bloom/theme");
@@ -89,8 +89,7 @@ const FollowButtonInner = /*#__PURE__*/(0, _react.memo)(function FollowButtonInn
89
89
  disabled: disabled || isBusy,
90
90
  style: style,
91
91
  textStyle: textStyle,
92
- icon: showSpinner ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_loading.Loading, {
93
- variant: "inline",
92
+ icon: showSpinner ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
94
93
  size: "small",
95
94
  color: showFollowing ? colors.text : colors.primaryForeground
96
95
  }) : undefined,
@@ -200,8 +199,7 @@ const FollowButtonMultiInner = /*#__PURE__*/(0, _react.memo)(function FollowButt
200
199
  disabled: disabled || isLoading,
201
200
  style: style,
202
201
  textStyle: textStyle,
203
- icon: showSpinner ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_loading.Loading, {
204
- variant: "inline",
202
+ icon: showSpinner ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
205
203
  size: "small",
206
204
  color: allFollowing ? colors.text : colors.primaryForeground
207
205
  }) : undefined,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_OxyContext","_toast","_button","_loading","_useFollow","_followStore","_theme","_shallow","_jsxRuntime","DEFAULT_FOLLOW_ALL_LABEL","DEFAULT_FOLLOWED_ALL_LABEL","isMultiMode","props","Array","isArray","userIds","FollowButtonInner","memo","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","colors","useTheme","isFollowing","isKnown","isLoading","toggleFollow","resolveStatus","useFollowForButton","handlePress","useCallback","event","preventDefault","stopPropagation","err","error","Error","String","toast","message","useEffect","isBusy","showFollowing","showSpinner","jsx","Button","variant","onPress","icon","Loading","color","text","primaryForeground","undefined","children","FollowButtonMultiInner","initiallyAllFollowing","followAllLabel","followedAllLabel","onBulkFollow","onBulkUnfollow","follow","useFollow","followAllUsers","unfollowAllUsers","isAnyLoading","initialFollowStatuses","useFollowStore","useShallow","state","statuses","uid","Object","prototype","hasOwnProperty","call","followingUsers","hasKnownNotFollowing","some","storeAllFollowing","allFollowing","fetchAllStatuses","isSubmitting","setIsSubmitting","useState","result","allAlreadyFollowing","followedCount","results","length","every","entry","alreadyFollowing","anyFollowed","success","FollowButton","canUsePrivateApi","user","currentUser","useOxy","currentUserId","id","trim","rawUserIds","multiUserIds","useMemo","seen","Set","cleaned","raw","has","add","push","targetUserId","exports","_default","default"],"sourceRoot":"../../../../src","sources":["ui/components/FollowButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_OxyContext","_toast","_button","_useFollow","_followStore","_theme","_shallow","_jsxRuntime","DEFAULT_FOLLOW_ALL_LABEL","DEFAULT_FOLLOWED_ALL_LABEL","isMultiMode","props","Array","isArray","userIds","FollowButtonInner","memo","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","colors","useTheme","isFollowing","isKnown","isLoading","toggleFollow","resolveStatus","useFollowForButton","handlePress","useCallback","event","preventDefault","stopPropagation","err","error","Error","String","toast","message","useEffect","isBusy","showFollowing","showSpinner","jsx","Button","variant","onPress","icon","ActivityIndicator","color","text","primaryForeground","undefined","children","FollowButtonMultiInner","initiallyAllFollowing","followAllLabel","followedAllLabel","onBulkFollow","onBulkUnfollow","follow","useFollow","followAllUsers","unfollowAllUsers","isAnyLoading","initialFollowStatuses","useFollowStore","useShallow","state","statuses","uid","Object","prototype","hasOwnProperty","call","followingUsers","hasKnownNotFollowing","some","storeAllFollowing","allFollowing","fetchAllStatuses","isSubmitting","setIsSubmitting","useState","result","allAlreadyFollowing","followedCount","results","length","every","entry","alreadyFollowing","anyFollowed","success","FollowButton","canUsePrivateApi","user","currentUser","useOxy","currentUserId","id","trim","rawUserIds","multiUserIds","useMemo","seen","Set","cleaned","raw","has","add","push","targetUserId","exports","_default","default"],"sourceRoot":"../../../../src","sources":["ui/components/FollowButton.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAMA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAEA,IAAAQ,QAAA,GAAAR,OAAA;AAAmD,IAAAS,WAAA,GAAAT,OAAA;AAEnD,MAAMU,wBAAwB,GAAG,YAAY;AAC7C,MAAMC,0BAA0B,GAAG,WAAW;;AAE9C;;AAYA;;AAOA;;AAWA;AACA;AACA;AACA;;AAGA,MAAMC,WAAW,GAAIC,KAAwB,IAC3C,SAAS,IAAIA,KAAK,IAAIC,KAAK,CAACC,OAAO,CAACF,KAAK,CAACG,OAAO,CAAC;AAEpD,MAAMC,iBAAiB,gBAAG,IAAAC,WAAI,EAAC,SAASD,iBAAiBA,CAAC;EACxDE,MAAM;EACNC,WAAW;EACXC,kBAAkB;EAClBC,IAAI,GAAG,QAAQ;EACfC,cAAc;EACdC,KAAK;EACLC,SAAS;EACTC,QAAQ,GAAG,KAAK;EAChBC,gBAAgB,GAAG,IAAI;EACvBC,oBAAoB,GAAG;AAC+B,CAAC,EAAE;EACzD,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC;EAE7B,MAAM;IACJC,WAAW;IACXC,OAAO;IACPC,SAAS;IACTC,YAAY;IACZC;EACF,CAAC,GAAG,IAAAC,6BAAkB,EAACjB,MAAM,EAAEC,WAAW,EAAEC,kBAAkB,CAAC;EAE/D,MAAMgB,WAAW,GAAG,IAAAC,kBAAW,EAAC,MAAOC,KAAqE,IAAK;IAC/G,IAAIX,oBAAoB,IAAIW,KAAK,EAAEC,cAAc,EAAE;MACjDD,KAAK,CAACC,cAAc,CAAC,CAAC;MACtBD,KAAK,CAACE,eAAe,GAAG,CAAC;IAC3B;IACA;IACA,IAAIf,QAAQ,IAAIO,SAAS,IAAI,CAACD,OAAO,EAAE;IAEvC,IAAI;MACF,MAAME,YAAY,CAAC,CAAC;MACpBX,cAAc,GAAG,CAACQ,WAAW,CAAC;IAChC,CAAC,CAAC,OAAOW,GAAY,EAAE;MACrB,MAAMC,KAAK,GAAGD,GAAG,YAAYE,KAAK,GAAGF,GAAG,GAAG,IAAIE,KAAK,CAACC,MAAM,CAACH,GAAG,CAAC,CAAC;MACjEI,YAAK,CAACH,KAAK,CAACA,KAAK,CAACI,OAAO,IAAI,gCAAgC,CAAC;IAChE;EACF,CAAC,EAAE,CAACrB,QAAQ,EAAEO,SAAS,EAAED,OAAO,EAAEE,YAAY,EAAEX,cAAc,EAAEQ,WAAW,EAAEH,oBAAoB,CAAC,CAAC;;EAEnG;EACA;EACA;EACA;EACA,IAAAoB,gBAAS,EAAC,MAAM;IACd,IAAI,CAAChB,OAAO,EAAEG,aAAa,CAAC,CAAC;EAC/B,CAAC,EAAE,CAACH,OAAO,EAAEG,aAAa,CAAC,CAAC;;EAE5B;EACA;EACA,MAAMc,MAAM,GAAGhB,SAAS,IAAI,CAACD,OAAO;EACpC,MAAMkB,aAAa,GAAGlB,OAAO,IAAID,WAAW;EAC5C,MAAMoB,WAAW,GAAGxB,gBAAgB,IAAIsB,MAAM;EAE9C,oBACE,IAAAxC,WAAA,CAAA2C,GAAA,EAAChD,OAAA,CAAAiD,MAAM;IACLC,OAAO,EAAEJ,aAAa,GAAG,WAAW,GAAG,SAAU;IACjD5B,IAAI,EAAEA,IAAK;IACXiC,OAAO,EAAEA,CAAA,KAAM;MAAE,KAAKlB,WAAW,CAAC,CAAC;IAAE,CAAE;IACvCX,QAAQ,EAAEA,QAAQ,IAAIuB,MAAO;IAC7BzB,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEA,SAAU;IACrB+B,IAAI,EAAEL,WAAW,gBACf,IAAA1C,WAAA,CAAA2C,GAAA,EAACnD,YAAA,CAAAwD,iBAAiB;MAChBnC,IAAI,EAAC,OAAO;MACZoC,KAAK,EAAER,aAAa,GAAGrB,MAAM,CAAC8B,IAAI,GAAG9B,MAAM,CAAC+B;IAAkB,CAC/D,CAAC,GACAC,SAAU;IAAAC,QAAA,EAEbX,WAAW,GAAGU,SAAS,GAAI7B,OAAO,GAAID,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAI8B;EAAU,CACnF,CAAC;AAEb,CAAC,CAAC;AAEF,MAAME,sBAAsB,gBAAG,IAAA7C,WAAI,EAAC,SAAS6C,sBAAsBA,CAAC;EAClE/C,OAAO;EACPgD,qBAAqB,GAAG,KAAK;EAC7B1C,IAAI,GAAG,QAAQ;EACf2C,cAAc,GAAGvD,wBAAwB;EACzCwD,gBAAgB,GAAGvD,0BAA0B;EAC7CY,cAAc;EACd4C,YAAY;EACZC,cAAc;EACd5C,KAAK;EACLC,SAAS;EACTC,QAAQ,GAAG,KAAK;EAChBC,gBAAgB,GAAG,IAAI;EACvBC,oBAAoB,GAAG;AACD,CAAC,EAAE;EACzB,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC;EAC7B,MAAMuC,MAAM,GAAG,IAAAC,oBAAS,EAACtD,OAAO,CAAC;EACjC,MAAMuD,cAAc,GAAG,gBAAgB,IAAIF,MAAM,GAAGA,MAAM,CAACE,cAAc,GAAGV,SAAS;EACrF,MAAMW,gBAAgB,GAAG,kBAAkB,IAAIH,MAAM,GAAGA,MAAM,CAACG,gBAAgB,GAAGX,SAAS;EAC3F,MAAMY,YAAY,GAAG,cAAc,IAAIJ,MAAM,GAAGA,MAAM,CAACI,YAAY,GAAG,KAAK;EAE3E,MAAMC,qBAAqB,GAAG,IAAAC,2BAAc,EAC1C,IAAAC,mBAAU,EAAEC,KAAK,IAAK;IACpB,MAAMC,QAAwC,GAAG,CAAC,CAAC;IACnD,KAAK,MAAMC,GAAG,IAAI/D,OAAO,EAAE;MACzB8D,QAAQ,CAACC,GAAG,CAAC,GAAGC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACN,KAAK,CAACO,cAAc,EAAEL,GAAG,CAAC,GAC3EF,KAAK,CAACO,cAAc,CAACL,GAAG,CAAC,GACzB,IAAI;IACV;IACA,OAAOD,QAAQ;EACjB,CAAC,CACH,CAAC;EAED,MAAMO,oBAAoB,GAAGrE,OAAO,CAACsE,IAAI,CAAEP,GAAG,IAAKL,qBAAqB,CAACK,GAAG,CAAC,KAAK,KAAK,CAAC;;EAExF;EACA;EACA;EACA;EACA;EACA,MAAMQ,iBAAiB,GAAG,cAAc,IAAIlB,MAAM,GAAGA,MAAM,CAACmB,YAAY,GAAG,KAAK;EAChF,MAAMA,YAAY,GAAGD,iBAAiB,IAAKvB,qBAAqB,IAAI,CAACqB,oBAAqB;EAC1F,MAAMI,gBAAgB,GAAG,kBAAkB,IAAIpB,MAAM,GAAGA,MAAM,CAACoB,gBAAgB,GAAG5B,SAAS;EAC3F,MAAM,CAAC6B,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAEvD,MAAM3D,SAAS,GAAGyD,YAAY,IAAIjB,YAAY;;EAE9C;EACA;EACA;EACA;EACA;EACA,IAAAzB,gBAAS,EAAC,MAAM;IACdyC,gBAAgB,GAAG,CAAC;EACtB,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEtB,MAAMpD,WAAW,GAAG,IAAAC,kBAAW,EAAC,MAAOC,KAAqE,IAAK;IAC/G,IAAIX,oBAAoB,IAAIW,KAAK,EAAEC,cAAc,EAAE;MACjDD,KAAK,CAACC,cAAc,CAAC,CAAC;MACtBD,KAAK,CAACE,eAAe,GAAG,CAAC;IAC3B;IACA,IAAIf,QAAQ,IAAIO,SAAS,EAAE;IAE3B,IAAIuD,YAAY,EAAE;MAChB,IAAI,CAAChB,gBAAgB,EAAE;MACvBmB,eAAe,CAAC,IAAI,CAAC;MACrB,IAAI;QACF,MAAME,MAAM,GAAG,MAAMrB,gBAAgB,CAAC,CAAC;QACvC;QACA;QACAjD,cAAc,GAAG,KAAK,CAAC;QACvB6C,cAAc,GAAGyB,MAAM,CAAC;MAC1B,CAAC,CAAC,OAAOnD,GAAY,EAAE;QACrB,MAAMC,KAAK,GAAGD,GAAG,YAAYE,KAAK,GAAGF,GAAG,GAAG,IAAIE,KAAK,CAACC,MAAM,CAACH,GAAG,CAAC,CAAC;QACjEI,YAAK,CAACH,KAAK,CAACA,KAAK,CAACI,OAAO,IAAI,gCAAgC,CAAC;MAChE,CAAC,SAAS;QACR4C,eAAe,CAAC,KAAK,CAAC;MACxB;MACA;IACF;IAEA,IAAI,CAACpB,cAAc,EAAE;IACrBoB,eAAe,CAAC,IAAI,CAAC;IACrB,IAAI;MACF,MAAME,MAAM,GAAG,MAAMtB,cAAc,CAAC,CAAC;MACrC,MAAMuB,mBAAmB,GAAGD,MAAM,CAACE,aAAa,KAAK,CAAC,IACjDF,MAAM,CAACG,OAAO,CAACC,MAAM,GAAG,CAAC,IACzBJ,MAAM,CAACG,OAAO,CAACE,KAAK,CAAEC,KAAK,IAAKA,KAAK,CAACC,gBAAgB,CAAC;MAC5D,MAAMC,WAAW,GAAGR,MAAM,CAACE,aAAa,GAAG,CAAC,IACvCF,MAAM,CAACG,OAAO,CAACV,IAAI,CAAEa,KAAK,IAAKA,KAAK,CAACG,OAAO,IAAIH,KAAK,CAACC,gBAAgB,CAAC;;MAE5E;MACA;MACA,IAAIN,mBAAmB,IAAIO,WAAW,EAAE;QACtC9E,cAAc,GAAG,IAAI,CAAC;MACxB;MACA4C,YAAY,GAAG0B,MAAM,CAAC;IACxB,CAAC,CAAC,OAAOnD,GAAY,EAAE;MACrB,MAAMC,KAAK,GAAGD,GAAG,YAAYE,KAAK,GAAGF,GAAG,GAAG,IAAIE,KAAK,CAACC,MAAM,CAACH,GAAG,CAAC,CAAC;MACjEI,YAAK,CAACH,KAAK,CAACA,KAAK,CAACI,OAAO,IAAI,gCAAgC,CAAC;IAChE,CAAC,SAAS;MACR4C,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EAAE,CAACjE,QAAQ,EAAEO,SAAS,EAAEuD,YAAY,EAAEjB,cAAc,EAAEC,gBAAgB,EAAEjD,cAAc,EAAE4C,YAAY,EAAEC,cAAc,EAAExC,oBAAoB,CAAC,CAAC;EAE7I,MAAMuB,WAAW,GAAGxB,gBAAgB,IAAIM,SAAS;EAEjD,oBACE,IAAAxB,WAAA,CAAA2C,GAAA,EAAChD,OAAA,CAAAiD,MAAM;IACLC,OAAO,EAAEkC,YAAY,GAAG,WAAW,GAAG,SAAU;IAChDlE,IAAI,EAAEA,IAAK;IACXiC,OAAO,EAAEA,CAAA,KAAM;MAAE,KAAKlB,WAAW,CAAC,CAAC;IAAE,CAAE;IACvCX,QAAQ,EAAEA,QAAQ,IAAIO,SAAU;IAChCT,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEA,SAAU;IACrB+B,IAAI,EAAEL,WAAW,gBACf,IAAA1C,WAAA,CAAA2C,GAAA,EAACnD,YAAA,CAAAwD,iBAAiB;MAChBnC,IAAI,EAAC,OAAO;MACZoC,KAAK,EAAE8B,YAAY,GAAG3D,MAAM,CAAC8B,IAAI,GAAG9B,MAAM,CAAC+B;IAAkB,CAC9D,CAAC,GACAC,SAAU;IAAAC,QAAA,EAEbX,WAAW,GAAGU,SAAS,GAAI2B,YAAY,GAAGtB,gBAAgB,GAAGD;EAAe,CACvE,CAAC;AAEb,CAAC,CAAC;AAEF,MAAMsC,YAAyC,GAAI1F,KAAK,IAAK;EAC3D,MAAM;IAAEO,WAAW;IAAEoF,gBAAgB;IAAEC,IAAI,EAAEC;EAAY,CAAC,GAAG,IAAAC,kBAAM,EAAC,CAAC;EAErE,MAAMC,aAAa,GAAGF,WAAW,EAAEG,EAAE,GAAGhE,MAAM,CAAC6D,WAAW,CAACG,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC,GAAG,EAAE;EAE1E,MAAMC,UAAU,GAAGnG,WAAW,CAACC,KAAK,CAAC,GAAGA,KAAK,CAACG,OAAO,GAAG,IAAI;;EAE5D;EACA,MAAMgG,YAAY,GAAG,IAAAC,cAAO,EAAC,MAAM;IACjC,IAAI,CAACF,UAAU,EAAE,OAAO,EAAE;IAC1B,MAAMG,IAAI,GAAG,IAAIC,GAAG,CAAS,CAAC;IAC9B,MAAMC,OAAiB,GAAG,EAAE;IAC5B,KAAK,MAAMC,GAAG,IAAIN,UAAU,EAAE;MAC5B,MAAMF,EAAE,GAAGQ,GAAG,GAAGxE,MAAM,CAACwE,GAAG,CAAC,CAACP,IAAI,CAAC,CAAC,GAAG,EAAE;MACxC,IAAI,CAACD,EAAE,IAAIA,EAAE,KAAKD,aAAa,IAAIM,IAAI,CAACI,GAAG,CAACT,EAAE,CAAC,EAAE;MACjDK,IAAI,CAACK,GAAG,CAACV,EAAE,CAAC;MACZO,OAAO,CAACI,IAAI,CAACX,EAAE,CAAC;IAClB;IACA,OAAOO,OAAO;EAChB,CAAC,EAAE,CAACL,UAAU,EAAEH,aAAa,CAAC,CAAC;EAE/B,IAAI,CAACJ,gBAAgB,EAAE;IACrB,OAAO,IAAI;EACb;EAEA,IAAI5F,WAAW,CAACC,KAAK,CAAC,EAAE;IACtB,IAAImG,YAAY,CAACf,MAAM,KAAK,CAAC,EAAE;MAC7B,OAAO,IAAI;IACb;IACA,oBACE,IAAAxF,WAAA,CAAA2C,GAAA,EAACW,sBAAsB;MAAA,GACjBlD,KAAK;MACTG,OAAO,EAAEgG;IAAa,CACvB,CAAC;EAEN;EAEA,MAAMS,YAAY,GAAG5G,KAAK,CAACM,MAAM,GAAG0B,MAAM,CAAChC,KAAK,CAACM,MAAM,CAAC,CAAC2F,IAAI,CAAC,CAAC,GAAG,EAAE;EACpE,IAAI,CAACW,YAAY,IAAKb,aAAa,IAAIA,aAAa,KAAKa,YAAa,EAAE;IACtE,OAAO,IAAI;EACb;EAEA,oBACE,IAAAhH,WAAA,CAAA2C,GAAA,EAACnC,iBAAiB;IAAA,GACZJ,KAAK;IACTM,MAAM,EAAEsG,YAAa;IACrBrG,WAAW,EAAEA;EAAY,CAC1B,CAAC;AAEN,CAAC;AAACsG,OAAA,CAAAnB,YAAA,GAAAA,YAAA;AAAA,IAAAoB,QAAA,GAAAD,OAAA,CAAAE,OAAA,GAGarB,YAAY","ignoreList":[]}
@@ -0,0 +1,292 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FollowTargetButton = void 0;
7
+ exports.buildFollowMenuItems = buildFollowMenuItems;
8
+ var _react = require("react");
9
+ var _reactNative = require("react-native");
10
+ var _button = require("@oxyhq/bloom/button");
11
+ var _icons = require("@oxyhq/bloom/icons");
12
+ var _menu = require("@oxyhq/bloom/menu");
13
+ var _toast = require("@oxyhq/bloom/toast");
14
+ var _useFollowTarget = require("../hooks/useFollowTarget.js");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ /**
17
+ * `FollowTargetButton` — one button for everything an Oxy user can follow.
18
+ *
19
+ * Follows a TARGET of any registered kind: a person, a topic, a channel, a
20
+ * store, an artist. Nothing in this file branches on what the target is, which
21
+ * is the property that lets an application this package has never heard of use
22
+ * it without a release.
23
+ *
24
+ * ## Two controls, not one
25
+ *
26
+ * The main press does the obvious thing. The chevron beside it opens the
27
+ * choices that a single press cannot express — follow for a while, stop showing
28
+ * this here without giving it up everywhere — and those belong behind a
29
+ * disclosure precisely because they are not what most people want most of the
30
+ * time. Bloom's `Menu` renders as a bottom sheet on native and a dropdown on
31
+ * web, so this is one component and not a platform fork.
32
+ *
33
+ * ## Verbs
34
+ *
35
+ * "Follow" is wrong for half the things in the ecosystem: you subscribe to a
36
+ * channel, you join a community, you watch a listing. The verb is a prop with a
37
+ * small vocabulary of defaults and a full override, rather than a lookup keyed
38
+ * on kind — a kind→verb table in this package would need a release every time
39
+ * an application invents a kind, which is exactly the coupling #809 removes.
40
+ *
41
+ * ## Relationship to the legacy `FollowButton`
42
+ *
43
+ * `FollowButton` follows a USER through the Mongo-backed social graph and
44
+ * remains the correct component for that until the user graph is migrated onto
45
+ * `/v2/follows`. When it is, that component is deleted and this one takes the
46
+ * name — not aliased, not deprecated in place.
47
+ */
48
+
49
+ /**
50
+ * The small vocabulary of verbs the ecosystem actually uses. An application
51
+ * whose verb is not here passes `labels` instead — the escape hatch exists so
52
+ * this union never has to grow to accommodate one product's wording.
53
+ */
54
+
55
+ const VERB_LABELS = {
56
+ follow: {
57
+ idle: 'Follow',
58
+ active: 'Following',
59
+ pending: 'Requested',
60
+ disabled: 'Off here'
61
+ },
62
+ subscribe: {
63
+ idle: 'Subscribe',
64
+ active: 'Subscribed',
65
+ pending: 'Requested',
66
+ disabled: 'Off here'
67
+ },
68
+ join: {
69
+ idle: 'Join',
70
+ active: 'Joined',
71
+ pending: 'Requested',
72
+ disabled: 'Off here'
73
+ },
74
+ watch: {
75
+ idle: 'Watch',
76
+ active: 'Watching',
77
+ pending: 'Requested',
78
+ disabled: 'Off here'
79
+ }
80
+ };
81
+
82
+ /** A timed-follow choice offered in the menu. */
83
+
84
+ const HOUR = 60 * 60;
85
+
86
+ /**
87
+ * Defaults chosen for the cases a timed follow is actually for: a live event
88
+ * tonight, a story running this week. Not a general-purpose duration picker —
89
+ * an application that needs one passes its own.
90
+ */
91
+ const DEFAULT_DURATIONS = [{
92
+ label: '24 hours',
93
+ seconds: 24 * HOUR
94
+ }, {
95
+ label: '72 hours',
96
+ seconds: 72 * HOUR
97
+ }, {
98
+ label: 'A week',
99
+ seconds: 7 * 24 * HOUR
100
+ }];
101
+
102
+ /** One line in the disclosure menu. */
103
+
104
+ /**
105
+ * Which choices exist, given the state.
106
+ *
107
+ * Pure and exported because this is the product decision, not a rendering
108
+ * detail: a timed follow is only offered before following, turning it off here
109
+ * is only offered while following, and NEITHER is offered before the server has
110
+ * answered — every one of them addresses a relationship that does not exist
111
+ * yet, so offering them mid-write would mean sending a guessed id.
112
+ */
113
+ function buildFollowMenuItems(input) {
114
+ const items = [];
115
+ if (!input.following) {
116
+ if (input.durations === false) return items;
117
+ for (const d of input.durations) {
118
+ items.push({
119
+ key: `for-${d.seconds}`,
120
+ label: `${input.idleVerb} for ${d.label.toLowerCase()}`,
121
+ action: {
122
+ type: 'follow-timed',
123
+ seconds: d.seconds,
124
+ durationLabel: d.label
125
+ }
126
+ });
127
+ }
128
+ return items;
129
+ }
130
+ if (!input.hasRelationship || input.isPending) return items;
131
+ items.push(input.applicationMode === 'disabled' ? {
132
+ key: 'enable-here',
133
+ label: `Show in ${input.applicationName}`,
134
+ action: {
135
+ type: 'enable-here'
136
+ }
137
+ } : {
138
+ key: 'disable-here',
139
+ label: `Don’t show in ${input.applicationName}`,
140
+ action: {
141
+ type: 'disable-here'
142
+ }
143
+ });
144
+ items.push({
145
+ // Named for what it does. "Unfollow" beside "don't show here" would read as
146
+ // the same action twice, and the user would pick the wrong one.
147
+ key: 'unfollow-everywhere',
148
+ label: 'Unfollow everywhere',
149
+ action: {
150
+ type: 'unfollow'
151
+ }
152
+ });
153
+ return items;
154
+ }
155
+ const FollowTargetButton = exports.FollowTargetButton = /*#__PURE__*/(0, _react.memo)(function FollowTargetButton({
156
+ targetId,
157
+ verb = 'follow',
158
+ labels,
159
+ size = 'medium',
160
+ style,
161
+ disabled = false,
162
+ showOptions = true,
163
+ durations = DEFAULT_DURATIONS,
164
+ applicationName,
165
+ onChange
166
+ }) {
167
+ const {
168
+ status,
169
+ isFollowing,
170
+ isUnknown,
171
+ isPending,
172
+ follow,
173
+ unfollow,
174
+ disableHere,
175
+ enableHere
176
+ } = (0, _useFollowTarget.useFollowTarget)(targetId);
177
+ const text = (0, _react.useMemo)(() => ({
178
+ ...VERB_LABELS[verb],
179
+ ...labels
180
+ }), [verb, labels]);
181
+ const label = (0, _react.useMemo)(() => {
182
+ if (status.globalState === 'requested') return text.pending;
183
+ if (!isFollowing) return text.idle;
184
+ // Followed globally but switched off here. `effectiveState` reports
185
+ // `not_following` for this, correctly — the question it answers is "does
186
+ // this act here" — so the label has to be derived from the other two.
187
+ return status.applicationMode === 'disabled' ? text.disabled : text.active;
188
+ }, [isFollowing, status.globalState, status.applicationMode, text]);
189
+ const handlePrimary = (0, _react.useCallback)(async () => {
190
+ if (isFollowing) {
191
+ await unfollow();
192
+ onChange?.(false);
193
+ return;
194
+ }
195
+ await follow();
196
+ onChange?.(true);
197
+ }, [isFollowing, follow, unfollow, onChange]);
198
+ const handleTimed = (0, _react.useCallback)(async (seconds, durationLabel) => {
199
+ await follow({
200
+ expiresIn: seconds
201
+ });
202
+ onChange?.(true);
203
+ // The confirmation is the point: a follow that ends on its own is a
204
+ // promise, and a user who does not see it made will not believe it.
205
+ _toast.toast.success(`Following for ${durationLabel.toLowerCase()}`);
206
+ }, [follow, onChange]);
207
+ const menuItems = (0, _react.useMemo)(() => buildFollowMenuItems({
208
+ following: isFollowing,
209
+ applicationMode: status.applicationMode,
210
+ hasRelationship: Boolean(status.relationshipId),
211
+ isPending,
212
+ durations,
213
+ idleVerb: text.idle,
214
+ applicationName: applicationName ?? 'this app'
215
+ }), [isFollowing, status.applicationMode, status.relationshipId, isPending, durations, text.idle, applicationName]);
216
+ const runItem = (0, _react.useCallback)(item => {
217
+ switch (item.action.type) {
218
+ case 'follow-timed':
219
+ void handleTimed(item.action.seconds, item.action.durationLabel);
220
+ return;
221
+ case 'enable-here':
222
+ void enableHere();
223
+ return;
224
+ case 'disable-here':
225
+ void disableHere();
226
+ return;
227
+ case 'unfollow':
228
+ void unfollow();
229
+ onChange?.(false);
230
+ }
231
+ }, [handleTimed, enableHere, disableHere, unfollow, onChange]);
232
+ const primary = /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
233
+ variant: isFollowing ? 'secondary' : 'primary',
234
+ size: size
235
+ // Unknown is not "not following": the button stays inert until the first
236
+ // read settles rather than inviting a follow that may already exist.
237
+ ,
238
+ disabled: disabled || isUnknown,
239
+ loading: isPending,
240
+ onPress: () => void handlePrimary(),
241
+ accessibilityLabel: label,
242
+ children: label
243
+ });
244
+ if (!showOptions || menuItems.length === 0) {
245
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
246
+ style: style,
247
+ children: primary
248
+ });
249
+ }
250
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
251
+ style: [{
252
+ flexDirection: 'row',
253
+ alignItems: 'center',
254
+ gap: 4
255
+ }, style],
256
+ children: [primary, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_menu.Menu, {
257
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_menu.MenuTrigger, {
258
+ label: `${label} options`,
259
+ hint: "Opens follow options",
260
+ children: ({
261
+ props
262
+ }) =>
263
+ /*#__PURE__*/
264
+ // The trigger's props are mapped rather than spread: `MenuTrigger`
265
+ // hands back a DOM-ish bag (focus handlers, an accessibility role)
266
+ // and `Button` accepts a different set, so a spread would pass
267
+ // props it silently drops.
268
+ (0, _jsxRuntime.jsx)(_button.Button, {
269
+ variant: "secondary",
270
+ size: size === 'large' ? 'large' : 'small',
271
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.ChevronBottom_Stroke2_Corner0_Rounded, {
272
+ width: 16
273
+ }),
274
+ disabled: disabled || isUnknown,
275
+ onPress: props.onPress,
276
+ accessibilityLabel: props.accessibilityLabel,
277
+ accessibilityHint: props.accessibilityHint
278
+ })
279
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_menu.MenuContent, {
280
+ showCancel: true,
281
+ children: menuItems.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_menu.MenuItem, {
282
+ label: item.label,
283
+ onPress: () => runItem(item),
284
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_menu.MenuItemText, {
285
+ children: item.label
286
+ })
287
+ }, item.key))
288
+ })]
289
+ })]
290
+ });
291
+ });
292
+ //# sourceMappingURL=FollowTargetButton.js.map
@@ -0,0 +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":[]}
@@ -8,7 +8,7 @@ var _reactNative = require("react-native");
8
8
  var _MaterialCommunityIcons = _interopRequireDefault(require("@expo/vector-icons/MaterialCommunityIcons"));
9
9
  var _reactNativeQrcodeSvg = _interopRequireDefault(require("react-native-qrcode-svg"));
10
10
  var _button = require("@oxyhq/bloom/button");
11
- var _loading = require("@oxyhq/bloom/loading");
11
+ var _theme = require("@oxyhq/bloom/theme");
12
12
  var _typography = require("@oxyhq/bloom/typography");
13
13
  var _styles = require("./styles.js");
14
14
  var _jsxRuntime = require("react/jsx-runtime");
@@ -34,11 +34,19 @@ const QR_SIZE = 196;
34
34
  /** The leading route glyph, sized to sit where the QR plate otherwise would. */
35
35
  const ROUTE_GLYPH_SIZE = 44;
36
36
 
37
- /** The indeterminate leading visual: the request exists but has nothing to show yet. */
38
- const PreparingSurface = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_loading.Loading, {
39
- variant: "spinner",
40
- size: "large"
41
- });
37
+ /**
38
+ * The indeterminate leading visual: the request exists but has nothing to show yet.
39
+ * Uses RN's ActivityIndicator — `@oxyhq/bloom/loading` can tree-shake to `undefined`
40
+ * in rolldown-vite production bundles when co-imported with `@oxyhq/bloom/button`
41
+ * (auth.oxy.so/authorize blank screen, React #130).
42
+ */
43
+ const PreparingSurface = () => {
44
+ const theme = (0, _theme.useTheme)();
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
46
+ size: "large",
47
+ color: theme.colors.primary
48
+ });
49
+ };
42
50
 
43
51
  /** The leading glyph for a route whose surface is elsewhere (the phone, Commons). */
44
52
  exports.PreparingSurface = PreparingSurface;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_MaterialCommunityIcons","_interopRequireDefault","_reactNativeQrcodeSvg","_button","_loading","_typography","_styles","_jsxRuntime","e","__esModule","default","QR_PLATE_BG","QR_FOREGROUND","QR_SIZE","ROUTE_GLYPH_SIZE","PreparingSurface","jsx","Loading","variant","size","exports","RouteGlyph","name","color","QrPlate","payload","theme","t","jsxs","Fragment","children","Text","style","styles","qrHeadline","colors","text","View","qrPlate","value","backgroundColor","GetCommonsPrompt","onGetCommons","mutedText","textSecondary","Button","onPress","primaryButton","testID","RequestPrimarySurface","route","progress","qrPayload","success","primary"],"sourceRoot":"../../../../../src","sources":["ui/components/authChooser/requestSurfaces.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_MaterialCommunityIcons","_interopRequireDefault","_reactNativeQrcodeSvg","_button","_theme","_typography","_styles","_jsxRuntime","e","__esModule","default","QR_PLATE_BG","QR_FOREGROUND","QR_SIZE","ROUTE_GLYPH_SIZE","PreparingSurface","theme","useTheme","jsx","ActivityIndicator","size","color","colors","primary","exports","RouteGlyph","name","QrPlate","payload","t","jsxs","Fragment","children","Text","style","styles","qrHeadline","text","View","qrPlate","value","backgroundColor","GetCommonsPrompt","onGetCommons","mutedText","textSecondary","Button","variant","onPress","primaryButton","testID","RequestPrimarySurface","route","progress","qrPayload","success"],"sourceRoot":"../../../../../src","sources":["ui/components/authChooser/requestSurfaces.tsx"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,8 @@ var _OxyContext = require("../../context/OxyContext.js");
12
12
  var _toast = require("@oxyhq/bloom/toast");
13
13
  var _avatarUtils = require("../../utils/avatarUtils.js");
14
14
  var _authStore = require("../../stores/authStore.js");
15
+ var _accountStore = require("../../stores/accountStore.js");
16
+ var _userCache = require("../queries/userCache.js");
15
17
  /**
16
18
  * Update user profile with optimistic updates and offline queue support
17
19
  */
@@ -96,10 +98,21 @@ const useUpdateProfile = () => {
96
98
 
97
99
  // Update authStore so frontend components see the changes immediately
98
100
  _authStore.useAuthStore.getState().setUser(data);
101
+ const cleared = (0, _userCache.clearedFieldsFromProfileUpdate)(updates);
102
+ (0, _userCache.upsertCachedUser)(queryClient, data, data.id, {
103
+ cleared: cleared.length > 0 ? cleared : undefined
104
+ });
99
105
 
100
- // If avatar was updated, refresh accountStore with cache-busted URL
101
- if (updates.avatar && activeSessionId && oxyServices) {
102
- (0, _avatarUtils.refreshAvatarInStore)(activeSessionId, updates.avatar, oxyServices);
106
+ // Avatar add/remove: keep the account switcher in sync with profile writes
107
+ if (typeof updates.avatar === 'string' && activeSessionId) {
108
+ if (updates.avatar && oxyServices) {
109
+ (0, _avatarUtils.refreshAvatarInStore)(activeSessionId, updates.avatar, oxyServices);
110
+ } else {
111
+ _accountStore.useAccountStore.getState().updateAccount(activeSessionId, {
112
+ avatar: undefined,
113
+ avatarUrl: undefined
114
+ });
115
+ }
103
116
  }
104
117
 
105
118
  // Invalidate all related queries so every consumer (the account dialog,