@oxy.so/services 9.1.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.
- package/lib/commonjs/index.js +4 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/client.js +174 -0
- package/lib/commonjs/ui/client.js.map +1 -1
- package/lib/commonjs/ui/components/FollowTargetButton.js +11 -101
- package/lib/commonjs/ui/components/FollowTargetButton.js.map +1 -1
- package/lib/commonjs/ui/components/followRules.js +105 -0
- package/lib/commonjs/ui/components/followRules.js.map +1 -0
- package/lib/module/index.js +3 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/client.js +17 -4
- package/lib/module/ui/client.js.map +1 -1
- package/lib/module/ui/components/FollowTargetButton.js +1 -89
- package/lib/module/ui/components/FollowTargetButton.js.map +1 -1
- package/lib/module/ui/components/followRules.js +99 -0
- package/lib/module/ui/components/followRules.js.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +4 -2
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/client.d.ts +19 -4
- package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts +2 -62
- package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/followRules.d.ts +71 -0
- package/lib/typescript/commonjs/ui/components/followRules.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +4 -2
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/client.d.ts +19 -4
- package/lib/typescript/module/ui/client.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowTargetButton.d.ts +2 -62
- package/lib/typescript/module/ui/components/FollowTargetButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/followRules.d.ts +71 -0
- package/lib/typescript/module/ui/components/followRules.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +3 -3
- package/src/ui/client.ts +55 -4
- package/src/ui/components/FollowTargetButton.tsx +8 -112
- package/src/ui/components/__tests__/followTargetButton.test.ts +1 -1
- package/src/ui/components/followRules.ts +121 -0
package/lib/module/index.js
CHANGED
|
@@ -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/
|
|
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
|
package/lib/module/index.js.map
CHANGED
|
@@ -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":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,SAASA,aAAa,QAAyB,cAAc;AAC7D,SAASC,QAAQ,QAAQ,cAAc;AACvCD,aAAa,CAACC,QAAQ,CAACC,EAAgB,CAAC;;AAExC;AACA;AACA;AACA,SAASC,OAAO,IAAIC,WAAW,QAAQ,gCAA6B;AACpE,SAASC,MAAM,QAAQ,4BAAyB;AAChD;AACA;AACA;AACA,SAASC,cAAc,EAAEC,uBAAuB,QAAQ,4BAAyB;;AAEjF;AACA;AACA;AACA,SACEC,aAAa,EACbC,cAAc,EACdC,gBAAgB,EAChBC,kBAAkB,EAClBC,sBAAsB,QACjB,uBAAc;AAUrB,SAASC,OAAO,QAAQ,uBAAoB;AAE5C,SAASC,8BAA8B,QAAQ,oCAAiC;AAEhF;AACA;AACA;AACA,SAASC,yBAAyB,QAAQ,iCAA8B;;AAExE;AACA;AACA;AACA,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SACIC,aAAa,EACbC,SAAS,IAAIC,cAAc,EAC3BC,QAAQ,EACRC,iBAAiB,EACjBC,eAAe,EACfC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,kBAAkB,EAClBC,gBAAgB,QACb,2BAAwB;;AAE/B;AACA;AACA;AACA,SAAST,SAAS,EAAEU,mBAAmB,QAAQ,yBAAsB;AACrE,SAASC,kBAAkB,QAAQ,kCAA+B;AAClE,SAASC,SAAS,EAAEC,iBAAiB,EAAEC,qBAAqB,QAAQ,yBAAsB;AAC1F,SAASC,UAAU,QAAQ,0BAAuB;AAGlD;AACA;AACA;AACA,SACIC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,WAAW,EACXC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,gBAAgB,QACb,yCAAsC;AAC7C,SACIC,WAAW,EACXC,UAAU,EACVC,iBAAiB,EACjBC,cAAc,EACdC,eAAe,EACfC,sBAAsB,QACnB,0CAAuC;AAC9C,SACIC,mBAAmB,EACnBC,yBAAyB,EACzBC,2BAA2B,QACxB,0CAAuC;AAC9C,SAASC,cAAc,EAAEC,gBAAgB,QAAQ,sCAAmC;AACpF,SACIC,mBAAmB,EACnBC,eAAe,EACfC,aAAa,EACbC,yBAAyB,QACtB,yCAAsC;;AAE7C;;AAeA;AACA;AACA;AACA,SACIC,gBAAgB,EAChBC,eAAe,EACfC,wBAAwB,EACxBC,wBAAwB,EACxBC,gCAAgC,EAChCC,wBAAwB,EACxBC,qBAAqB,EACrBC,aAAa,QACV,6CAA0C;AACjD,SACIC,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAY,EACZC,mBAAmB,EACnBC,eAAe,QACZ,8CAA2C;AAClD,SACIC,qBAAqB,EACrBC,qBAAqB,QAClB,yCAAsC;AAM7C;AACA,SAASC,YAAY,QAAQ,sCAAmC;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA,SACIC,SAAS,EACTC,wBAAwB,EACxBC,qBAAqB,EACrBC,wBAAwB,EACxBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,wBAAwB,EACxBC,yBAAyB,EACzBC,8BAA8B,EAC9BC,4BAA4B,QACzB,iCAA8B;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SACIC,gBAAgB,EAChBC,iBAAiB,EACjBC,qBAAqB,EACrBC,8BAA8B,EAC9BC,8BAA8B,QAC3B,iCAA8B;AAOrC;AACA,SAASC,iBAAiB,QAAQ,iCAA8B;AAEhE,SAASC,eAAe,QAAQ,+BAA4B;AAC5D,SAASC,WAAW,QAAQ,2BAAwB;;AAEpD;AACA;AACA;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,6BAA0B;AAGjC;AACA;AACA;AACA,SAASC,gBAAgB,QAAQ,gCAA6B;AAG9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SACEC,2BAA2B,EAC3BC,mCAAmC,QAC9B,cAAc;AACrB,SAAS/F,OAAO,IAAIgG,eAAe,QAAQ,oCAAiC;AAG5E;AACA;AACA;AACA;AACA,SAASC,cAAc,QAAQ,0BAAuB;AAgBtD,SAASC,aAAa,QAAQ,kCAA+B;AAE7D,SAASC,gBAAgB,QAAQ,qCAAkC;AAEnE,SAASC,gBAAgB,QAAQ,qCAAkC;AAQnE;AACA;AACA;AACA;AACA;AACA,SAASC,cAAc,QAAQ,mCAAgC;;AAE/D;;AAGA,SAASrG,OAAO,IAAIsG,YAAY,QAAQ,iCAA8B;AAEtE;AACA,
|
|
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":[]}
|
package/lib/module/ui/client.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Client-only UI exports
|
|
4
|
+
* Client-only UI exports — the lean entry.
|
|
5
5
|
*
|
|
6
|
-
* Import from this module
|
|
7
|
-
*
|
|
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,
|
|
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',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useCallback","useMemo","View","FollowButton","BloomFollowButton","Button","RiArrowDownSLine","ChevronDown","DropdownMenu","DropdownMenuContent","DropdownMenuItem","DropdownMenuTrigger","toast","useFollowTarget","useFollowTargetStore","jsx","_jsx","jsxs","_jsxs","VERB_LABELS","follow","idle","active","pending","disabled","subscribe","join","watch","HOUR","DEFAULT_DURATIONS","label","seconds","
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useMemo","View","FollowButton","BloomFollowButton","Button","RiArrowDownSLine","ChevronDown","DropdownMenu","DropdownMenuContent","DropdownMenuItem","DropdownMenuTrigger","toast","useFollowTarget","useFollowTargetStore","buildFollowMenuItems","FOLLOW_ACTION_LEAVES_ACTIVE","resolveFollowPrimaryAction","jsx","_jsx","jsxs","_jsxs","VERB_LABELS","follow","idle","active","pending","disabled","subscribe","join","watch","HOUR","DEFAULT_DURATIONS","label","seconds","FollowTargetButton","targetId","verb","labels","size","style","showOptions","durations","applicationName","initialStatus","onChange","status","isFollowing","isUnknown","isPending","unfollow","disableHere","enableHere","reportMutationFailure","message","getState","errors","error","text","globalState","applicationMode","handlePrimary","handleTimed","durationLabel","expiresIn","success","toLowerCase","menuItems","following","hasRelationship","Boolean","relationshipId","idleVerb","runItem","item","action","type","then","ok","primary","followingLabel","accessibilityLabel","loading","onFollowChange","length","children","flexDirection","alignItems","gap","asChild","appearance","tone","icon","width","accessibilityHint","map","onPress","key"],"sourceRoot":"../../../../src","sources":["ui/components/FollowTargetButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The follow button's product rules, without the button.
|
|
5
|
+
*
|
|
6
|
+
* Pure: no React, no Bloom. `FollowTargetButton` renders them, and an
|
|
7
|
+
* application drawing its own affordance (a chip grid, a compact row) imports
|
|
8
|
+
* them from here — through `@oxy.so/services/ui/client` — without paying for the
|
|
9
|
+
* button's dropdown menu.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/** A timed-follow choice offered in the menu. */
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Whether an action leaves the target ACTIVE in this application.
|
|
16
|
+
*
|
|
17
|
+
* One table, read by both the primary button and the menu, because the same
|
|
18
|
+
* action reached from two controls once reported differently — and a rule
|
|
19
|
+
* living in two switch statements is a rule that drifts. `Record` rather than
|
|
20
|
+
* a function with a default, so a new action is a compile error instead of a
|
|
21
|
+
* silent `false`.
|
|
22
|
+
*/
|
|
23
|
+
export const FOLLOW_ACTION_LEAVES_ACTIVE = {
|
|
24
|
+
follow: true,
|
|
25
|
+
'follow-timed': true,
|
|
26
|
+
// Re-enabling here does not change the global follow — the user already had
|
|
27
|
+
// it — but it does change whether this application acts on it, which is what
|
|
28
|
+
// a mirror is asking about.
|
|
29
|
+
'enable-here': true,
|
|
30
|
+
'disable-here': false,
|
|
31
|
+
unfollow: false
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/** One line in the disclosure menu. */
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Which choices exist, given the state.
|
|
38
|
+
*
|
|
39
|
+
* Pure and exported because this is the product decision, not a rendering
|
|
40
|
+
* detail: a timed follow is only offered before following, turning it off here
|
|
41
|
+
* is only offered while following, and NEITHER is offered before the server has
|
|
42
|
+
* answered — every one of them addresses a relationship that does not exist
|
|
43
|
+
* yet, so offering them mid-write would mean sending a guessed id.
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* What the main button should do for the current state.
|
|
47
|
+
*
|
|
48
|
+
* Exported because the product rule is not obvious from the label alone: a
|
|
49
|
+
* follow switched off here still reads as "following" globally, so the primary
|
|
50
|
+
* press must re-enable here — not unfollow everywhere.
|
|
51
|
+
*/
|
|
52
|
+
export function resolveFollowPrimaryAction(input) {
|
|
53
|
+
if (!input.isFollowing) return 'follow';
|
|
54
|
+
if (input.applicationMode === 'disabled') return 'enable-here';
|
|
55
|
+
return 'unfollow';
|
|
56
|
+
}
|
|
57
|
+
export function buildFollowMenuItems(input) {
|
|
58
|
+
const items = [];
|
|
59
|
+
if (!input.following) {
|
|
60
|
+
if (input.durations === false) return items;
|
|
61
|
+
for (const d of input.durations) {
|
|
62
|
+
items.push({
|
|
63
|
+
key: `for-${d.seconds}`,
|
|
64
|
+
label: `${input.idleVerb} for ${d.label.toLowerCase()}`,
|
|
65
|
+
action: {
|
|
66
|
+
type: 'follow-timed',
|
|
67
|
+
seconds: d.seconds,
|
|
68
|
+
durationLabel: d.label
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return items;
|
|
73
|
+
}
|
|
74
|
+
if (!input.hasRelationship || input.isPending) return items;
|
|
75
|
+
items.push(input.applicationMode === 'disabled' ? {
|
|
76
|
+
key: 'enable-here',
|
|
77
|
+
label: `Show in ${input.applicationName}`,
|
|
78
|
+
action: {
|
|
79
|
+
type: 'enable-here'
|
|
80
|
+
}
|
|
81
|
+
} : {
|
|
82
|
+
key: 'disable-here',
|
|
83
|
+
label: `Don’t show in ${input.applicationName}`,
|
|
84
|
+
action: {
|
|
85
|
+
type: 'disable-here'
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
items.push({
|
|
89
|
+
// Named for what it does. "Unfollow" beside "don't show here" would read as
|
|
90
|
+
// the same action twice, and the user would pick the wrong one.
|
|
91
|
+
key: 'unfollow-everywhere',
|
|
92
|
+
label: 'Unfollow everywhere',
|
|
93
|
+
action: {
|
|
94
|
+
type: 'unfollow'
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
return items;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=followRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FOLLOW_ACTION_LEAVES_ACTIVE","follow","unfollow","resolveFollowPrimaryAction","input","isFollowing","applicationMode","buildFollowMenuItems","items","following","durations","d","push","key","seconds","label","idleVerb","toLowerCase","action","type","durationLabel","hasRelationship","isPending","applicationName"],"sourceRoot":"../../../../src","sources":["ui/components/followRules.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,2BAGZ,GAAG;EACFC,MAAM,EAAE,IAAI;EACZ,cAAc,EAAE,IAAI;EACpB;EACA;EACA;EACA,aAAa,EAAE,IAAI;EACnB,cAAc,EAAE,KAAK;EACrBC,QAAQ,EAAE;AACZ,CAAC;;AAED;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CAACC,KAG1C,EAAyC;EACxC,IAAI,CAACA,KAAK,CAACC,WAAW,EAAE,OAAO,QAAQ;EACvC,IAAID,KAAK,CAACE,eAAe,KAAK,UAAU,EAAE,OAAO,aAAa;EAC9D,OAAO,UAAU;AACnB;AAEA,OAAO,SAASC,oBAAoBA,CAACH,KAQpC,EAAoB;EACnB,MAAMI,KAAuB,GAAG,EAAE;EAElC,IAAI,CAACJ,KAAK,CAACK,SAAS,EAAE;IACpB,IAAIL,KAAK,CAACM,SAAS,KAAK,KAAK,EAAE,OAAOF,KAAK;IAC3C,KAAK,MAAMG,CAAC,IAAIP,KAAK,CAACM,SAAS,EAAE;MAC/BF,KAAK,CAACI,IAAI,CAAC;QACTC,GAAG,EAAE,OAAOF,CAAC,CAACG,OAAO,EAAE;QACvBC,KAAK,EAAE,GAAGX,KAAK,CAACY,QAAQ,QAAQL,CAAC,CAACI,KAAK,CAACE,WAAW,CAAC,CAAC,EAAE;QACvDC,MAAM,EAAE;UAAEC,IAAI,EAAE,cAAc;UAAEL,OAAO,EAAEH,CAAC,CAACG,OAAO;UAAEM,aAAa,EAAET,CAAC,CAACI;QAAM;MAC7E,CAAC,CAAC;IACJ;IACA,OAAOP,KAAK;EACd;EAEA,IAAI,CAACJ,KAAK,CAACiB,eAAe,IAAIjB,KAAK,CAACkB,SAAS,EAAE,OAAOd,KAAK;EAE3DA,KAAK,CAACI,IAAI,CACRR,KAAK,CAACE,eAAe,KAAK,UAAU,GAChC;IAAEO,GAAG,EAAE,aAAa;IAAEE,KAAK,EAAE,WAAWX,KAAK,CAACmB,eAAe,EAAE;IAAEL,MAAM,EAAE;MAAEC,IAAI,EAAE;IAAc;EAAE,CAAC,GAClG;IACEN,GAAG,EAAE,cAAc;IACnBE,KAAK,EAAE,iBAAiBX,KAAK,CAACmB,eAAe,EAAE;IAC/CL,MAAM,EAAE;MAAEC,IAAI,EAAE;IAAe;EACjC,CACN,CAAC;EACDX,KAAK,CAACI,IAAI,CAAC;IACT;IACA;IACAC,GAAG,EAAE,qBAAqB;IAC1BE,KAAK,EAAE,qBAAqB;IAC5BG,MAAM,EAAE;MAAEC,IAAI,EAAE;IAAW;EAC7B,CAAC,CAAC;EAEF,OAAOX,KAAK;AACd","ignoreList":[]}
|
|
@@ -78,8 +78,10 @@ export type { RequireOxyAuthProps, RequireOxyAuthPrompt } from './ui/components/
|
|
|
78
78
|
export type { AccountQueriesConfig } from './ui/hooks/accountQueryPersistence';
|
|
79
79
|
export { default as FollowButton } from './ui/components/FollowButton';
|
|
80
80
|
export type { FollowButtonProps, SingleFollowButtonProps, MultiFollowButtonProps } from './ui/components/FollowButton';
|
|
81
|
-
export { FollowTargetButton
|
|
82
|
-
export
|
|
81
|
+
export { FollowTargetButton } from './ui/components/FollowTargetButton';
|
|
82
|
+
export { buildFollowMenuItems, resolveFollowPrimaryAction, FOLLOW_ACTION_LEAVES_ACTIVE, } from './ui/components/followRules';
|
|
83
|
+
export type { FollowDuration, FollowMenuItem } from './ui/components/followRules';
|
|
84
|
+
export type { FollowTargetButtonProps, FollowVerb, FollowLabels, } from './ui/components/FollowTargetButton';
|
|
83
85
|
export { useFollowTarget } from './ui/hooks/useFollowTarget';
|
|
84
86
|
export type { UseFollowTargetResult } from './ui/hooks/useFollowTarget';
|
|
85
87
|
export { useFollowTargetStore, UNKNOWN_FOLLOW_STATUS, isFollowedGlobally, withApplicationMode, isCompleteFollowStatus, followRecordToStatus, followRecordsToStatusMap, } from './ui/stores/followTargetStore';
|
|
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAYH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAIjD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAKlF,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,aAAa,EACb,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAIzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAKzE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACH,aAAa,EACb,SAAS,IAAI,cAAc,EAC3B,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACnB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKjF,OAAO,EACH,cAAc,EACd,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACH,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,GACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACH,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EACH,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,yBAAyB,GAC5B,MAAM,sCAAsC,CAAC;AAG9C,YAAY,EACR,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,GAC7B,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EACH,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,GAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,eAAe,GAClB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACH,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACR,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAQjE,OAAO,EACH,SAAS,EACT,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,GAC/B,MAAM,8BAA8B,CAAC;AAStC,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,8BAA8B,EAC9B,8BAA8B,GACjC,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACR,aAAa,EACb,kBAAkB,EAClB,uBAAuB,GAC1B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAKrD,OAAO,EACH,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAKvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AA0B/E,OAAO,EACL,2BAA2B,EAC3B,mCAAmC,GACpC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAM5F,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,yBAAyB,EACzB,kBAAkB,EAClB,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAO1C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEhG,YAAY,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEvH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAML,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClF,YAAY,EACV,uBAAuB,EACvB,UAAU,EACV,YAAY,GACb,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EAIrB,kBAAkB,EAClB,mBAAmB,EAGnB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,8CAA8C;AAC9C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,mDAAmD;AACnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAKzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAKlF,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,YAAY,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAIrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,YAAY,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,YAAY,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,YAAY,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,YAAY,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,YAAY,GACb,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAUrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,YAAY,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AAC5F,YAAY,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAQhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAU5E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACvF,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAKxD,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAMzG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,sCAAsC,CAAC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Client-only UI exports
|
|
2
|
+
* Client-only UI exports — the lean entry.
|
|
3
3
|
*
|
|
4
|
-
* Import from this module
|
|
5
|
-
*
|
|
4
|
+
* Import from this module in an app's startup path. The root barrel also
|
|
5
|
+
* re-exports the sign-in panels (`OxySignInPanel`, `OxyLinkCommonsPanel` and
|
|
6
|
+
* its QR code, `OxyConsentScreen`, …) for apps that embed them, and Metro does
|
|
7
|
+
* not tree-shake, so importing ANY symbol from `@oxy.so/services` ships all of
|
|
8
|
+
* them — even though the account dialog that normally shows them is loaded on
|
|
9
|
+
* demand. Nothing exported here reaches those panels; the packaging test
|
|
10
|
+
* `clientEntryIsolation` pins it.
|
|
6
11
|
*
|
|
7
12
|
* @example
|
|
8
13
|
* import { OxyProvider, useOxy, LogoIcon } from '@oxy.so/services/ui/client';
|
|
@@ -14,6 +19,8 @@ export type { OxyAuthPromptProps } from './components/OxyAuthPrompt';
|
|
|
14
19
|
export { LogoIcon } from './components/logo/LogoIcon';
|
|
15
20
|
export { LogoText } from './components/logo/LogoText';
|
|
16
21
|
export { default as FollowButton } from './components/FollowButton';
|
|
22
|
+
export { default as ProfileButton } from './components/ProfileButton';
|
|
23
|
+
export type { ProfileButtonProps } from './components/ProfileButton';
|
|
17
24
|
export { default as PeableButton } from './components/PeableButton';
|
|
18
25
|
export type { PeableButtonProps } from './components/PeableButton';
|
|
19
26
|
/** @deprecated Use `PeableButton` instead. */
|
|
@@ -25,9 +32,17 @@ export { useAuth } from './hooks/useAuth';
|
|
|
25
32
|
export type { AuthState, AuthActions, SignInOutcome, UseAuthReturn } from './hooks/useAuth';
|
|
26
33
|
export { createDeferredProductAnalytics } from './analytics/productAnalytics';
|
|
27
34
|
export type { OxyProductEvent, ProductAnalytics } from './analytics/productAnalytics';
|
|
28
|
-
export { useFollow } from './hooks/useFollow';
|
|
35
|
+
export { useFollow, useFollowerCounts, useSeedFollowStatuses } from './hooks/useFollow';
|
|
36
|
+
export { useFollowTarget } from './hooks/useFollowTarget';
|
|
37
|
+
export type { UseFollowTargetResult } from './hooks/useFollowTarget';
|
|
38
|
+
export { useUserProfile, useUserProfiles, useCurrentUser, useUserById, useUserByUsername, } from './hooks/queries/useAccountQueries';
|
|
29
39
|
export { useStorage } from './hooks/useStorage';
|
|
30
40
|
export type { UseStorageOptions, UseStorageResult } from './hooks/useStorage';
|
|
41
|
+
export { buildFollowMenuItems, resolveFollowPrimaryAction, FOLLOW_ACTION_LEAVES_ACTIVE, } from './components/followRules';
|
|
42
|
+
export type { FollowDuration, FollowMenuItem } from './components/followRules';
|
|
43
|
+
export { queryKeys, invalidateAccountQueries, invalidateUserQueries, invalidateSessionQueries, invalidateDeviceQueries, invalidatePrivacyQueries, invalidateSecurityQueries, invalidateStorageQueries, invalidatePaymentsQueries, invalidateConnectedAppsQueries, invalidateAuthMethodsQueries, } from './hooks/queries/queryKeys';
|
|
44
|
+
export { upsertCachedUser, upsertCachedUsers, CLEARABLE_USER_FIELDS, clearedFieldsFromProfileUpdate, clearedFieldsFromAccountUpdate, } from './hooks/queries/userCache';
|
|
45
|
+
export type { CacheableUser, ClearableUserField, UpsertCachedUserOptions, } from './hooks/queries/userCache';
|
|
31
46
|
export { useAuthStore } from './stores/authStore';
|
|
32
47
|
export { handleAuthError, isInvalidSessionError, isTimeoutOrNetworkError, extractErrorMessage, } from './utils/errorHandlers';
|
|
33
48
|
export type { HandleAuthErrorOptions } from './utils/errorHandlers';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/ui/client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/ui/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,8CAA8C;AAC9C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,mDAAmD;AACnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGvF,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EACH,cAAc,EACd,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM9E,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,GAC9B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EACH,SAAS,EACT,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,8BAA8B,EAC9B,8BAA8B,GACjC,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACR,aAAa,EACb,kBAAkB,EAClB,uBAAuB,GAC1B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EACH,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -30,8 +30,9 @@
|
|
|
30
30
|
* `/v2/follows`. When it is, that component is deleted and this one takes the
|
|
31
31
|
* name — not aliased, not deprecated in place.
|
|
32
32
|
*/
|
|
33
|
-
import type {
|
|
33
|
+
import type { FollowStatus } from '@oxy.so/contracts';
|
|
34
34
|
import type { StyleProp, ViewStyle } from 'react-native';
|
|
35
|
+
import { type FollowDuration } from './followRules';
|
|
35
36
|
/**
|
|
36
37
|
* The small vocabulary of verbs the ecosystem actually uses. An application
|
|
37
38
|
* whose verb is not here passes `labels` instead — the escape hatch exists so
|
|
@@ -48,67 +49,6 @@ export interface FollowLabels {
|
|
|
48
49
|
/** Following globally, but switched off in this application. */
|
|
49
50
|
disabled: string;
|
|
50
51
|
}
|
|
51
|
-
/** A timed-follow choice offered in the menu. */
|
|
52
|
-
export interface FollowDuration {
|
|
53
|
-
label: string;
|
|
54
|
-
seconds: number;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Whether an action leaves the target ACTIVE in this application.
|
|
58
|
-
*
|
|
59
|
-
* One table, read by both the primary button and the menu, because the same
|
|
60
|
-
* action reached from two controls once reported differently — and a rule
|
|
61
|
-
* living in two switch statements is a rule that drifts. `Record` rather than
|
|
62
|
-
* a function with a default, so a new action is a compile error instead of a
|
|
63
|
-
* silent `false`.
|
|
64
|
-
*/
|
|
65
|
-
export declare const FOLLOW_ACTION_LEAVES_ACTIVE: Record<'follow' | 'follow-timed' | 'enable-here' | 'disable-here' | 'unfollow', boolean>;
|
|
66
|
-
/** One line in the disclosure menu. */
|
|
67
|
-
export interface FollowMenuItem {
|
|
68
|
-
key: string;
|
|
69
|
-
label: string;
|
|
70
|
-
/** What the component should call. Named so the table below stays pure. */
|
|
71
|
-
action: {
|
|
72
|
-
type: 'follow-timed';
|
|
73
|
-
seconds: number;
|
|
74
|
-
durationLabel: string;
|
|
75
|
-
} | {
|
|
76
|
-
type: 'enable-here';
|
|
77
|
-
} | {
|
|
78
|
-
type: 'disable-here';
|
|
79
|
-
} | {
|
|
80
|
-
type: 'unfollow';
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Which choices exist, given the state.
|
|
85
|
-
*
|
|
86
|
-
* Pure and exported because this is the product decision, not a rendering
|
|
87
|
-
* detail: a timed follow is only offered before following, turning it off here
|
|
88
|
-
* is only offered while following, and NEITHER is offered before the server has
|
|
89
|
-
* answered — every one of them addresses a relationship that does not exist
|
|
90
|
-
* yet, so offering them mid-write would mean sending a guessed id.
|
|
91
|
-
*/
|
|
92
|
-
/**
|
|
93
|
-
* What the main button should do for the current state.
|
|
94
|
-
*
|
|
95
|
-
* Exported because the product rule is not obvious from the label alone: a
|
|
96
|
-
* follow switched off here still reads as "following" globally, so the primary
|
|
97
|
-
* press must re-enable here — not unfollow everywhere.
|
|
98
|
-
*/
|
|
99
|
-
export declare function resolveFollowPrimaryAction(input: {
|
|
100
|
-
isFollowing: boolean;
|
|
101
|
-
applicationMode: FollowApplicationMode;
|
|
102
|
-
}): 'follow' | 'unfollow' | 'enable-here';
|
|
103
|
-
export declare function buildFollowMenuItems(input: {
|
|
104
|
-
following: boolean;
|
|
105
|
-
applicationMode: FollowApplicationMode;
|
|
106
|
-
hasRelationship: boolean;
|
|
107
|
-
isPending: boolean;
|
|
108
|
-
durations: FollowDuration[] | false;
|
|
109
|
-
idleVerb: string;
|
|
110
|
-
applicationName: string;
|
|
111
|
-
}): FollowMenuItem[];
|
|
112
52
|
export interface FollowTargetButtonProps {
|
|
113
53
|
/** The registered target's id. Registration is separate — see the SDK. */
|
|
114
54
|
targetId: string;
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"FollowTargetButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowTargetButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAkBzD,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,eAAe,CAAC;AAEvB;;;;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;AA2BD,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACrC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,kBAAkB,+DAkL7B,CAAC"}
|