@oxy.so/services 9.0.0 → 9.2.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 (79) hide show
  1. package/lib/commonjs/index.js +4 -3
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/client.js +174 -0
  4. package/lib/commonjs/ui/client.js.map +1 -1
  5. package/lib/commonjs/ui/components/FollowTargetButton.js +11 -101
  6. package/lib/commonjs/ui/components/FollowTargetButton.js.map +1 -1
  7. package/lib/commonjs/ui/components/OxyProvider.js +2 -2
  8. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  9. package/lib/commonjs/ui/components/followRules.js +105 -0
  10. package/lib/commonjs/ui/components/followRules.js.map +1 -0
  11. package/lib/commonjs/ui/context/OxyContext.js +4 -0
  12. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  13. package/lib/commonjs/ui/hooks/accountQueryPersistence.js +110 -80
  14. package/lib/commonjs/ui/hooks/accountQueryPersistence.js.map +1 -1
  15. package/lib/commonjs/ui/hooks/persistedQueryCache.js +101 -0
  16. package/lib/commonjs/ui/hooks/persistedQueryCache.js.map +1 -0
  17. package/lib/commonjs/ui/hooks/queryClient.js +43 -80
  18. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
  19. package/lib/module/index.js +3 -2
  20. package/lib/module/index.js.map +1 -1
  21. package/lib/module/ui/client.js +17 -4
  22. package/lib/module/ui/client.js.map +1 -1
  23. package/lib/module/ui/components/FollowTargetButton.js +1 -89
  24. package/lib/module/ui/components/FollowTargetButton.js.map +1 -1
  25. package/lib/module/ui/components/OxyProvider.js +2 -2
  26. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  27. package/lib/module/ui/components/followRules.js +99 -0
  28. package/lib/module/ui/components/followRules.js.map +1 -0
  29. package/lib/module/ui/context/OxyContext.js +4 -0
  30. package/lib/module/ui/context/OxyContext.js.map +1 -1
  31. package/lib/module/ui/hooks/accountQueryPersistence.js +109 -80
  32. package/lib/module/ui/hooks/accountQueryPersistence.js.map +1 -1
  33. package/lib/module/ui/hooks/persistedQueryCache.js +94 -0
  34. package/lib/module/ui/hooks/persistedQueryCache.js.map +1 -0
  35. package/lib/module/ui/hooks/queryClient.js +44 -81
  36. package/lib/module/ui/hooks/queryClient.js.map +1 -1
  37. package/lib/typescript/commonjs/index.d.ts +4 -2
  38. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/ui/client.d.ts +19 -4
  40. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  41. package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts +2 -62
  42. package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/ui/components/followRules.d.ts +71 -0
  44. package/lib/typescript/commonjs/ui/components/followRules.d.ts.map +1 -0
  45. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  46. package/lib/typescript/commonjs/ui/hooks/accountQueryPersistence.d.ts +31 -13
  47. package/lib/typescript/commonjs/ui/hooks/accountQueryPersistence.d.ts.map +1 -1
  48. package/lib/typescript/commonjs/ui/hooks/persistedQueryCache.d.ts +44 -0
  49. package/lib/typescript/commonjs/ui/hooks/persistedQueryCache.d.ts.map +1 -0
  50. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts +15 -20
  51. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
  52. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  53. package/lib/typescript/module/index.d.ts +4 -2
  54. package/lib/typescript/module/index.d.ts.map +1 -1
  55. package/lib/typescript/module/ui/client.d.ts +19 -4
  56. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  57. package/lib/typescript/module/ui/components/FollowTargetButton.d.ts +2 -62
  58. package/lib/typescript/module/ui/components/FollowTargetButton.d.ts.map +1 -1
  59. package/lib/typescript/module/ui/components/followRules.d.ts +71 -0
  60. package/lib/typescript/module/ui/components/followRules.d.ts.map +1 -0
  61. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  62. package/lib/typescript/module/ui/hooks/accountQueryPersistence.d.ts +31 -13
  63. package/lib/typescript/module/ui/hooks/accountQueryPersistence.d.ts.map +1 -1
  64. package/lib/typescript/module/ui/hooks/persistedQueryCache.d.ts +44 -0
  65. package/lib/typescript/module/ui/hooks/persistedQueryCache.d.ts.map +1 -0
  66. package/lib/typescript/module/ui/hooks/queryClient.d.ts +15 -20
  67. package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
  68. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  69. package/package.json +1 -1
  70. package/src/index.ts +3 -3
  71. package/src/ui/client.ts +55 -4
  72. package/src/ui/components/FollowTargetButton.tsx +8 -112
  73. package/src/ui/components/OxyProvider.tsx +2 -2
  74. package/src/ui/components/__tests__/followTargetButton.test.ts +1 -1
  75. package/src/ui/components/followRules.ts +121 -0
  76. package/src/ui/context/OxyContext.tsx +4 -0
  77. package/src/ui/hooks/accountQueryPersistence.ts +138 -91
  78. package/src/ui/hooks/persistedQueryCache.ts +126 -0
  79. package/src/ui/hooks/queryClient.ts +55 -98
@@ -1 +1 @@
1
- {"version":3,"names":["_reactQuery","require","_reactQueryPersistClient","_queryAsyncStoragePersister","_buildId","ACCOUNT_QUERY_CACHE_KEY","exports","ACCOUNT_QUERY_CACHE_MAX_AGE","ACCOUNT_QUERY_PERSIST_THROTTLE_MS","storageKeyFor","accountId","encodeURIComponent","createAccountQueryPersistence","queryClient","config","persistedRoots","Set","roots","accountRoots","memoryOnlyRoots","mutationHashes","mutationKeys","map","key","hashKey","listeners","storage","restoredFor","generation","unsubscribePersist","restoring","Promise","resolve","notify","listener","rootOf","query","head","queryKey","ownsQuery","has","persistsQuery","ownsMutation","mutation","options","mutationKey","undefined","dropScopedData","removeQueries","predicate","mutations","getMutationCache","getAll","remove","persisterFor","id","target","createAsyncStoragePersister","getItem","setItem","value","removeItem","throttleTime","start","current","unsubscribe","restored","persistQueryClient","persister","maxAge","buster","getOxyBuildId","dehydrateOptions","shouldDehydrateQuery","state","status","shouldDehydrateMutation","isPaused","catch","then","stop","setStorage","next","activate","previous","removeClient","isReady","subscribe","add","delete","dispose","clear"],"sourceRoot":"../../../../src","sources":["ui/hooks/accountQueryPersistence.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactQuery","require","_persistedQueryCache","DEVICE_ROOTS","Set","accountQueryOwnership","config","memoryOnly","memoryOnlyRoots","SDK_MEMORY_ONLY_ROOTS","sdkRoots","PERSISTED_QUERY_PREFIXES","declared","roots","mutationHashes","mutationKeys","map","key","hashKey","ownsQuery","query","root","rootOf","has","persistsQuery","ownsMutation","mutation","options","mutationKey","undefined","ACCOUNT_QUERY_CACHE_KEY","exports","ACCOUNT_QUERY_CACHE_MAX_AGE","ACCOUNT_QUERY_PERSIST_THROTTLE_MS","storageKeyFor","accountId","encodeURIComponent","createAccountQueryPersistence","queryClient","filters","shouldDehydrateQuery","state","status","shouldDehydrateMutation","isPaused","listeners","resolveStorage","storageReady","Promise","resolve","hasStorage","io","enqueue","operation","then","catch","attached","restoredFor","generation","writer","notify","listener","dropScopedData","removeQueries","predicate","mutations","getMutationCache","getAll","remove","stopWriting","unsubscribe","restore","id","current","storage","raw","getItem","hydrateSnapshot","removeItem","subscribeSnapshots","serialized","target","setItem","setStorage","next","activate","previous","snapshot","attach","detach","flush","isReady","subscribe","add","delete"],"sourceRoot":"../../../../src","sources":["ui/hooks/accountQueryPersistence.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SDK_MEMORY_ONLY_ROOTS = exports.PERSISTED_QUERY_PREFIXES = void 0;
7
+ exports.hydrateSnapshot = hydrateSnapshot;
8
+ exports.rootOf = rootOf;
9
+ exports.snapshot = snapshot;
10
+ exports.subscribeSnapshots = subscribeSnapshots;
11
+ var _reactQuery = require("@tanstack/react-query");
12
+ var _buildId = require("../utils/buildId.js");
13
+ /**
14
+ * The storage format and restore rules shared by the SDK's two query caches:
15
+ * the account-agnostic one (`attachQueryPersistence`) and the per-account one
16
+ * (`createAccountQueryPersistence`).
17
+ *
18
+ * A blob is `{ buster, timestamp, clientState }`, TanStack's persisted-client
19
+ * shape. Restoring it treats its two halves differently:
20
+ *
21
+ * - Queries are served before any refetch, so a query written by another
22
+ * build, in whatever shape that build used, is dropped (`getOxyBuildId`).
23
+ * - Paused mutations are the user's queued actions (a star, a send made
24
+ * offline). A deploy must not lose them, so they are restored whatever build
25
+ * wrote them; the current build's `setMutationDefaults` replays them.
26
+ */
27
+
28
+ /** The SDK's own account-agnostic query roots, persisted by `attachQueryPersistence`. */
29
+ const PERSISTED_QUERY_PREFIXES = exports.PERSISTED_QUERY_PREFIXES = ['accounts', 'users', 'sessions', 'devices', 'privacy'];
30
+
31
+ /**
32
+ * SDK queries whose data (or key) carries a signed, expiring URL. Never
33
+ * written to disk: a restored one would serve an expired URL.
34
+ */
35
+ const SDK_MEMORY_ONLY_ROOTS = exports.SDK_MEMORY_ONLY_ROOTS = ['assetDownloadUrls', 'avatarCropSource', 'avatarCropMeasure', 'justifiedPhotoDimensions'];
36
+ function rootOf(query) {
37
+ const head = query.queryKey[0];
38
+ return typeof head === 'string' ? head : null;
39
+ }
40
+
41
+ /** Serialize what the filters select, stamped with this build. */
42
+ function snapshot(queryClient, filters) {
43
+ const blob = {
44
+ buster: (0, _buildId.getOxyBuildId)(),
45
+ timestamp: Date.now(),
46
+ clientState: (0, _reactQuery.dehydrate)(queryClient, filters)
47
+ };
48
+ return JSON.stringify(blob);
49
+ }
50
+
51
+ /**
52
+ * Hydrate a stored blob into the client, synchronously, so a caller can check
53
+ * it is still wanted immediately before. Returns false when there was nothing
54
+ * usable (absent, unreadable or expired), in which case the caller removes it.
55
+ */
56
+ function hydrateSnapshot(queryClient, raw, maxAge) {
57
+ if (!raw) return false;
58
+ let blob;
59
+ try {
60
+ blob = JSON.parse(raw);
61
+ } catch {
62
+ return false;
63
+ }
64
+ if (!blob?.clientState || typeof blob.timestamp !== 'number' || Date.now() - blob.timestamp > maxAge) {
65
+ return false;
66
+ }
67
+ const sameBuild = blob.buster === (0, _buildId.getOxyBuildId)();
68
+ (0, _reactQuery.hydrate)(queryClient, {
69
+ queries: sameBuild ? blob.clientState.queries : [],
70
+ mutations: blob.clientState.mutations ?? []
71
+ });
72
+ return true;
73
+ }
74
+
75
+ /**
76
+ * Write the filtered cache on every change, at most once per `throttleMs`.
77
+ * `write` receives the serialized snapshot; `flush()` writes now.
78
+ */
79
+ function subscribeSnapshots(queryClient, filters, throttleMs, write) {
80
+ let timer = null;
81
+ const flush = () => {
82
+ if (timer) clearTimeout(timer);
83
+ timer = null;
84
+ write(snapshot(queryClient, filters));
85
+ };
86
+ const schedule = () => {
87
+ if (!timer) timer = setTimeout(flush, throttleMs);
88
+ };
89
+ const offQueries = queryClient.getQueryCache().subscribe(schedule);
90
+ const offMutations = queryClient.getMutationCache().subscribe(schedule);
91
+ return {
92
+ flush,
93
+ unsubscribe: () => {
94
+ if (timer) clearTimeout(timer);
95
+ timer = null;
96
+ offQueries();
97
+ offMutations();
98
+ }
99
+ };
100
+ }
101
+ //# sourceMappingURL=persistedQueryCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactQuery","require","_buildId","PERSISTED_QUERY_PREFIXES","exports","SDK_MEMORY_ONLY_ROOTS","rootOf","query","head","queryKey","snapshot","queryClient","filters","blob","buster","getOxyBuildId","timestamp","Date","now","clientState","dehydrate","JSON","stringify","hydrateSnapshot","raw","maxAge","parse","sameBuild","hydrate","queries","mutations","subscribeSnapshots","throttleMs","write","timer","flush","clearTimeout","schedule","setTimeout","offQueries","getQueryCache","subscribe","offMutations","getMutationCache","unsubscribe"],"sourceRoot":"../../../../src","sources":["ui/hooks/persistedQueryCache.ts"],"mappings":"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","ignoreList":[]}
@@ -6,10 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.createQueryClient = exports.clearQueryCache = exports.attachQueryPersistence = void 0;
7
7
  exports.shouldRetryQuery = shouldRetryQuery;
8
8
  var _reactQuery = require("@tanstack/react-query");
9
- var _reactQueryPersistClient = require("@tanstack/react-query-persist-client");
10
- var _queryAsyncStoragePersister = require("@tanstack/query-async-storage-persister");
11
9
  var _core = require("@oxy.so/core");
12
- var _buildId = require("../utils/buildId.js");
10
+ var _accountQueryPersistence = require("./accountQueryPersistence.js");
11
+ var _persistedQueryCache = require("./persistedQueryCache.js");
13
12
  /**
14
13
  * Offline-first QueryClient with cross-restart persistence.
15
14
  *
@@ -17,23 +16,20 @@ var _buildId = require("../utils/buildId.js");
17
16
  * - TanStack Query with `networkMode: 'offlineFirst'` for queries and mutations
18
17
  * so cached data is served immediately and mutations are queued (paused) while
19
18
  * the browser/device reports offline.
20
- * - `persistQueryClient(...)` from `@tanstack/react-query-persist-client` so that
21
- * query results AND paused mutations survive a cold restart (kill-and-relaunch).
19
+ * - `attachQueryPersistence(...)` so that query results AND paused mutations
20
+ * survive a cold restart (kill-and-relaunch); see `persistedQueryCache.ts`.
22
21
  * - `onlineManager` resume hook so paused mutations replay the moment the
23
22
  * network is reported back, even if the host app swapped in a custom
24
23
  * onlineManager implementation.
25
24
  *
26
- * Storage layer:
27
- * - React Native -> AsyncStorage via `createAsyncStoragePersister`.
28
- * - Web -> localStorage via `createSyncStoragePersister` (wrapped in the
29
- * async persister API for a single call site).
30
- * - Both adapters are content-shape compatible with our `StorageInterface`.
25
+ * Storage layer: the platform `StorageInterface` (AsyncStorage on native,
26
+ * localStorage on web).
31
27
  *
32
28
  * Whitelist policy:
33
29
  * - Persist every account/user/session/privacy query and every queued mutation.
34
30
  * - DO NOT persist large list queries (e.g. activity feeds) — they go stale
35
31
  * fast and would balloon storage. Add new keys to `PERSISTED_QUERY_PREFIXES`
36
- * when introducing reads that should survive restart.
32
+ * (`persistedQueryCache.ts`) when introducing reads that should survive restart.
37
33
  */
38
34
 
39
35
  const QUERY_CACHE_KEY = 'oxy_query_cache_v3';
@@ -55,46 +51,16 @@ function shouldRetryQuery(failureCount, error) {
55
51
  }
56
52
 
57
53
  /**
58
- * Query-key prefixes that should survive cold restart. Anything not listed
59
- * is dropped during dehydration so the persisted blob stays small.
60
- *
61
- * Mutations are persisted independently (always) so the offline write queue
62
- * works regardless of the read whitelist.
54
+ * Whether a query belongs in the account-agnostic cache: successful (a
55
+ * `pending`/`error` state is not worth keeping, and an error would leak
56
+ * failure objects across restarts) and under one of the SDK's own prefixes.
63
57
  */
64
- const PERSISTED_QUERY_PREFIXES = ['accounts', 'users', 'sessions', 'devices', 'privacy'];
65
-
66
- /**
67
- * Adapt our `StorageInterface` (which always returns `null` for missing keys)
68
- * to TanStack's `AsyncStorage` shape. The two are structurally identical
69
- * apart from naming; this also gives us a single place to add error
70
- * suppression if a host platform's storage throws.
71
- */
72
- function adaptStorage(storage) {
73
- return {
74
- getItem: key => storage.getItem(key),
75
- setItem: (key, value) => storage.setItem(key, value),
76
- removeItem: key => storage.removeItem(key)
77
- };
78
- }
79
-
80
- /**
81
- * Decide whether a given query should be written to persistent storage.
82
- *
83
- * Two gates:
84
- * 1. The query must be in our prefix whitelist.
85
- * 2. The query must have completed successfully at least once — there's no
86
- * point persisting a `pending`/`error` state, and persisting `error` would
87
- * leak failure objects across restarts.
88
- */
89
- function shouldDehydrateQuery(query) {
58
+ function isSharedQuery(query) {
90
59
  if (query.state.status !== 'success') {
91
60
  return false;
92
61
  }
93
62
  const head = query.queryKey[0];
94
- if (typeof head !== 'string') {
95
- return false;
96
- }
97
- return PERSISTED_QUERY_PREFIXES.includes(head);
63
+ return typeof head === 'string' && _persistedQueryCache.PERSISTED_QUERY_PREFIXES.includes(head);
98
64
  }
99
65
 
100
66
  /**
@@ -154,58 +120,55 @@ const createQueryClient = () => {
154
120
  };
155
121
  exports.createQueryClient = createQueryClient;
156
122
  /**
157
- * Wire `persistQueryClient` to the supplied storage adapter.
123
+ * Restore, then keep writing, the account-agnostic cache.
158
124
  *
159
- * Returns once the in-flight restore promise is available so callers can
160
- * `await result.restored` before rendering UI that depends on cached data.
125
+ * Queries written by another build are dropped; queued mutations are kept
126
+ * (`persistedQueryCache.ts`). Whatever the app declared account-scoped
127
+ * (`accountQueries`) is left to `createAccountQueryPersistence`, even under
128
+ * one of the SDK's prefixes, so private rows never land in the shared blob and
129
+ * a paused mutation cannot replay twice or under another account.
161
130
  *
162
131
  * Safe to no-op if `storage` is null/undefined (e.g. server-side render
163
132
  * with no host storage).
164
133
  */
165
- const attachQueryPersistence = (queryClient, storage,
166
- /**
167
- * Mutation keys the app declared account-scoped (`accountQueries`). Those are
168
- * persisted per account by `createAccountQueryPersistence`, never here, so a
169
- * paused mutation cannot replay twice or under another account.
170
- */
171
- accountMutationKeys = []) => {
134
+ const attachQueryPersistence = (queryClient, storage, accountQueries) => {
172
135
  if (!storage) {
173
136
  return {
174
137
  restored: Promise.resolve(),
175
138
  unsubscribe: () => {}
176
139
  };
177
140
  }
178
- const persister = (0, _queryAsyncStoragePersister.createAsyncStoragePersister)({
179
- storage: adaptStorage(storage),
180
- key: QUERY_CACHE_KEY,
181
- throttleTime: QUERY_PERSIST_THROTTLE_MS
182
- });
183
-
184
- // Persist every other mutation regardless of status: paused mutations are
185
- // exactly the ones that must survive restart to replay when online.
186
- const accountScoped = new Set(accountMutationKeys.map(key => (0, _reactQuery.hashKey)(key)));
187
- const shouldDehydrateMutation = mutation => {
188
- const key = mutation.options.mutationKey;
189
- return key === undefined || !accountScoped.has((0, _reactQuery.hashKey)(key));
141
+ const account = accountQueries ? (0, _accountQueryPersistence.accountQueryOwnership)(accountQueries) : null;
142
+ const filters = {
143
+ shouldDehydrateQuery: query => isSharedQuery(query) && !(account?.ownsQuery(query) ?? false),
144
+ // Every other mutation, whatever its status: paused ones are exactly the
145
+ // ones that must survive a restart to replay when online.
146
+ shouldDehydrateMutation: mutation => !(account?.ownsMutation(mutation) ?? false)
190
147
  };
191
- const [unsubscribe, restored] = (0, _reactQueryPersistClient.persistQueryClient)({
192
- queryClient,
193
- persister,
194
- maxAge: QUERY_CACHE_MAX_AGE,
195
- buster: (0, _buildId.getOxyBuildId)(),
196
- dehydrateOptions: {
197
- shouldDehydrateQuery,
198
- shouldDehydrateMutation
148
+ let stopped = false;
149
+ let writer = null;
150
+ const restored = (async () => {
151
+ const raw = await storage.getItem(QUERY_CACHE_KEY);
152
+ if (stopped) return;
153
+ if (!(0, _persistedQueryCache.hydrateSnapshot)(queryClient, raw, QUERY_CACHE_MAX_AGE) && raw) {
154
+ await storage.removeItem(QUERY_CACHE_KEY);
199
155
  }
200
- });
201
- restored.catch(error => {
156
+ })().catch(error => {
202
157
  if ((0, _core.isDev)()) {
203
158
  console.warn('[QueryClient] Failed to restore persisted cache', error);
204
159
  }
160
+ }).then(() => {
161
+ if (stopped) return;
162
+ writer = (0, _persistedQueryCache.subscribeSnapshots)(queryClient, filters, QUERY_PERSIST_THROTTLE_MS, serialized => {
163
+ void Promise.resolve(storage.setItem(QUERY_CACHE_KEY, serialized)).catch(() => undefined);
164
+ });
205
165
  });
206
166
  return {
207
- unsubscribe,
208
- restored
167
+ restored,
168
+ unsubscribe: () => {
169
+ stopped = true;
170
+ writer?.unsubscribe();
171
+ }
209
172
  };
210
173
  };
211
174
 
@@ -1 +1 @@
1
- {"version":3,"names":["_reactQuery","require","_reactQueryPersistClient","_queryAsyncStoragePersister","_core","_buildId","QUERY_CACHE_KEY","QUERY_CACHE_MAX_AGE","QUERY_PERSIST_THROTTLE_MS","MAX_QUERY_RETRIES","statusOf","error","value","status","response","shouldRetryQuery","failureCount","PERSISTED_QUERY_PREFIXES","adaptStorage","storage","getItem","key","setItem","removeItem","shouldDehydrateQuery","query","state","head","queryKey","includes","createQueryClient","client","QueryClient","defaultOptions","queries","staleTime","gcTime","retry","retryDelay","attemptIndex","Math","min","refetchOnReconnect","refetchOnWindowFocus","networkMode","mutations","unsubscribe","onlineManager","subscribe","isOnline","getMutationCache","resumePausedMutations","Object","defineProperty","enumerable","configurable","writable","exports","attachQueryPersistence","queryClient","accountMutationKeys","restored","Promise","resolve","persister","createAsyncStoragePersister","throttleTime","accountScoped","Set","map","hashKey","shouldDehydrateMutation","mutation","options","mutationKey","undefined","has","persistQueryClient","maxAge","buster","getOxyBuildId","dehydrateOptions","catch","isDev","console","warn","clearQueryCache"],"sourceRoot":"../../../../src","sources":["ui/hooks/queryClient.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactQuery","require","_core","_accountQueryPersistence","_persistedQueryCache","QUERY_CACHE_KEY","QUERY_CACHE_MAX_AGE","QUERY_PERSIST_THROTTLE_MS","MAX_QUERY_RETRIES","statusOf","error","value","status","response","shouldRetryQuery","failureCount","isSharedQuery","query","state","head","queryKey","PERSISTED_QUERY_PREFIXES","includes","createQueryClient","client","QueryClient","defaultOptions","queries","staleTime","gcTime","retry","retryDelay","attemptIndex","Math","min","refetchOnReconnect","refetchOnWindowFocus","networkMode","mutations","unsubscribe","onlineManager","subscribe","isOnline","getMutationCache","resumePausedMutations","Object","defineProperty","enumerable","configurable","writable","exports","attachQueryPersistence","queryClient","storage","accountQueries","restored","Promise","resolve","account","accountQueryOwnership","filters","shouldDehydrateQuery","ownsQuery","shouldDehydrateMutation","mutation","ownsMutation","stopped","writer","raw","getItem","hydrateSnapshot","removeItem","catch","isDev","console","warn","then","subscribeSnapshots","serialized","setItem","undefined","clearQueryCache"],"sourceRoot":"../../../../src","sources":["ui/hooks/queryClient.ts"],"mappings":"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","ignoreList":[]}
@@ -158,13 +158,14 @@ export { RequireOxyAuth } from "./ui/components/RequireOxyAuth.js";
158
158
 
159
159
  export { default as FollowButton } from "./ui/components/FollowButton.js";
160
160
  // The follow graph (#809): follows anything registered, not just users.
161
- export { FollowTargetButton,
161
+ export { FollowTargetButton } from "./ui/components/FollowTargetButton.js";
162
+ export {
162
163
  // The product rules the button encodes, for an application drawing its own
163
164
  // affordance instead of using it — a chip grid, a compact row control.
164
165
  // Unexported, they get duplicated, and the duplicate is where the "off here"
165
166
  // rule goes wrong: pressing a follow that is switched off here must re-enable
166
167
  // it here, not unfollow everywhere.
167
- buildFollowMenuItems, resolveFollowPrimaryAction, FOLLOW_ACTION_LEAVES_ACTIVE } from "./ui/components/FollowTargetButton.js";
168
+ buildFollowMenuItems, resolveFollowPrimaryAction, FOLLOW_ACTION_LEAVES_ACTIVE } from "./ui/components/followRules.js";
168
169
  export { useFollowTarget } from "./ui/hooks/useFollowTarget.js";
169
170
  export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS,
170
171
  // The answer to "does the user follow this at all". Documented in
@@ -1 +1 @@
1
- {"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useOptionalOxy","OxyProviderMissingError","useOxyRuntime","useOxySnapshot","useActiveAccount","useDeviceDirectory","OxyRuntimeMissingError","useAuth","createDeferredProductAnalytics","IdentityBoundSessionError","useAuthStore","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","useSignInMethods","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeConnectedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useMutationStatus","useOnlineStatus","useOxyEvent","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","OXY_OAUTH_STATE_STORAGE_KEY","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","OxySignInButton","openOAuthPopup","OxyAuthPrompt","OxyOAuthCallback","OxyConsentScreen","RequireOxyAuth","FollowButton","FollowTargetButton","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","useFollowTarget","useFollowTargetStore","UNKNOWN_FOLLOW_STATUS","isFollowedGlobally","withApplicationMode","isCompleteFollowStatus","followRecordToStatus","followRecordsToStatusMap","PeableButton","OxyPayButton","LogoIcon","LogoText","ProfileButton","OxySignInPanel","OxySignUpPanel","OxyAccountPicker","OxyDeleteAccountPanel","OxyLinkCommonsPanel","OxyPasswordPanel","OxyAuthenticatorPanel","OxyAuthScreen","OxyAuthScreenHeader","OxyAuthLoading","OxyAuthTerms","OxySignInRequestSurface","useDeviceSwitcher","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","useOptionalOxy","OxyProviderMissingError","useOxyRuntime","useOxySnapshot","useActiveAccount","useDeviceDirectory","OxyRuntimeMissingError","useAuth","createDeferredProductAnalytics","IdentityBoundSessionError","useAuthStore","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","useSignInMethods","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeConnectedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useMutationStatus","useOnlineStatus","useOxyEvent","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","useFileFiltering","OXY_OAUTH_STATE_STORAGE_KEY","OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY","OxySignInButton","openOAuthPopup","OxyAuthPrompt","OxyOAuthCallback","OxyConsentScreen","RequireOxyAuth","FollowButton","FollowTargetButton","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","useFollowTarget","useFollowTargetStore","UNKNOWN_FOLLOW_STATUS","isFollowedGlobally","withApplicationMode","isCompleteFollowStatus","followRecordToStatus","followRecordsToStatusMap","PeableButton","OxyPayButton","LogoIcon","LogoText","ProfileButton","OxySignInPanel","OxySignUpPanel","OxyAccountPicker","OxyDeleteAccountPanel","OxyLinkCommonsPanel","OxyPasswordPanel","OxyAuthenticatorPanel","OxyAuthScreen","OxyAuthScreenHeader","OxyAuthLoading","OxyAuthTerms","OxySignInRequestSurface","useDeviceSwitcher","showBottomSheet","closeBottomSheet","useSurfaceHeader","SurfaceHeaderAction","openAccountDialog","closeAccountDialog","subscribeToAccountDialog"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  /**
4
- * Client-only UI exports (tree-shakeable)
4
+ * Client-only UI exports — the lean entry.
5
5
  *
6
- * Import from this module for client-side bundles where tree-shaking is important.
7
- * These are direct exports without runtime detection overhead.
6
+ * Import from this module in an app's startup path. The root barrel also
7
+ * re-exports the sign-in panels (`OxySignInPanel`, `OxyLinkCommonsPanel` and
8
+ * its QR code, `OxyConsentScreen`, …) for apps that embed them, and Metro does
9
+ * not tree-shake, so importing ANY symbol from `@oxy.so/services` ships all of
10
+ * them — even though the account dialog that normally shows them is loaded on
11
+ * demand. Nothing exported here reaches those panels; the packaging test
12
+ * `clientEntryIsolation` pins it.
8
13
  *
9
14
  * @example
10
15
  * import { OxyProvider, useOxy, LogoIcon } from '@oxy.so/services/ui/client';
@@ -17,6 +22,7 @@ export { default as OxyAuthPrompt } from "./components/OxyAuthPrompt.js";
17
22
  export { LogoIcon } from "./components/logo/LogoIcon.js";
18
23
  export { LogoText } from "./components/logo/LogoText.js";
19
24
  export { default as FollowButton } from "./components/FollowButton.js";
25
+ export { default as ProfileButton } from "./components/ProfileButton.js";
20
26
  export { default as PeableButton } from "./components/PeableButton.js";
21
27
  /** @deprecated Use `PeableButton` instead. */
22
28
  export { default as OxyPayButton } from "./components/OxyPayButton.js";
@@ -28,11 +34,18 @@ export { useOxy, useOptionalOxy, OxyProviderMissingError } from "./context/OxyCo
28
34
  // Hooks
29
35
  export { useAuth } from "./hooks/useAuth.js";
30
36
  export { createDeferredProductAnalytics } from "./analytics/productAnalytics.js";
31
- export { useFollow } from "./hooks/useFollow.js";
37
+ export { useFollow, useFollowerCounts, useSeedFollowStatuses } from "./hooks/useFollow.js";
38
+ export { useFollowTarget } from "./hooks/useFollowTarget.js";
39
+ export { useUserProfile, useUserProfiles, useCurrentUser, useUserById, useUserByUsername } from "./hooks/queries/useAccountQueries.js";
32
40
  export { useStorage } from "./hooks/useStorage.js";
33
41
  // Route screens live at `@oxy.so/services/screens` so client imports preserve
34
42
  // the route registry's lazy chunk boundaries.
35
43
 
44
+ // Follow rules, for an app drawing its own follow affordance
45
+ export { buildFollowMenuItems, resolveFollowPrimaryAction, FOLLOW_ACTION_LEAVES_ACTIVE } from "./components/followRules.js";
46
+ // Query keys, cache invalidation and the canonical user-cache upsert
47
+ export { queryKeys, invalidateAccountQueries, invalidateUserQueries, invalidateSessionQueries, invalidateDeviceQueries, invalidatePrivacyQueries, invalidateSecurityQueries, invalidateStorageQueries, invalidatePaymentsQueries, invalidateConnectedAppsQueries, invalidateAuthMethodsQueries } from "./hooks/queries/queryKeys.js";
48
+ export { upsertCachedUser, upsertCachedUsers, CLEARABLE_USER_FIELDS, clearedFieldsFromProfileUpdate, clearedFieldsFromAccountUpdate } from "./hooks/queries/userCache.js";
36
49
  // Stores
37
50
  export { useAuthStore } from "./stores/authStore.js";
38
51
 
@@ -1 +1 @@
1
- {"version":3,"names":["default","OxyProvider","OxySignInButton","OxyAuthPrompt","LogoIcon","LogoText","FollowButton","PeableButton","OxyPayButton","useOxy","useOptionalOxy","OxyProviderMissingError","useAuth","createDeferredProductAnalytics","useFollow","useStorage","useAuthStore","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage"],"sourceRoot":"../../../src","sources":["ui/client.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,IAAIC,WAAW,QAAQ,6BAA0B;AACjE,SAASD,OAAO,IAAIE,eAAe,QAAQ,iCAA8B;AACzE,SAASF,OAAO,IAAIG,aAAa,QAAQ,+BAA4B;AAErE,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASL,OAAO,IAAIM,YAAY,QAAQ,8BAA2B;AACnE,SAASN,OAAO,IAAIO,YAAY,QAAQ,8BAA2B;AAEnE;AACA,SAASP,OAAO,IAAIQ,YAAY,QAAQ,8BAA2B;AACnE;;AAGA;AACA,SAASC,MAAM,EAAEC,cAAc,EAAEC,uBAAuB,QAAQ,yBAAsB;;AAEtF;AACA,SAASC,OAAO,QAAQ,oBAAiB;AAEzC,SAASC,8BAA8B,QAAQ,iCAA8B;AAE7E,SAASC,SAAS,QAAQ,sBAAmB;AAC7C,SAASC,UAAU,QAAQ,uBAAoB;AAG/C;AACA;;AAEA;AACA,SAASC,YAAY,QAAQ,uBAAoB;;AAEjD;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,0BAAuB","ignoreList":[]}
1
+ {"version":3,"names":["default","OxyProvider","OxySignInButton","OxyAuthPrompt","LogoIcon","LogoText","FollowButton","ProfileButton","PeableButton","OxyPayButton","useOxy","useOptionalOxy","OxyProviderMissingError","useAuth","createDeferredProductAnalytics","useFollow","useFollowerCounts","useSeedFollowStatuses","useFollowTarget","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useStorage","buildFollowMenuItems","resolveFollowPrimaryAction","FOLLOW_ACTION_LEAVES_ACTIVE","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","invalidateAuthMethodsQueries","upsertCachedUser","upsertCachedUsers","CLEARABLE_USER_FIELDS","clearedFieldsFromProfileUpdate","clearedFieldsFromAccountUpdate","useAuthStore","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage"],"sourceRoot":"../../../src","sources":["ui/client.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,IAAIC,WAAW,QAAQ,6BAA0B;AACjE,SAASD,OAAO,IAAIE,eAAe,QAAQ,iCAA8B;AACzE,SAASF,OAAO,IAAIG,aAAa,QAAQ,+BAA4B;AAErE,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASC,QAAQ,QAAQ,+BAA4B;AACrD,SAASL,OAAO,IAAIM,YAAY,QAAQ,8BAA2B;AACnE,SAASN,OAAO,IAAIO,aAAa,QAAQ,+BAA4B;AAErE,SAASP,OAAO,IAAIQ,YAAY,QAAQ,8BAA2B;AAEnE;AACA,SAASR,OAAO,IAAIS,YAAY,QAAQ,8BAA2B;AACnE;;AAGA;AACA,SAASC,MAAM,EAAEC,cAAc,EAAEC,uBAAuB,QAAQ,yBAAsB;;AAEtF;AACA,SAASC,OAAO,QAAQ,oBAAiB;AAEzC,SAASC,8BAA8B,QAAQ,iCAA8B;AAE7E,SAASC,SAAS,EAAEC,iBAAiB,EAAEC,qBAAqB,QAAQ,sBAAmB;AACvF,SAASC,eAAe,QAAQ,4BAAyB;AAEzD,SACIC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,WAAW,EACXC,iBAAiB,QACd,sCAAmC;AAC1C,SAASC,UAAU,QAAQ,uBAAoB;AAG/C;AACA;;AAEA;AACA,SACIC,oBAAoB,EACpBC,0BAA0B,EAC1BC,2BAA2B,QACxB,6BAA0B;AAGjC;AACA,SACIC,SAAS,EACTC,wBAAwB,EACxBC,qBAAqB,EACrBC,wBAAwB,EACxBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,wBAAwB,EACxBC,yBAAyB,EACzBC,8BAA8B,EAC9BC,4BAA4B,QACzB,8BAA2B;AAClC,SACIC,gBAAgB,EAChBC,iBAAiB,EACjBC,qBAAqB,EACrBC,8BAA8B,EAC9BC,8BAA8B,QAC3B,8BAA2B;AAOlC;AACA,SAASC,YAAY,QAAQ,uBAAoB;;AAEjD;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,0BAAuB","ignoreList":[]}
@@ -46,6 +46,7 @@ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigge
46
46
  import { toast } from '@oxy.so/bloom/toast';
47
47
  import { useFollowTarget } from "../hooks/useFollowTarget.js";
48
48
  import { useFollowTargetStore } from "../stores/followTargetStore.js";
49
+ import { buildFollowMenuItems, FOLLOW_ACTION_LEAVES_ACTIVE, resolveFollowPrimaryAction } from "./followRules.js";
49
50
 
50
51
  /**
51
52
  * The small vocabulary of verbs the ecosystem actually uses. An application
@@ -79,9 +80,6 @@ const VERB_LABELS = {
79
80
  disabled: 'Off here'
80
81
  }
81
82
  };
82
-
83
- /** A timed-follow choice offered in the menu. */
84
-
85
83
  const HOUR = 60 * 60;
86
84
 
87
85
  /**
@@ -99,92 +97,6 @@ const DEFAULT_DURATIONS = [{
99
97
  label: 'A week',
100
98
  seconds: 7 * 24 * HOUR
101
99
  }];
102
-
103
- /**
104
- * Whether an action leaves the target ACTIVE in this application.
105
- *
106
- * One table, read by both the primary button and the menu, because the same
107
- * action reached from two controls once reported differently — and a rule
108
- * living in two switch statements is a rule that drifts. `Record` rather than
109
- * a function with a default, so a new action is a compile error instead of a
110
- * silent `false`.
111
- */
112
- export const FOLLOW_ACTION_LEAVES_ACTIVE = {
113
- follow: true,
114
- 'follow-timed': true,
115
- // Re-enabling here does not change the global follow — the user already had
116
- // it — but it does change whether this application acts on it, which is what
117
- // a mirror is asking about.
118
- 'enable-here': true,
119
- 'disable-here': false,
120
- unfollow: false
121
- };
122
-
123
- /** One line in the disclosure menu. */
124
-
125
- /**
126
- * Which choices exist, given the state.
127
- *
128
- * Pure and exported because this is the product decision, not a rendering
129
- * detail: a timed follow is only offered before following, turning it off here
130
- * is only offered while following, and NEITHER is offered before the server has
131
- * answered — every one of them addresses a relationship that does not exist
132
- * yet, so offering them mid-write would mean sending a guessed id.
133
- */
134
- /**
135
- * What the main button should do for the current state.
136
- *
137
- * Exported because the product rule is not obvious from the label alone: a
138
- * follow switched off here still reads as "following" globally, so the primary
139
- * press must re-enable here — not unfollow everywhere.
140
- */
141
- export function resolveFollowPrimaryAction(input) {
142
- if (!input.isFollowing) return 'follow';
143
- if (input.applicationMode === 'disabled') return 'enable-here';
144
- return 'unfollow';
145
- }
146
- export function buildFollowMenuItems(input) {
147
- const items = [];
148
- if (!input.following) {
149
- if (input.durations === false) return items;
150
- for (const d of input.durations) {
151
- items.push({
152
- key: `for-${d.seconds}`,
153
- label: `${input.idleVerb} for ${d.label.toLowerCase()}`,
154
- action: {
155
- type: 'follow-timed',
156
- seconds: d.seconds,
157
- durationLabel: d.label
158
- }
159
- });
160
- }
161
- return items;
162
- }
163
- if (!input.hasRelationship || input.isPending) return items;
164
- items.push(input.applicationMode === 'disabled' ? {
165
- key: 'enable-here',
166
- label: `Show in ${input.applicationName}`,
167
- action: {
168
- type: 'enable-here'
169
- }
170
- } : {
171
- key: 'disable-here',
172
- label: `Don’t show in ${input.applicationName}`,
173
- action: {
174
- type: 'disable-here'
175
- }
176
- });
177
- items.push({
178
- // Named for what it does. "Unfollow" beside "don't show here" would read as
179
- // the same action twice, and the user would pick the wrong one.
180
- key: 'unfollow-everywhere',
181
- label: 'Unfollow everywhere',
182
- action: {
183
- type: 'unfollow'
184
- }
185
- });
186
- return items;
187
- }
188
100
  export const FollowTargetButton = /*#__PURE__*/memo(function FollowTargetButton({
189
101
  targetId,
190
102
  verb = 'follow',