@oxyhq/services 5.26.4 → 5.27.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/dist/web/oxy-services.esm.js +2 -0
- package/dist/web/oxy-services.esm.js.map +1 -0
- package/dist/web/types/assets/icons/OxyServices.d.ts +28 -0
- package/dist/web/types/assets/illustrations/HighFive.d.ts +8 -0
- package/dist/web/types/constants/version.d.ts +13 -0
- package/dist/web/types/core/AuthManager.d.ts +143 -0
- package/dist/web/types/core/CrossDomainAuth.d.ts +160 -0
- package/dist/web/types/core/HttpService.d.ts +163 -0
- package/dist/web/types/core/OxyServices.base.d.ts +126 -0
- package/dist/web/types/core/OxyServices.d.ts +81 -0
- package/dist/web/types/core/OxyServices.errors.d.ts +11 -0
- package/dist/web/types/core/index.d.ts +20 -0
- package/dist/web/types/core/mixins/OxyServices.analytics.d.ts +66 -0
- package/dist/web/types/core/mixins/OxyServices.assets.d.ts +135 -0
- package/dist/web/types/core/mixins/OxyServices.auth.d.ts +186 -0
- package/dist/web/types/core/mixins/OxyServices.developer.d.ts +99 -0
- package/dist/web/types/core/mixins/OxyServices.devices.d.ts +96 -0
- package/dist/web/types/core/mixins/OxyServices.features.d.ts +228 -0
- package/dist/web/types/core/mixins/OxyServices.fedcm.d.ts +200 -0
- package/dist/web/types/core/mixins/OxyServices.karma.d.ts +85 -0
- package/dist/web/types/core/mixins/OxyServices.language.d.ts +81 -0
- package/dist/web/types/core/mixins/OxyServices.location.d.ts +64 -0
- package/dist/web/types/core/mixins/OxyServices.payment.d.ts +111 -0
- package/dist/web/types/core/mixins/OxyServices.popup.d.ts +205 -0
- package/dist/web/types/core/mixins/OxyServices.privacy.d.ts +122 -0
- package/dist/web/types/core/mixins/OxyServices.redirect.d.ts +245 -0
- package/dist/web/types/core/mixins/OxyServices.security.d.ts +78 -0
- package/dist/web/types/core/mixins/OxyServices.user.d.ts +184 -0
- package/dist/web/types/core/mixins/OxyServices.utility.d.ts +93 -0
- package/dist/web/types/core/mixins/index.d.ts +30 -0
- package/dist/web/types/core/mixins/mixinHelpers.d.ts +31 -0
- package/dist/web/types/crypto/index.d.ts +11 -0
- package/dist/web/types/crypto/keyManager.d.ts +189 -0
- package/dist/web/types/crypto/polyfill.d.ts +12 -0
- package/dist/web/types/crypto/recoveryPhrase.d.ts +58 -0
- package/dist/web/types/crypto/signatureService.d.ts +86 -0
- package/dist/web/types/i18n/index.d.ts +3 -0
- package/dist/web/types/index.d.ts +62 -0
- package/dist/web/types/lib/sonner-safe.d.ts +8 -0
- package/dist/web/types/lib/sonner.d.ts +11 -0
- package/dist/web/types/lib/sonner.web.d.ts +14 -0
- package/dist/web/types/models/interfaces.d.ts +415 -0
- package/dist/web/types/models/session.d.ts +27 -0
- package/dist/web/types/node/index.d.ts +9 -0
- package/dist/web/types/shared/index.d.ts +28 -0
- package/dist/web/types/shared/utils/colorUtils.d.ts +104 -0
- package/dist/web/types/shared/utils/debugUtils.d.ts +48 -0
- package/dist/web/types/shared/utils/errorUtils.d.ts +97 -0
- package/dist/web/types/shared/utils/index.d.ts +13 -0
- package/dist/web/types/shared/utils/networkUtils.d.ts +139 -0
- package/dist/web/types/shared/utils/themeUtils.d.ts +90 -0
- package/dist/web/types/ui/client.d.ts +33 -0
- package/dist/web/types/ui/components/ActivityIndicator.d.ts +44 -0
- package/dist/web/types/ui/components/AnimationExample.d.ts +3 -0
- package/dist/web/types/ui/components/AutoHeightScrollView.d.ts +22 -0
- package/dist/web/types/ui/components/Avatar.d.ts +60 -0
- package/dist/web/types/ui/components/BottomSheet.d.ts +28 -0
- package/dist/web/types/ui/components/BottomSheetRouter.d.ts +8 -0
- package/dist/web/types/ui/components/CrossFadeIcon.d.ts +26 -0
- package/dist/web/types/ui/components/EmptyState.d.ts +7 -0
- package/dist/web/types/ui/components/ErrorBoundary.d.ts +30 -0
- package/dist/web/types/ui/components/FollowButton.d.ts +17 -0
- package/dist/web/types/ui/components/FontLoader.d.ts +14 -0
- package/dist/web/types/ui/components/GroupedItem.d.ts +23 -0
- package/dist/web/types/ui/components/GroupedSection.d.ts +24 -0
- package/dist/web/types/ui/components/Header.d.ts +37 -0
- package/dist/web/types/ui/components/HelperText.d.ts +46 -0
- package/dist/web/types/ui/components/Icon.d.ts +59 -0
- package/dist/web/types/ui/components/IconButton/IconButton.d.ts +98 -0
- package/dist/web/types/ui/components/IconButton/utils.d.ts +18 -0
- package/dist/web/types/ui/components/LoadingState.d.ts +8 -0
- package/dist/web/types/ui/components/OxyLogo.d.ts +28 -0
- package/dist/web/types/ui/components/OxyPayButton.d.ts +28 -0
- package/dist/web/types/ui/components/OxyProvider.d.ts +33 -0
- package/dist/web/types/ui/components/OxySignInButton.d.ts +64 -0
- package/dist/web/types/ui/components/ProfileCard.d.ts +17 -0
- package/dist/web/types/ui/components/QuickActions.d.ts +14 -0
- package/dist/web/types/ui/components/Section.d.ts +11 -0
- package/dist/web/types/ui/components/SectionTitle.d.ts +9 -0
- package/dist/web/types/ui/components/SettingRow.d.ts +19 -0
- package/dist/web/types/ui/components/SignInModal.d.ts +17 -0
- package/dist/web/types/ui/components/StepBasedScreen.d.ts +25 -0
- package/dist/web/types/ui/components/Surface.d.ts +75 -0
- package/dist/web/types/ui/components/TextField/Addons/Outline.d.ts +15 -0
- package/dist/web/types/ui/components/TextField/Addons/Underline.d.ts +18 -0
- package/dist/web/types/ui/components/TextField/Adornment/TextFieldAdornment.d.ts +44 -0
- package/dist/web/types/ui/components/TextField/Adornment/TextFieldAffix.d.ts +72 -0
- package/dist/web/types/ui/components/TextField/Adornment/TextFieldIcon.d.ts +77 -0
- package/dist/web/types/ui/components/TextField/Adornment/enums.d.ts +12 -0
- package/dist/web/types/ui/components/TextField/Adornment/types.d.ts +11 -0
- package/dist/web/types/ui/components/TextField/Adornment/utils.d.ts +11 -0
- package/dist/web/types/ui/components/TextField/Label/InputLabel.d.ts +4 -0
- package/dist/web/types/ui/components/TextField/Label/LabelBackground.d.ts +3 -0
- package/dist/web/types/ui/components/TextField/TextFieldFlat.d.ts +3 -0
- package/dist/web/types/ui/components/TextField/TextFieldOutlined.d.ts +3 -0
- package/dist/web/types/ui/components/TextField/constants.d.ts +31 -0
- package/dist/web/types/ui/components/TextField/helpers.d.ts +96 -0
- package/dist/web/types/ui/components/TextField/types.d.ts +155 -0
- package/dist/web/types/ui/components/TextField.d.ts +191 -0
- package/dist/web/types/ui/components/TouchableRipple/Pressable.d.ts +12 -0
- package/dist/web/types/ui/components/TouchableRipple/TouchableRipple.d.ts +61 -0
- package/dist/web/types/ui/components/TouchableRipple/utils.d.ts +10 -0
- package/dist/web/types/ui/components/Typography/AnimatedText.d.ts +34 -0
- package/dist/web/types/ui/components/Typography/types.d.ts +18 -0
- package/dist/web/types/ui/components/WebOxyProvider.d.ts +51 -0
- package/dist/web/types/ui/components/feedback/FormInput.d.ts +19 -0
- package/dist/web/types/ui/components/feedback/ProgressIndicator.d.ts +10 -0
- package/dist/web/types/ui/components/feedback/constants.d.ts +4 -0
- package/dist/web/types/ui/components/feedback/feedbackStyles.d.ts +279 -0
- package/dist/web/types/ui/components/feedback/index.d.ts +6 -0
- package/dist/web/types/ui/components/feedback/types.d.ts +45 -0
- package/dist/web/types/ui/components/feedback/useFeedbackForm.d.ts +8 -0
- package/dist/web/types/ui/components/fileManagement/AnimatedButton.d.ts +15 -0
- package/dist/web/types/ui/components/fileManagement/FileDetailsModal.d.ts +14 -0
- package/dist/web/types/ui/components/fileManagement/FileViewer.d.ts +17 -0
- package/dist/web/types/ui/components/fileManagement/UploadPreview.d.ts +20 -0
- package/dist/web/types/ui/components/fileManagement/styles.d.ts +859 -0
- package/dist/web/types/ui/components/icon/FAIRWalletIcon.d.ts +8 -0
- package/dist/web/types/ui/components/icon/OxyIcon.d.ts +9 -0
- package/dist/web/types/ui/components/icon/index.d.ts +3 -0
- package/dist/web/types/ui/components/index.d.ts +16 -0
- package/dist/web/types/ui/components/internal/GroupedPillButtons.d.ts +17 -0
- package/dist/web/types/ui/components/internal/PinInput.d.ts +22 -0
- package/dist/web/types/ui/components/modals/DeleteAccountModal.d.ts +18 -0
- package/dist/web/types/ui/components/modals/index.d.ts +1 -0
- package/dist/web/types/ui/components/payment/PaymentDetailsStep.d.ts +20 -0
- package/dist/web/types/ui/components/payment/PaymentMethodStep.d.ts +13 -0
- package/dist/web/types/ui/components/payment/PaymentReviewStep.d.ts +15 -0
- package/dist/web/types/ui/components/payment/PaymentSuccessStep.d.ts +9 -0
- package/dist/web/types/ui/components/payment/PaymentSummaryStep.d.ts +14 -0
- package/dist/web/types/ui/components/payment/constants.d.ts +6 -0
- package/dist/web/types/ui/components/payment/index.d.ts +8 -0
- package/dist/web/types/ui/components/payment/paymentStyles.d.ts +395 -0
- package/dist/web/types/ui/components/payment/types.d.ts +39 -0
- package/dist/web/types/ui/components/photogrid/JustifiedPhotoGrid.d.ts +26 -0
- package/dist/web/types/ui/components/styles/overlay.d.ts +3 -0
- package/dist/web/types/ui/components/styles/shadow.d.ts +2 -0
- package/dist/web/types/ui/components/theming.d.ts +7 -0
- package/dist/web/types/ui/components/types.d.ts +79 -0
- package/dist/web/types/ui/components/utils/forwardRef.d.ts +11 -0
- package/dist/web/types/ui/components/utils/hasTouchHandler.d.ts +5 -0
- package/dist/web/types/ui/components/utils/roundLayoutSize.d.ts +1 -0
- package/dist/web/types/ui/components/utils/splitStyles.d.ts +19 -0
- package/dist/web/types/ui/constants/iconColors.d.ts +129 -0
- package/dist/web/types/ui/constants/spacing.d.ts +32 -0
- package/dist/web/types/ui/constants/theme.d.ts +96 -0
- package/dist/web/types/ui/context/OxyContext.d.ts +74 -0
- package/dist/web/types/ui/context/ThemeContext.d.ts +18 -0
- package/dist/web/types/ui/context/hooks/useAuthOperations.d.ts +39 -0
- package/dist/web/types/ui/context/hooks/useDeviceManagement.d.ts +26 -0
- package/dist/web/types/ui/context/hooks/useLanguageManagement.d.ts +24 -0
- package/dist/web/types/ui/context/hooks/useSessionManagement.d.ts +40 -0
- package/dist/web/types/ui/hooks/index.d.ts +6 -0
- package/dist/web/types/ui/hooks/mutations/index.d.ts +8 -0
- package/dist/web/types/ui/hooks/mutations/mutationFactory.d.ts +75 -0
- package/dist/web/types/ui/hooks/mutations/useAccountMutations.d.ts +68 -0
- package/dist/web/types/ui/hooks/mutations/useServicesMutations.d.ts +22 -0
- package/dist/web/types/ui/hooks/queries/index.d.ts +10 -0
- package/dist/web/types/ui/hooks/queries/queryKeys.d.ts +64 -0
- package/dist/web/types/ui/hooks/queries/useAccountQueries.d.ts +42 -0
- package/dist/web/types/ui/hooks/queries/useSecurityQueries.d.ts +14 -0
- package/dist/web/types/ui/hooks/queries/useServicesQueries.d.ts +31 -0
- package/dist/web/types/ui/hooks/queryClient.d.ts +18 -0
- package/dist/web/types/ui/hooks/useAssets.d.ts +34 -0
- package/dist/web/types/ui/hooks/useAsyncAction.d.ts +50 -0
- package/dist/web/types/ui/hooks/useAuth.d.ts +73 -0
- package/dist/web/types/ui/hooks/useColorScheme.d.ts +7 -0
- package/dist/web/types/ui/hooks/useDeviceManagement.d.ts +26 -0
- package/dist/web/types/ui/hooks/useFileDownloadUrl.d.ts +18 -0
- package/dist/web/types/ui/hooks/useFileFiltering.d.ts +28 -0
- package/dist/web/types/ui/hooks/useFollow.d.ts +61 -0
- package/dist/web/types/ui/hooks/useFollow.types.d.ts +32 -0
- package/dist/web/types/ui/hooks/useI18n.d.ts +4 -0
- package/dist/web/types/ui/hooks/useLanguageManagement.d.ts +24 -0
- package/dist/web/types/ui/hooks/useProfileEditing.d.ts +35 -0
- package/dist/web/types/ui/hooks/useQueryClient.d.ts +6 -0
- package/dist/web/types/ui/hooks/useSessionManagement.d.ts +40 -0
- package/dist/web/types/ui/hooks/useSessionSocket.d.ts +13 -0
- package/dist/web/types/ui/hooks/useSettingToggle.d.ts +56 -0
- package/dist/web/types/ui/hooks/useStorage.d.ts +15 -0
- package/dist/web/types/ui/hooks/useThemeColors.d.ts +93 -0
- package/dist/web/types/ui/hooks/useThemeStyles.d.ts +44 -0
- package/dist/web/types/ui/hooks/useWebSSO.d.ts +57 -0
- package/dist/web/types/ui/index.d.ts +7 -0
- package/dist/web/types/ui/isFrontend.d.ts +2 -0
- package/dist/web/types/ui/navigation/bottomSheetManager.d.ts +26 -0
- package/dist/web/types/ui/navigation/routes.d.ts +5 -0
- package/dist/web/types/ui/screens/AccountCenterScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/AccountOverviewScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/AccountSettingsScreen.d.ts +7 -0
- package/dist/web/types/ui/screens/AccountSwitcherScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/AccountVerificationScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/AppInfoScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/EditProfileFieldScreen.d.ts +12 -0
- package/dist/web/types/ui/screens/FAQScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/FeedbackScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/FileManagementScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/FollowersListScreen.d.ts +8 -0
- package/dist/web/types/ui/screens/FollowingListScreen.d.ts +8 -0
- package/dist/web/types/ui/screens/HelpSupportScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/HistoryViewScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/LanguageSelectorScreen.d.ts +6 -0
- package/dist/web/types/ui/screens/LearnMoreUsernamesScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/LegalDocumentsScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/OxyAuthScreen.d.ts +16 -0
- package/dist/web/types/ui/screens/PaymentGatewayScreen.d.ts +14 -0
- package/dist/web/types/ui/screens/PremiumSubscriptionScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/PrivacySettingsScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/ProfileScreen.d.ts +8 -0
- package/dist/web/types/ui/screens/SavesCollectionsScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/SearchSettingsScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/SessionManagementScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/UserLinksScreen.d.ts +14 -0
- package/dist/web/types/ui/screens/UserListScreen.d.ts +10 -0
- package/dist/web/types/ui/screens/WelcomeNewUserScreen.d.ts +12 -0
- package/dist/web/types/ui/screens/karma/KarmaAboutScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/karma/KarmaCenterScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/karma/KarmaFAQScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/karma/KarmaLeaderboardScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/karma/KarmaRewardsScreen.d.ts +4 -0
- package/dist/web/types/ui/screens/karma/KarmaRulesScreen.d.ts +4 -0
- package/dist/web/types/ui/server.d.ts +42 -0
- package/dist/web/types/ui/stores/accountStore.d.ts +33 -0
- package/dist/web/types/ui/stores/assetStore.d.ts +53 -0
- package/dist/web/types/ui/stores/authStore.d.ts +16 -0
- package/dist/web/types/ui/stores/fileStore.d.ts +30 -0
- package/dist/web/types/ui/stores/followStore.d.ts +24 -0
- package/dist/web/types/ui/styles/authStyles.d.ts +331 -0
- package/dist/web/types/ui/styles/fonts.d.ts +20 -0
- package/dist/web/types/ui/styles/index.d.ts +4 -0
- package/dist/web/types/ui/styles/spacing.d.ts +48 -0
- package/dist/web/types/ui/styles/theme.d.ts +67 -0
- package/dist/web/types/ui/types/fileManagement.d.ts +40 -0
- package/dist/web/types/ui/types/navigation.d.ts +36 -0
- package/dist/web/types/ui/utils/authHelpers.d.ts +98 -0
- package/dist/web/types/ui/utils/avatarUtils.d.ts +33 -0
- package/dist/web/types/ui/utils/colorUtils.d.ts +9 -0
- package/dist/web/types/ui/utils/confirmAction.d.ts +6 -0
- package/dist/web/types/ui/utils/errorHandlers.d.ts +34 -0
- package/dist/web/types/ui/utils/fileManagement.d.ts +86 -0
- package/dist/web/types/ui/utils/iconNames.d.ts +111 -0
- package/dist/web/types/ui/utils/sessionHelpers.d.ts +63 -0
- package/dist/web/types/ui/utils/storageHelpers.d.ts +27 -0
- package/dist/web/types/ui/utils/themeUtils.d.ts +10 -0
- package/dist/web/types/ui/utils/userUtils.d.ts +28 -0
- package/dist/web/types/utils/apiUtils.d.ts +53 -0
- package/dist/web/types/utils/asyncUtils.d.ts +58 -0
- package/dist/web/types/utils/cache.d.ts +127 -0
- package/dist/web/types/utils/deviceManager.d.ts +65 -0
- package/dist/web/types/utils/errorUtils.d.ts +46 -0
- package/dist/web/types/utils/hookUtils.d.ts +101 -0
- package/dist/web/types/utils/index.d.ts +6 -0
- package/dist/web/types/utils/languageUtils.d.ts +37 -0
- package/dist/web/types/utils/loggerUtils.d.ts +48 -0
- package/dist/web/types/utils/platform.d.ts +40 -0
- package/dist/web/types/utils/platformInit.d.ts +8 -0
- package/dist/web/types/utils/requestUtils.d.ts +123 -0
- package/dist/web/types/utils/sessionUtils.d.ts +54 -0
- package/dist/web/types/utils/validationUtils.d.ts +85 -0
- package/dist/web/types/web/WebOxyContext.d.ts +151 -0
- package/dist/web/types/web/index.d.ts +52 -0
- package/dist/web/types/web.d.ts +53 -0
- package/package.json +20 -6
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type SingleFollowResult = {
|
|
2
|
+
isFollowing: boolean;
|
|
3
|
+
isLoading: boolean;
|
|
4
|
+
error: string | null;
|
|
5
|
+
toggleFollow: () => Promise<void>;
|
|
6
|
+
setFollowStatus: (following: boolean) => void;
|
|
7
|
+
fetchStatus: () => Promise<void>;
|
|
8
|
+
clearError: () => void;
|
|
9
|
+
followerCount: number | null;
|
|
10
|
+
followingCount: number | null;
|
|
11
|
+
isLoadingCounts: boolean;
|
|
12
|
+
fetchUserCounts: () => Promise<void>;
|
|
13
|
+
setFollowerCount: (count: number) => void;
|
|
14
|
+
setFollowingCount: (count: number) => void;
|
|
15
|
+
};
|
|
16
|
+
export type MultiFollowResult = {
|
|
17
|
+
followData: Record<string, {
|
|
18
|
+
isFollowing: boolean;
|
|
19
|
+
isLoading: boolean;
|
|
20
|
+
error: string | null;
|
|
21
|
+
}>;
|
|
22
|
+
toggleFollowForUser: (userId: string) => Promise<void>;
|
|
23
|
+
setFollowStatusForUser: (userId: string, following: boolean) => void;
|
|
24
|
+
fetchStatusForUser: (userId: string) => Promise<void>;
|
|
25
|
+
fetchAllStatuses: () => Promise<void>;
|
|
26
|
+
clearErrorForUser: (userId: string) => void;
|
|
27
|
+
isAnyLoading: boolean;
|
|
28
|
+
hasAnyError: boolean;
|
|
29
|
+
allFollowing: boolean;
|
|
30
|
+
allNotFollowing: boolean;
|
|
31
|
+
};
|
|
32
|
+
export type UseFollowHook = (userId?: string | string[]) => SingleFollowResult | MultiFollowResult;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ApiError, User } from '../../models/interfaces';
|
|
2
|
+
import { type LanguageMetadata } from '../../utils/languageUtils';
|
|
3
|
+
import type { StorageInterface } from '../utils/storageHelpers';
|
|
4
|
+
export interface UseLanguageManagementOptions {
|
|
5
|
+
storage: StorageInterface | null;
|
|
6
|
+
languageKey: string;
|
|
7
|
+
onError?: (error: ApiError) => void;
|
|
8
|
+
logger?: (message: string, error?: unknown) => void;
|
|
9
|
+
}
|
|
10
|
+
export interface UseLanguageManagementResult {
|
|
11
|
+
currentLanguage: string;
|
|
12
|
+
metadata: LanguageMetadata | null;
|
|
13
|
+
languageName: string;
|
|
14
|
+
nativeLanguageName: string;
|
|
15
|
+
setLanguage: (languageId: string) => Promise<void>;
|
|
16
|
+
applyLanguagePreference: (user: User | null) => Promise<void>;
|
|
17
|
+
hydrateLanguage: () => Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Manage UI language state, persistence, and metadata derivation.
|
|
21
|
+
*
|
|
22
|
+
* @param options - Configuration for storage access and error reporting
|
|
23
|
+
*/
|
|
24
|
+
export declare const useLanguageManagement: ({ storage, languageKey, onError, logger, }: UseLanguageManagementOptions) => UseLanguageManagementResult;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface ProfileUpdateData {
|
|
2
|
+
displayName?: string;
|
|
3
|
+
lastName?: string;
|
|
4
|
+
username?: string;
|
|
5
|
+
email?: string;
|
|
6
|
+
bio?: string;
|
|
7
|
+
location?: string;
|
|
8
|
+
locations?: Array<{
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
label?: string;
|
|
12
|
+
coordinates?: {
|
|
13
|
+
lat: number;
|
|
14
|
+
lon: number;
|
|
15
|
+
};
|
|
16
|
+
}>;
|
|
17
|
+
links?: string[];
|
|
18
|
+
linksMetadata?: Array<{
|
|
19
|
+
url: string;
|
|
20
|
+
title?: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
image?: string;
|
|
23
|
+
id: string;
|
|
24
|
+
}>;
|
|
25
|
+
avatar?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Hook for managing profile editing operations
|
|
29
|
+
* Provides functions to update profile fields and handle saving
|
|
30
|
+
*/
|
|
31
|
+
export declare const useProfileEditing: () => {
|
|
32
|
+
saveProfile: (updates: ProfileUpdateData) => Promise<boolean>;
|
|
33
|
+
updateField: (field: string, value: any) => Promise<boolean>;
|
|
34
|
+
isSaving: boolean;
|
|
35
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ApiError, User } from '../../models/interfaces';
|
|
2
|
+
import type { ClientSession } from '../../models/session';
|
|
3
|
+
import { getStorageKeys, type StorageInterface } from '../utils/storageHelpers';
|
|
4
|
+
import type { OxyServices } from '../../core';
|
|
5
|
+
import type { QueryClient } from '@tanstack/react-query';
|
|
6
|
+
export interface UseSessionManagementOptions {
|
|
7
|
+
oxyServices: OxyServices;
|
|
8
|
+
storage: StorageInterface | null;
|
|
9
|
+
storageKeyPrefix?: string;
|
|
10
|
+
loginSuccess: (user: User) => void;
|
|
11
|
+
logoutStore: () => void;
|
|
12
|
+
applyLanguagePreference: (user: User) => Promise<void>;
|
|
13
|
+
onAuthStateChange?: (user: User | null) => void;
|
|
14
|
+
onError?: (error: ApiError) => void;
|
|
15
|
+
setAuthError?: (message: string | null) => void;
|
|
16
|
+
logger?: (message: string, error?: unknown) => void;
|
|
17
|
+
setTokenReady?: (ready: boolean) => void;
|
|
18
|
+
queryClient?: QueryClient | null;
|
|
19
|
+
}
|
|
20
|
+
export interface UseSessionManagementResult {
|
|
21
|
+
sessions: ClientSession[];
|
|
22
|
+
activeSessionId: string | null;
|
|
23
|
+
setActiveSessionId: (sessionId: string | null) => void;
|
|
24
|
+
updateSessions: (incoming: ClientSession[], options?: {
|
|
25
|
+
merge?: boolean;
|
|
26
|
+
}) => void;
|
|
27
|
+
switchSession: (sessionId: string) => Promise<User>;
|
|
28
|
+
refreshSessions: (activeUserId?: string) => Promise<void>;
|
|
29
|
+
clearSessionState: () => Promise<void>;
|
|
30
|
+
saveActiveSessionId: (sessionId: string) => Promise<void>;
|
|
31
|
+
trackRemovedSession: (sessionId: string) => void;
|
|
32
|
+
storageKeys: ReturnType<typeof getStorageKeys>;
|
|
33
|
+
isRefreshInFlight: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Manage session state, persistence, and high-level multi-session operations.
|
|
37
|
+
*
|
|
38
|
+
* @param options - Session management configuration
|
|
39
|
+
*/
|
|
40
|
+
export declare const useSessionManagement: ({ oxyServices, storage, storageKeyPrefix, loginSuccess, logoutStore, applyLanguagePreference, onAuthStateChange, onError, setAuthError, logger, setTokenReady, queryClient, }: UseSessionManagementOptions) => UseSessionManagementResult;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface UseSessionSocketProps {
|
|
2
|
+
userId: string | null | undefined;
|
|
3
|
+
activeSessionId: string | null | undefined;
|
|
4
|
+
currentDeviceId: string | null | undefined;
|
|
5
|
+
refreshSessions: () => Promise<void>;
|
|
6
|
+
logout: () => Promise<void>;
|
|
7
|
+
clearSessionState: () => Promise<void>;
|
|
8
|
+
baseURL: string;
|
|
9
|
+
onRemoteSignOut?: () => void;
|
|
10
|
+
onSessionRemoved?: (sessionId: string) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function useSessionSocket({ userId, activeSessionId, currentDeviceId, refreshSessions, logout, clearSessionState, baseURL, onRemoteSignOut, onSessionRemoved }: UseSessionSocketProps): void;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
interface UseSettingToggleOptions {
|
|
2
|
+
/** Initial value of the setting */
|
|
3
|
+
initialValue: boolean;
|
|
4
|
+
/** Function to save the setting to the server */
|
|
5
|
+
onSave: (value: boolean) => Promise<void>;
|
|
6
|
+
/** Success message when saving */
|
|
7
|
+
successMessage?: string;
|
|
8
|
+
/** Error message when save fails */
|
|
9
|
+
errorMessage?: string;
|
|
10
|
+
/** Whether to revert on error (default: true) */
|
|
11
|
+
revertOnError?: boolean;
|
|
12
|
+
/** Whether to show success toast (default: false) */
|
|
13
|
+
showSuccessToast?: boolean;
|
|
14
|
+
}
|
|
15
|
+
interface UseSettingToggleReturn {
|
|
16
|
+
/** Current value */
|
|
17
|
+
value: boolean;
|
|
18
|
+
/** Whether the setting is being saved */
|
|
19
|
+
isSaving: boolean;
|
|
20
|
+
/** Toggle the setting (optimistic update with revert on error) */
|
|
21
|
+
toggle: () => Promise<void>;
|
|
22
|
+
/** Set the value directly */
|
|
23
|
+
setValue: (value: boolean) => void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Hook for handling boolean toggle settings with optimistic updates.
|
|
27
|
+
* Automatically reverts to the previous value if the save fails.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* const { value, toggle, isSaving } = useSettingToggle({
|
|
31
|
+
* initialValue: user.notificationsEnabled,
|
|
32
|
+
* onSave: (value) => api.updateNotifications(value),
|
|
33
|
+
* errorMessage: 'Failed to update notifications',
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* <Switch value={value} onValueChange={toggle} disabled={isSaving} />
|
|
37
|
+
*/
|
|
38
|
+
export declare function useSettingToggle(options: UseSettingToggleOptions): UseSettingToggleReturn;
|
|
39
|
+
/**
|
|
40
|
+
* Hook for managing multiple toggle settings at once.
|
|
41
|
+
* Useful when you have several related boolean settings.
|
|
42
|
+
*/
|
|
43
|
+
export declare function useSettingToggles<T extends {
|
|
44
|
+
[K in keyof T]: boolean;
|
|
45
|
+
}>(options: {
|
|
46
|
+
initialValues: T;
|
|
47
|
+
onSave: (key: keyof T, value: boolean) => Promise<void>;
|
|
48
|
+
errorMessage?: string | ((key: keyof T) => string);
|
|
49
|
+
revertOnError?: boolean;
|
|
50
|
+
}): {
|
|
51
|
+
values: T;
|
|
52
|
+
savingKeys: Set<keyof T>;
|
|
53
|
+
toggle: (key: keyof T) => Promise<void>;
|
|
54
|
+
setValues: (values: Partial<T>) => void;
|
|
55
|
+
};
|
|
56
|
+
export default useSettingToggle;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ApiError } from '../../models/interfaces';
|
|
2
|
+
import { type StorageInterface } from '../utils/storageHelpers';
|
|
3
|
+
export interface UseStorageOptions {
|
|
4
|
+
onError?: (error: ApiError) => void;
|
|
5
|
+
logger?: (message: string, error?: unknown) => void;
|
|
6
|
+
}
|
|
7
|
+
export interface UseStorageResult {
|
|
8
|
+
storage: StorageInterface | null;
|
|
9
|
+
isReady: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Simple React hook that initializes platform-appropriate storage.
|
|
13
|
+
* Returns storage instance once ready, or null if initialization failed.
|
|
14
|
+
*/
|
|
15
|
+
export declare const useStorage: ({ onError, logger, }?: UseStorageOptions) => UseStorageResult;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reusable hook to get theme colors based on current color scheme
|
|
3
|
+
* Returns the Colors object for the current theme (light or dark)
|
|
4
|
+
*
|
|
5
|
+
* @returns Colors object for the current color scheme
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* const colors = useThemeColors();
|
|
10
|
+
* <View style={{ backgroundColor: colors.background }}>
|
|
11
|
+
* <Text style={{ color: colors.text }}>Hello</Text>
|
|
12
|
+
* </View>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare const useThemeColors: () => {
|
|
16
|
+
text: string;
|
|
17
|
+
background: string;
|
|
18
|
+
inputBackground: string;
|
|
19
|
+
tint: string;
|
|
20
|
+
icon: string;
|
|
21
|
+
tabIconDefault: string;
|
|
22
|
+
tabIconSelected: string;
|
|
23
|
+
card: string;
|
|
24
|
+
border: string;
|
|
25
|
+
secondaryText: string;
|
|
26
|
+
avatarBackground: string;
|
|
27
|
+
avatarText: string;
|
|
28
|
+
sidebarBackground: string;
|
|
29
|
+
sidebarItemActiveBackground: string;
|
|
30
|
+
sidebarItemActiveText: string;
|
|
31
|
+
sidebarIconHome: string;
|
|
32
|
+
sidebarIconPersonalInfo: string;
|
|
33
|
+
sidebarIconSecurity: string;
|
|
34
|
+
sidebarIconPassword: string;
|
|
35
|
+
sidebarIconDevices: string;
|
|
36
|
+
sidebarIconData: string;
|
|
37
|
+
sidebarIconSharing: string;
|
|
38
|
+
sidebarIconFamily: string;
|
|
39
|
+
sidebarIconPayments: string;
|
|
40
|
+
sidebarIconStorage: string;
|
|
41
|
+
iconHome: string;
|
|
42
|
+
iconPrimary: string;
|
|
43
|
+
iconPersonalInfo: string;
|
|
44
|
+
iconSuccess: string;
|
|
45
|
+
iconSecurity: string;
|
|
46
|
+
iconData: string;
|
|
47
|
+
iconPurple: string;
|
|
48
|
+
iconSharing: string;
|
|
49
|
+
iconRed: string;
|
|
50
|
+
iconPayments: string;
|
|
51
|
+
iconGold: string;
|
|
52
|
+
iconStorage: string;
|
|
53
|
+
iconOrange: string;
|
|
54
|
+
} | {
|
|
55
|
+
text: string;
|
|
56
|
+
background: string;
|
|
57
|
+
inputBackground: string;
|
|
58
|
+
tint: string;
|
|
59
|
+
icon: string;
|
|
60
|
+
tabIconDefault: string;
|
|
61
|
+
tabIconSelected: string;
|
|
62
|
+
card: string;
|
|
63
|
+
border: string;
|
|
64
|
+
secondaryText: string;
|
|
65
|
+
avatarBackground: string;
|
|
66
|
+
avatarText: string;
|
|
67
|
+
sidebarBackground: string;
|
|
68
|
+
sidebarItemActiveBackground: string;
|
|
69
|
+
sidebarItemActiveText: string;
|
|
70
|
+
sidebarIconHome: string;
|
|
71
|
+
sidebarIconPersonalInfo: string;
|
|
72
|
+
sidebarIconSecurity: string;
|
|
73
|
+
sidebarIconPassword: string;
|
|
74
|
+
sidebarIconDevices: string;
|
|
75
|
+
sidebarIconData: string;
|
|
76
|
+
sidebarIconSharing: string;
|
|
77
|
+
sidebarIconFamily: string;
|
|
78
|
+
sidebarIconPayments: string;
|
|
79
|
+
sidebarIconStorage: string;
|
|
80
|
+
iconHome: string;
|
|
81
|
+
iconPrimary: string;
|
|
82
|
+
iconPersonalInfo: string;
|
|
83
|
+
iconSuccess: string;
|
|
84
|
+
iconSecurity: string;
|
|
85
|
+
iconData: string;
|
|
86
|
+
iconPurple: string;
|
|
87
|
+
iconSharing: string;
|
|
88
|
+
iconRed: string;
|
|
89
|
+
iconPayments: string;
|
|
90
|
+
iconGold: string;
|
|
91
|
+
iconStorage: string;
|
|
92
|
+
iconOrange: string;
|
|
93
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Colors } from '../constants/theme';
|
|
2
|
+
export interface ThemeStyles {
|
|
3
|
+
textColor: string;
|
|
4
|
+
backgroundColor: string;
|
|
5
|
+
secondaryBackgroundColor: string;
|
|
6
|
+
borderColor: string;
|
|
7
|
+
mutedTextColor: string;
|
|
8
|
+
isDarkTheme: boolean;
|
|
9
|
+
primaryColor: string;
|
|
10
|
+
dangerColor: string;
|
|
11
|
+
successColor: string;
|
|
12
|
+
colorScheme: 'light' | 'dark';
|
|
13
|
+
colors: typeof Colors.light;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Reusable hook for theme styles
|
|
17
|
+
* Replaces duplicated themeStyles useMemo pattern across multiple screens
|
|
18
|
+
*
|
|
19
|
+
* Provides consistent theme colors across all service screens:
|
|
20
|
+
* - Base colors (text, background, borders)
|
|
21
|
+
* - Semantic colors (primary, danger, success)
|
|
22
|
+
* - Theme-aware calculations
|
|
23
|
+
* - Normalized color scheme and Colors object
|
|
24
|
+
*
|
|
25
|
+
* @param theme - Theme string ('light' | 'dark')
|
|
26
|
+
* @param colorSchemeFromHook - Optional color scheme from useColorScheme() hook. If not provided, will call useColorScheme() internally.
|
|
27
|
+
* @returns ThemeStyles object with consistent color values
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* const themeStyles = useThemeStyles(theme);
|
|
32
|
+
* <View style={{ backgroundColor: themeStyles.backgroundColor }}>
|
|
33
|
+
* <Text style={{ color: themeStyles.textColor }}>Hello</Text>
|
|
34
|
+
* </View>
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* const colorScheme = useColorScheme();
|
|
40
|
+
* const themeStyles = useThemeStyles(theme, colorScheme);
|
|
41
|
+
* const iconColor = themeStyles.colors.iconSecurity;
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare const useThemeStyles: (theme: string, colorSchemeFromHook?: string | null) => ThemeStyles;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web SSO Hook
|
|
3
|
+
*
|
|
4
|
+
* Handles cross-domain SSO for web apps using FedCM (Federated Credential Management).
|
|
5
|
+
*
|
|
6
|
+
* FedCM is the modern, privacy-preserving standard for cross-domain identity federation.
|
|
7
|
+
* It works across completely different TLDs (alia.onl, mention.earth, homiio.com, etc.)
|
|
8
|
+
* without relying on third-party cookies.
|
|
9
|
+
*
|
|
10
|
+
* For browsers without FedCM support, users will need to click a sign-in button
|
|
11
|
+
* which triggers a popup-based authentication flow.
|
|
12
|
+
*
|
|
13
|
+
* This is called automatically by OxyContext on web platforms.
|
|
14
|
+
*
|
|
15
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/FedCM_API
|
|
16
|
+
*/
|
|
17
|
+
import type { OxyServices } from '../../core/OxyServices';
|
|
18
|
+
import type { SessionLoginResponse } from '../../models/session';
|
|
19
|
+
interface UseWebSSOOptions {
|
|
20
|
+
oxyServices: OxyServices;
|
|
21
|
+
onSessionFound: (session: SessionLoginResponse) => Promise<void>;
|
|
22
|
+
onSSOUnavailable?: () => void;
|
|
23
|
+
onError?: (error: Error) => void;
|
|
24
|
+
enabled?: boolean;
|
|
25
|
+
}
|
|
26
|
+
interface UseWebSSOResult {
|
|
27
|
+
/** Manually trigger SSO check */
|
|
28
|
+
checkSSO: () => Promise<SessionLoginResponse | null>;
|
|
29
|
+
/** Trigger interactive FedCM sign-in (shows browser UI) */
|
|
30
|
+
signInWithFedCM: () => Promise<SessionLoginResponse | null>;
|
|
31
|
+
/** Whether SSO check is in progress */
|
|
32
|
+
isChecking: boolean;
|
|
33
|
+
/** Whether FedCM is supported in this browser */
|
|
34
|
+
isFedCMSupported: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check if we're running in a web browser environment (not React Native)
|
|
38
|
+
*/
|
|
39
|
+
declare function isWebBrowser(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Hook for automatic cross-domain web SSO
|
|
42
|
+
*
|
|
43
|
+
* Uses FedCM (Federated Credential Management) - the modern browser-native
|
|
44
|
+
* identity federation API. This is the same technology that powers
|
|
45
|
+
* Google's cross-domain SSO (YouTube, Gmail, Maps, etc.).
|
|
46
|
+
*
|
|
47
|
+
* Key benefits:
|
|
48
|
+
* - Works across different TLDs (alia.onl ↔ mention.earth ↔ homiio.com)
|
|
49
|
+
* - No third-party cookies required
|
|
50
|
+
* - Privacy-preserving (browser mediates identity, IdP can't track)
|
|
51
|
+
* - Automatic silent sign-in after initial authentication
|
|
52
|
+
*
|
|
53
|
+
* For browsers without FedCM (Firefox, older browsers), automatic SSO
|
|
54
|
+
* is not possible. Users will see a sign-in button instead.
|
|
55
|
+
*/
|
|
56
|
+
export declare function useWebSSO({ oxyServices, onSessionFound, onSSOUnavailable, onError, enabled, }: UseWebSSOOptions): UseWebSSOResult;
|
|
57
|
+
export { isWebBrowser };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare let OxyProvider: any, OxySignInButton: any, OxyLogo: any, Avatar: any, FollowButton: any, OxyPayButton: any, FontLoader: any, setupFonts: any, OxyIcon: any, useOxy: any, useAuth: any, useFollow: any, ProfileScreen: any, useAuthStore: any, useAccountStore: any, fontFamilies: any, fontStyles: any, toast: any, useStorage: any;
|
|
2
|
+
export { OxyProvider, OxySignInButton, OxyLogo, Avatar, FollowButton, OxyPayButton, FontLoader, setupFonts, OxyIcon, useOxy, useAuth, useFollow, ProfileScreen, useAuthStore, useAccountStore, fontFamilies, fontStyles, toast, useStorage, };
|
|
3
|
+
export { OxyServices } from '../core';
|
|
4
|
+
export type { User, LoginResponse, ApiError } from '../models/interfaces';
|
|
5
|
+
export { handleAuthError, isInvalidSessionError, isTimeoutOrNetworkError, extractErrorMessage, } from './utils/errorHandlers';
|
|
6
|
+
export type { HandleAuthErrorOptions } from './utils/errorHandlers';
|
|
7
|
+
export type { UseStorageOptions, UseStorageResult } from './hooks/useStorage';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { RouteName } from './routes';
|
|
2
|
+
/**
|
|
3
|
+
* Bottom Sheet State Manager
|
|
4
|
+
*/
|
|
5
|
+
export interface BottomSheetState {
|
|
6
|
+
currentScreen: RouteName | null;
|
|
7
|
+
screenProps: Record<string, unknown>;
|
|
8
|
+
currentStep?: number;
|
|
9
|
+
history: Array<{
|
|
10
|
+
screen: RouteName;
|
|
11
|
+
props: Record<string, unknown>;
|
|
12
|
+
step?: number;
|
|
13
|
+
}>;
|
|
14
|
+
isOpen: boolean;
|
|
15
|
+
fullScreen: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const bottomSheetStore: import("zustand").StoreApi<BottomSheetState>;
|
|
18
|
+
export declare const getState: () => BottomSheetState;
|
|
19
|
+
export declare const showBottomSheet: (screenOrConfig: RouteName | {
|
|
20
|
+
screen: RouteName;
|
|
21
|
+
props?: Record<string, unknown>;
|
|
22
|
+
fullScreen?: boolean;
|
|
23
|
+
}) => void;
|
|
24
|
+
export declare const closeBottomSheet: () => void;
|
|
25
|
+
export declare const goBack: () => boolean;
|
|
26
|
+
export declare const updateState: (updates: Partial<BottomSheetState>) => void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ComponentType } from 'react';
|
|
2
|
+
import type { BaseScreenProps } from '../types/navigation';
|
|
3
|
+
export type RouteName = 'OxyAuth' | 'AccountOverview' | 'AccountSettings' | 'AccountCenter' | 'AccountSwitcher' | 'AccountVerification' | 'SessionManagement' | 'PaymentGateway' | 'Profile' | 'LanguageSelector' | 'PrivacySettings' | 'SearchSettings' | 'FileManagement' | 'HelpSupport' | 'FAQ' | 'Feedback' | 'LegalDocuments' | 'AppInfo' | 'PremiumSubscription' | 'WelcomeNewUser' | 'UserLinks' | 'HistoryView' | 'SavesCollections' | 'EditProfileField' | 'LearnMoreUsernames' | 'KarmaCenter' | 'KarmaLeaderboard' | 'KarmaRewards' | 'KarmaRules' | 'AboutKarma' | 'KarmaFAQ' | 'FollowersList' | 'FollowingList';
|
|
4
|
+
export declare const getScreenComponent: (routeName: RouteName) => ComponentType<BaseScreenProps> | undefined;
|
|
5
|
+
export declare const isValidRoute: (routeName: string) => routeName is RouteName;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BaseScreenProps } from '../types/navigation';
|
|
3
|
+
/**
|
|
4
|
+
* Field types supported by EditProfileFieldScreen
|
|
5
|
+
*/
|
|
6
|
+
export type ProfileFieldType = 'displayName' | 'username' | 'email' | 'bio' | 'phone' | 'address' | 'birthday' | 'location' | 'locations' | 'links';
|
|
7
|
+
interface EditProfileFieldScreenProps extends BaseScreenProps {
|
|
8
|
+
/** The field type to edit */
|
|
9
|
+
fieldType?: ProfileFieldType;
|
|
10
|
+
}
|
|
11
|
+
declare const _default: React.NamedExoticComponent<EditProfileFieldScreenProps>;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BaseScreenProps } from '../types/navigation';
|
|
3
|
+
interface FollowersListScreenProps extends BaseScreenProps {
|
|
4
|
+
userId: string;
|
|
5
|
+
initialCount?: number;
|
|
6
|
+
}
|
|
7
|
+
declare const FollowersListScreen: React.FC<FollowersListScreenProps>;
|
|
8
|
+
export default FollowersListScreen;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BaseScreenProps } from '../types/navigation';
|
|
3
|
+
interface FollowingListScreenProps extends BaseScreenProps {
|
|
4
|
+
userId: string;
|
|
5
|
+
initialCount?: number;
|
|
6
|
+
}
|
|
7
|
+
declare const FollowingListScreen: React.FC<FollowingListScreenProps>;
|
|
8
|
+
export default FollowingListScreen;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OxyAuthScreen - Sign in with Oxy
|
|
3
|
+
*
|
|
4
|
+
* This screen is used by OTHER apps in the Oxy ecosystem to authenticate users.
|
|
5
|
+
* It presents two options:
|
|
6
|
+
* 1. Scan QR code with Oxy Accounts app
|
|
7
|
+
* 2. Open the Oxy Auth web flow
|
|
8
|
+
*
|
|
9
|
+
* Uses WebSocket for real-time authorization updates (with polling fallback).
|
|
10
|
+
* The Oxy Accounts app is where users manage their cryptographic identity.
|
|
11
|
+
* This screen should NOT be used within the Accounts app itself.
|
|
12
|
+
*/
|
|
13
|
+
import type React from 'react';
|
|
14
|
+
import type { BaseScreenProps } from '../types/navigation';
|
|
15
|
+
declare const OxyAuthScreen: React.FC<BaseScreenProps>;
|
|
16
|
+
export default OxyAuthScreen;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BaseScreenProps } from '../types/navigation';
|
|
3
|
+
import type { PaymentItem, PaymentGatewayResult } from '../components/payment';
|
|
4
|
+
export type { PaymentItem, PaymentGatewayResult };
|
|
5
|
+
interface PaymentGatewayScreenProps extends BaseScreenProps {
|
|
6
|
+
onPaymentResult?: (result: PaymentGatewayResult) => void;
|
|
7
|
+
amount: string | number;
|
|
8
|
+
currency?: string;
|
|
9
|
+
onClose?: () => void;
|
|
10
|
+
paymentItems?: PaymentItem[];
|
|
11
|
+
description?: string;
|
|
12
|
+
}
|
|
13
|
+
declare const PaymentGatewayScreen: React.FC<PaymentGatewayScreenProps>;
|
|
14
|
+
export default PaymentGatewayScreen;
|