@oxyhq/services 5.10.16 → 5.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -14
- package/lib/commonjs/assets/assets/icons/OxyServices.tsx +2 -2
- package/lib/commonjs/assets/assets/illustrations/HighFive.tsx +1 -1
- package/lib/commonjs/assets/icons/OxyServices.js +0 -2
- package/lib/commonjs/assets/icons/OxyServices.js.map +1 -1
- package/lib/commonjs/assets/illustrations/HighFive.js +0 -2
- package/lib/commonjs/assets/illustrations/HighFive.js.map +1 -1
- package/lib/commonjs/core/OxyServices.js +238 -25
- package/lib/commonjs/core/OxyServices.js.map +1 -1
- package/lib/commonjs/index.js +86 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/lib/sonner-safe.js +2 -0
- package/lib/commonjs/lib/sonner-safe.js.map +1 -1
- package/lib/commonjs/lib/sonner.js +2 -0
- package/lib/commonjs/lib/sonner.js.map +1 -1
- package/lib/commonjs/ui/components/Avatar.js +0 -2
- package/lib/commonjs/ui/components/Avatar.js.map +1 -1
- package/lib/commonjs/ui/components/FollowButton.js +4 -4
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- package/lib/commonjs/ui/components/FontLoader.js +3 -2
- package/lib/commonjs/ui/components/FontLoader.js.map +1 -1
- package/lib/commonjs/ui/components/GroupedItem.js +7 -4
- package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
- package/lib/commonjs/ui/components/GroupedSection.js +1 -1
- package/lib/commonjs/ui/components/GroupedSection.js.map +1 -1
- package/lib/commonjs/ui/components/Header.js +0 -1
- package/lib/commonjs/ui/components/Header.js.map +1 -1
- package/lib/commonjs/ui/components/OxyLogo.js +0 -2
- package/lib/commonjs/ui/components/OxyLogo.js.map +1 -1
- package/lib/commonjs/ui/components/OxyPayButton.js +4 -5
- package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +4 -3
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js +0 -1
- package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileCard.js +0 -1
- package/lib/commonjs/ui/components/ProfileCard.js.map +1 -1
- package/lib/commonjs/ui/components/QuickActions.js +0 -2
- package/lib/commonjs/ui/components/QuickActions.js.map +1 -1
- package/lib/commonjs/ui/components/Section.js +0 -1
- package/lib/commonjs/ui/components/Section.js.map +1 -1
- package/lib/commonjs/ui/components/SectionTitle.js +0 -2
- package/lib/commonjs/ui/components/SectionTitle.js.map +1 -1
- package/lib/commonjs/ui/components/icon/FAIRWalletIcon.js +0 -2
- package/lib/commonjs/ui/components/icon/FAIRWalletIcon.js.map +1 -1
- package/lib/commonjs/ui/components/icon/OxyIcon.js +0 -2
- package/lib/commonjs/ui/components/icon/OxyIcon.js.map +1 -1
- package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +0 -2
- package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +1 -1
- package/lib/commonjs/ui/components/internal/PinInput.js +4 -3
- package/lib/commonjs/ui/components/internal/PinInput.js.map +1 -1
- package/lib/commonjs/ui/components/internal/TextField.js +3 -3
- package/lib/commonjs/ui/components/internal/TextField.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAssets.js +263 -0
- package/lib/commonjs/ui/hooks/useAssets.js.map +1 -0
- package/lib/commonjs/ui/navigation/OxyRouter.js +1 -2
- package/lib/commonjs/ui/navigation/OxyRouter.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountCenterScreen.js +0 -2
- package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountManagementDemo.js +0 -1
- package/lib/commonjs/ui/screens/AccountManagementDemo.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +2 -2
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +5 -6
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AppInfoScreen.js +1 -2
- package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FileManagementScreen.js +631 -430
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +2 -2
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +1 -2
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +1 -2
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/RecoverAccountScreen.js +1 -2
- package/lib/commonjs/ui/screens/RecoverAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SessionManagementScreen.js +1 -2
- package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SignInScreen.js +1 -2
- package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/UserLinksScreen.js +0 -2
- package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js +1 -2
- package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js.map +1 -1
- package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js +1 -2
- package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js.map +1 -1
- package/lib/commonjs/ui/screens/internal/SignUpIdentityStep.js +1 -2
- package/lib/commonjs/ui/screens/internal/SignUpIdentityStep.js.map +1 -1
- package/lib/commonjs/ui/screens/internal/SignUpSecurityStep.js +1 -2
- package/lib/commonjs/ui/screens/internal/SignUpSecurityStep.js.map +1 -1
- package/lib/commonjs/ui/screens/internal/SignUpSummaryStep.js +0 -1
- package/lib/commonjs/ui/screens/internal/SignUpSummaryStep.js.map +1 -1
- package/lib/commonjs/ui/screens/internal/SignUpWelcomeStep.js +0 -1
- package/lib/commonjs/ui/screens/internal/SignUpWelcomeStep.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +0 -2
- package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +1 -2
- package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +1 -2
- package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +0 -2
- package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +1 -2
- package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
- package/lib/commonjs/ui/stores/assetStore.js +225 -0
- package/lib/commonjs/ui/stores/assetStore.js.map +1 -0
- package/lib/commonjs/ui/stores/authStore.js +1 -1
- package/lib/commonjs/ui/stores/authStore.js.map +1 -1
- package/lib/commonjs/ui/stores/fileStore.js +153 -0
- package/lib/commonjs/ui/stores/fileStore.js.map +1 -0
- package/lib/commonjs/ui/stores/followStore.js +2 -2
- package/lib/commonjs/ui/stores/followStore.js.map +1 -1
- package/lib/commonjs/utils/asyncUtils.js +1 -1
- package/lib/commonjs/utils/asyncUtils.js.map +1 -1
- package/lib/commonjs/utils/errorUtils.js +19 -11
- package/lib/commonjs/utils/errorUtils.js.map +1 -1
- package/lib/commonjs/utils/hookUtils.js +1 -1
- package/lib/commonjs/utils/hookUtils.js.map +1 -1
- package/lib/commonjs/utils/loggerUtils.js.map +1 -1
- package/lib/commonjs/utils/validationUtils.js +2 -2
- package/lib/commonjs/utils/validationUtils.js.map +1 -1
- package/lib/module/assets/assets/icons/OxyServices.tsx +2 -2
- package/lib/module/assets/assets/illustrations/HighFive.tsx +1 -1
- package/lib/module/assets/icons/OxyServices.js +0 -1
- package/lib/module/assets/icons/OxyServices.js.map +1 -1
- package/lib/module/assets/illustrations/HighFive.js +0 -1
- package/lib/module/assets/illustrations/HighFive.js.map +1 -1
- package/lib/module/core/OxyServices.js +238 -25
- package/lib/module/core/OxyServices.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/lib/sonner-safe.js +2 -0
- package/lib/module/lib/sonner-safe.js.map +1 -1
- package/lib/module/lib/sonner.js +3 -0
- package/lib/module/lib/sonner.js.map +1 -1
- package/lib/module/ui/components/Avatar.js +0 -1
- package/lib/module/ui/components/Avatar.js.map +1 -1
- package/lib/module/ui/components/FollowButton.js +4 -3
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- package/lib/module/ui/components/FontLoader.js +3 -2
- package/lib/module/ui/components/FontLoader.js.map +1 -1
- package/lib/module/ui/components/GroupedItem.js +7 -3
- package/lib/module/ui/components/GroupedItem.js.map +1 -1
- package/lib/module/ui/components/GroupedSection.js +1 -1
- package/lib/module/ui/components/GroupedSection.js.map +1 -1
- package/lib/module/ui/components/Header.js +0 -1
- package/lib/module/ui/components/Header.js.map +1 -1
- package/lib/module/ui/components/OxyLogo.js +0 -1
- package/lib/module/ui/components/OxyLogo.js.map +1 -1
- package/lib/module/ui/components/OxyPayButton.js +4 -4
- package/lib/module/ui/components/OxyPayButton.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +4 -2
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/OxySignInButton.js +0 -1
- package/lib/module/ui/components/OxySignInButton.js.map +1 -1
- package/lib/module/ui/components/ProfileCard.js +0 -1
- package/lib/module/ui/components/ProfileCard.js.map +1 -1
- package/lib/module/ui/components/QuickActions.js +0 -1
- package/lib/module/ui/components/QuickActions.js.map +1 -1
- package/lib/module/ui/components/Section.js +0 -1
- package/lib/module/ui/components/Section.js.map +1 -1
- package/lib/module/ui/components/SectionTitle.js +0 -1
- package/lib/module/ui/components/SectionTitle.js.map +1 -1
- package/lib/module/ui/components/icon/FAIRWalletIcon.js +0 -1
- package/lib/module/ui/components/icon/FAIRWalletIcon.js.map +1 -1
- package/lib/module/ui/components/icon/OxyIcon.js +0 -1
- package/lib/module/ui/components/icon/OxyIcon.js.map +1 -1
- package/lib/module/ui/components/internal/GroupedPillButtons.js +0 -1
- package/lib/module/ui/components/internal/GroupedPillButtons.js.map +1 -1
- package/lib/module/ui/components/internal/PinInput.js +4 -2
- package/lib/module/ui/components/internal/PinInput.js.map +1 -1
- package/lib/module/ui/components/internal/TextField.js +3 -3
- package/lib/module/ui/components/internal/TextField.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/useAssets.js +257 -0
- package/lib/module/ui/hooks/useAssets.js.map +1 -0
- package/lib/module/ui/navigation/OxyRouter.js +1 -1
- package/lib/module/ui/navigation/OxyRouter.js.map +1 -1
- package/lib/module/ui/screens/AccountCenterScreen.js +0 -1
- package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountManagementDemo.js +0 -1
- package/lib/module/ui/screens/AccountManagementDemo.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +2 -2
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSwitcherScreen.js +5 -5
- package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/module/ui/screens/AppInfoScreen.js +1 -1
- package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/module/ui/screens/FileManagementScreen.js +633 -432
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js +1 -1
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +1 -1
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/RecoverAccountScreen.js +1 -1
- package/lib/module/ui/screens/RecoverAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/SessionManagementScreen.js +1 -1
- package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/SignInScreen.js +1 -1
- package/lib/module/ui/screens/SignInScreen.js.map +1 -1
- package/lib/module/ui/screens/UserLinksScreen.js +0 -1
- package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
- package/lib/module/ui/screens/internal/SignInPasswordStep.js +1 -1
- package/lib/module/ui/screens/internal/SignInPasswordStep.js.map +1 -1
- package/lib/module/ui/screens/internal/SignInUsernameStep.js +1 -1
- package/lib/module/ui/screens/internal/SignInUsernameStep.js.map +1 -1
- package/lib/module/ui/screens/internal/SignUpIdentityStep.js +1 -1
- package/lib/module/ui/screens/internal/SignUpIdentityStep.js.map +1 -1
- package/lib/module/ui/screens/internal/SignUpSecurityStep.js +1 -1
- package/lib/module/ui/screens/internal/SignUpSecurityStep.js.map +1 -1
- package/lib/module/ui/screens/internal/SignUpSummaryStep.js +0 -1
- package/lib/module/ui/screens/internal/SignUpSummaryStep.js.map +1 -1
- package/lib/module/ui/screens/internal/SignUpWelcomeStep.js +0 -1
- package/lib/module/ui/screens/internal/SignUpWelcomeStep.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaAboutScreen.js +0 -1
- package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaCenterScreen.js +1 -1
- package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +1 -1
- package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +0 -1
- package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaRulesScreen.js +1 -1
- package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
- package/lib/module/ui/stores/assetStore.js +212 -0
- package/lib/module/ui/stores/assetStore.js.map +1 -0
- package/lib/module/ui/stores/authStore.js +1 -1
- package/lib/module/ui/stores/authStore.js.map +1 -1
- package/lib/module/ui/stores/fileStore.js +145 -0
- package/lib/module/ui/stores/fileStore.js.map +1 -0
- package/lib/module/ui/stores/followStore.js +2 -2
- package/lib/module/ui/stores/followStore.js.map +1 -1
- package/lib/module/ui/styles/fonts.js.map +1 -1
- package/lib/module/ui/styles/theme.js.map +1 -1
- package/lib/module/utils/asyncUtils.js +1 -1
- package/lib/module/utils/asyncUtils.js.map +1 -1
- package/lib/module/utils/errorUtils.js +19 -11
- package/lib/module/utils/errorUtils.js.map +1 -1
- package/lib/module/utils/hookUtils.js +1 -1
- package/lib/module/utils/hookUtils.js.map +1 -1
- package/lib/module/utils/loggerUtils.js.map +1 -1
- package/lib/module/utils/validationUtils.js +2 -2
- package/lib/module/utils/validationUtils.js.map +1 -1
- package/lib/typescript/assets/icons/OxyServices.d.ts +2 -2
- package/lib/typescript/assets/icons/OxyServices.d.ts.map +1 -1
- package/lib/typescript/assets/illustrations/HighFive.d.ts +1 -1
- package/lib/typescript/assets/illustrations/HighFive.d.ts.map +1 -1
- package/lib/typescript/core/OxyServices.d.ts +68 -12
- package/lib/typescript/core/OxyServices.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +3 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/lib/sonner-safe.d.ts +2 -1
- package/lib/typescript/lib/sonner-safe.d.ts.map +1 -1
- package/lib/typescript/lib/sonner.d.ts +11 -3
- package/lib/typescript/lib/sonner.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +105 -6
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/types/expo-vector-icons.d.ts +8 -1
- package/lib/typescript/types/express.d.ts +22 -3
- package/lib/typescript/ui/components/Avatar.d.ts +2 -2
- package/lib/typescript/ui/components/Avatar.d.ts.map +1 -1
- package/lib/typescript/ui/components/FollowButton.d.ts +2 -2
- package/lib/typescript/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/ui/components/FontLoader.d.ts +1 -1
- package/lib/typescript/ui/components/FontLoader.d.ts.map +1 -1
- package/lib/typescript/ui/components/GroupedItem.d.ts +2 -1
- package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -1
- package/lib/typescript/ui/components/GroupedSection.d.ts +2 -1
- package/lib/typescript/ui/components/GroupedSection.d.ts.map +1 -1
- package/lib/typescript/ui/components/Header.d.ts +1 -1
- package/lib/typescript/ui/components/Header.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxyLogo.d.ts +2 -2
- package/lib/typescript/ui/components/OxyLogo.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxyPayButton.d.ts +2 -2
- package/lib/typescript/ui/components/OxyPayButton.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxyProvider.d.ts +2 -2
- package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxySignInButton.d.ts +2 -2
- package/lib/typescript/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/ui/components/ProfileCard.d.ts +1 -1
- package/lib/typescript/ui/components/ProfileCard.d.ts.map +1 -1
- package/lib/typescript/ui/components/QuickActions.d.ts +1 -1
- package/lib/typescript/ui/components/QuickActions.d.ts.map +1 -1
- package/lib/typescript/ui/components/Section.d.ts +1 -1
- package/lib/typescript/ui/components/Section.d.ts.map +1 -1
- package/lib/typescript/ui/components/SectionTitle.d.ts +1 -1
- package/lib/typescript/ui/components/SectionTitle.d.ts.map +1 -1
- package/lib/typescript/ui/components/icon/FAIRWalletIcon.d.ts +1 -1
- package/lib/typescript/ui/components/icon/FAIRWalletIcon.d.ts.map +1 -1
- package/lib/typescript/ui/components/icon/OxyIcon.d.ts +1 -1
- package/lib/typescript/ui/components/icon/OxyIcon.d.ts.map +1 -1
- package/lib/typescript/ui/components/internal/GroupedPillButtons.d.ts +1 -1
- package/lib/typescript/ui/components/internal/GroupedPillButtons.d.ts.map +1 -1
- package/lib/typescript/ui/components/internal/PinInput.d.ts +1 -1
- package/lib/typescript/ui/components/internal/PinInput.d.ts.map +1 -1
- package/lib/typescript/ui/components/internal/TextField.d.ts +1 -1
- package/lib/typescript/ui/components/internal/TextField.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +3 -3
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useAssets.d.ts +35 -0
- package/lib/typescript/ui/hooks/useAssets.d.ts.map +1 -0
- package/lib/typescript/ui/navigation/OxyRouter.d.ts +2 -2
- package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +1 -1
- package/lib/typescript/ui/navigation/types.d.ts +7 -7
- package/lib/typescript/ui/navigation/types.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountCenterScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountManagementDemo.d.ts +1 -1
- package/lib/typescript/ui/screens/AccountManagementDemo.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AppInfoScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/FeedbackScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/FileManagementScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/ProfileScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SessionManagementScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SignInScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/SignInScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SignUpScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/SignUpScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/UserLinksScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/UserLinksScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts +1 -1
- package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/internal/SignInUsernameStep.d.ts +1 -1
- package/lib/typescript/ui/screens/internal/SignInUsernameStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/internal/SignUpIdentityStep.d.ts +1 -1
- package/lib/typescript/ui/screens/internal/SignUpIdentityStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/internal/SignUpSecurityStep.d.ts +1 -1
- package/lib/typescript/ui/screens/internal/SignUpSecurityStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/internal/SignUpSummaryStep.d.ts +1 -1
- package/lib/typescript/ui/screens/internal/SignUpSummaryStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/internal/SignUpWelcomeStep.d.ts +1 -1
- package/lib/typescript/ui/screens/internal/SignUpWelcomeStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/assetStore.d.ts +54 -0
- package/lib/typescript/ui/stores/assetStore.d.ts.map +1 -0
- package/lib/typescript/ui/stores/fileStore.d.ts +31 -0
- package/lib/typescript/ui/stores/fileStore.d.ts.map +1 -0
- package/lib/typescript/ui/stores/followStore.d.ts +1 -1
- package/lib/typescript/ui/stores/followStore.d.ts.map +1 -1
- package/lib/typescript/ui/styles/fonts.d.ts +1 -1
- package/lib/typescript/ui/styles/fonts.d.ts.map +1 -1
- package/lib/typescript/ui/styles/theme.d.ts +1 -1
- package/lib/typescript/ui/styles/theme.d.ts.map +1 -1
- package/lib/typescript/utils/asyncUtils.d.ts.map +1 -1
- package/lib/typescript/utils/errorUtils.d.ts +5 -5
- package/lib/typescript/utils/errorUtils.d.ts.map +1 -1
- package/lib/typescript/utils/hookUtils.d.ts +4 -4
- package/lib/typescript/utils/hookUtils.d.ts.map +1 -1
- package/lib/typescript/utils/loggerUtils.d.ts +18 -18
- package/lib/typescript/utils/loggerUtils.d.ts.map +1 -1
- package/lib/typescript/utils/validationUtils.d.ts +6 -6
- package/lib/typescript/utils/validationUtils.d.ts.map +1 -1
- package/package.json +149 -143
- package/src/assets/icons/OxyServices.tsx +2 -2
- package/src/assets/illustrations/HighFive.tsx +1 -1
- package/src/core/OxyServices.ts +264 -40
- package/src/core/__tests__/OxyServices.test.ts +180 -0
- package/src/index.ts +15 -1
- package/src/lib/sonner-safe.ts +4 -1
- package/src/lib/sonner.ts +19 -2
- package/src/models/interfaces.ts +117 -6
- package/src/types/expo-vector-icons.d.ts +8 -1
- package/src/types/express.d.ts +22 -3
- package/src/ui/components/Avatar.tsx +2 -2
- package/src/ui/components/FollowButton.tsx +10 -8
- package/src/ui/components/FontLoader.tsx +5 -3
- package/src/ui/components/GroupedItem.tsx +12 -2
- package/src/ui/components/GroupedSection.tsx +3 -1
- package/src/ui/components/Header.tsx +1 -1
- package/src/ui/components/OxyLogo.tsx +2 -2
- package/src/ui/components/OxyPayButton.tsx +6 -5
- package/src/ui/components/OxyProvider.tsx +7 -4
- package/src/ui/components/OxySignInButton.tsx +2 -2
- package/src/ui/components/ProfileCard.tsx +1 -1
- package/src/ui/components/QuickActions.tsx +1 -1
- package/src/ui/components/Section.tsx +1 -1
- package/src/ui/components/SectionTitle.tsx +1 -1
- package/src/ui/components/icon/FAIRWalletIcon.tsx +1 -1
- package/src/ui/components/icon/OxyIcon.tsx +1 -1
- package/src/ui/components/internal/GroupedPillButtons.tsx +1 -1
- package/src/ui/components/internal/PinInput.tsx +3 -2
- package/src/ui/components/internal/TextField.tsx +9 -11
- package/src/ui/context/OxyContext.tsx +3 -3
- package/src/ui/hooks/useAssets.ts +306 -0
- package/src/ui/navigation/OxyRouter.tsx +3 -2
- package/src/ui/navigation/types.ts +8 -8
- package/src/ui/screens/AccountCenterScreen.tsx +2 -2
- package/src/ui/screens/AccountManagementDemo.tsx +1 -1
- package/src/ui/screens/AccountOverviewScreen.tsx +1 -1
- package/src/ui/screens/AccountSettingsScreen.tsx +3 -3
- package/src/ui/screens/AccountSwitcherScreen.tsx +9 -8
- package/src/ui/screens/AppInfoScreen.tsx +3 -2
- package/src/ui/screens/FeedbackScreen.tsx +1 -1
- package/src/ui/screens/FileManagementScreen.tsx +619 -494
- package/src/ui/screens/PaymentGatewayScreen.tsx +3 -2
- package/src/ui/screens/PremiumSubscriptionScreen.tsx +3 -2
- package/src/ui/screens/ProfileScreen.tsx +3 -2
- package/src/ui/screens/RecoverAccountScreen.tsx +3 -2
- package/src/ui/screens/SessionManagementScreen.tsx +4 -3
- package/src/ui/screens/SignInScreen.tsx +3 -2
- package/src/ui/screens/SignUpScreen.tsx +1 -1
- package/src/ui/screens/UserLinksScreen.tsx +2 -2
- package/src/ui/screens/internal/SignInPasswordStep.tsx +3 -2
- package/src/ui/screens/internal/SignInUsernameStep.tsx +3 -2
- package/src/ui/screens/internal/SignUpIdentityStep.tsx +3 -2
- package/src/ui/screens/internal/SignUpSecurityStep.tsx +3 -2
- package/src/ui/screens/internal/SignUpSummaryStep.tsx +1 -1
- package/src/ui/screens/internal/SignUpWelcomeStep.tsx +1 -1
- package/src/ui/screens/karma/KarmaAboutScreen.tsx +2 -2
- package/src/ui/screens/karma/KarmaCenterScreen.tsx +3 -2
- package/src/ui/screens/karma/KarmaFAQScreen.tsx +1 -1
- package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +3 -2
- package/src/ui/screens/karma/KarmaRewardsScreen.tsx +2 -2
- package/src/ui/screens/karma/KarmaRulesScreen.tsx +3 -2
- package/src/ui/stores/assetStore.ts +281 -0
- package/src/ui/stores/authStore.ts +1 -1
- package/src/ui/stores/fileStore.ts +118 -0
- package/src/ui/stores/followStore.ts +4 -4
- package/src/ui/styles/fonts.ts +1 -1
- package/src/ui/styles/theme.ts +1 -1
- package/src/utils/__tests__/validationUtils.test.ts +236 -0
- package/src/utils/asyncUtils.ts +4 -4
- package/src/utils/errorUtils.ts +35 -23
- package/src/utils/hookUtils.ts +7 -7
- package/src/utils/loggerUtils.ts +18 -18
- package/src/utils/validationUtils.ts +8 -8
package/src/models/interfaces.ts
CHANGED
|
@@ -9,13 +9,13 @@ export interface User {
|
|
|
9
9
|
avatar?: {
|
|
10
10
|
id?: string;
|
|
11
11
|
url?: string;
|
|
12
|
-
[key: string]:
|
|
12
|
+
[key: string]: unknown;
|
|
13
13
|
};
|
|
14
14
|
name?: {
|
|
15
15
|
first?: string;
|
|
16
16
|
last?: string;
|
|
17
17
|
full?: string; // virtual, not stored in DB, returned by API
|
|
18
|
-
[key: string]:
|
|
18
|
+
[key: string]: unknown;
|
|
19
19
|
};
|
|
20
20
|
bio?: string;
|
|
21
21
|
karma?: number;
|
|
@@ -29,7 +29,16 @@ export interface User {
|
|
|
29
29
|
image?: string;
|
|
30
30
|
link: string;
|
|
31
31
|
}>;
|
|
32
|
-
|
|
32
|
+
// Social counts - can be returned by API in different formats
|
|
33
|
+
_count?: {
|
|
34
|
+
followers?: number;
|
|
35
|
+
following?: number;
|
|
36
|
+
};
|
|
37
|
+
stats?: {
|
|
38
|
+
followers?: number;
|
|
39
|
+
following?: number;
|
|
40
|
+
};
|
|
41
|
+
[key: string]: unknown;
|
|
33
42
|
}
|
|
34
43
|
|
|
35
44
|
export interface LoginResponse {
|
|
@@ -111,7 +120,7 @@ export interface ApiError {
|
|
|
111
120
|
message: string;
|
|
112
121
|
code: string;
|
|
113
122
|
status: number;
|
|
114
|
-
details?:
|
|
123
|
+
details?: Record<string, unknown>;
|
|
115
124
|
}
|
|
116
125
|
|
|
117
126
|
export interface PaymentMethod {
|
|
@@ -163,8 +172,16 @@ export interface FileMetadata {
|
|
|
163
172
|
description?: string;
|
|
164
173
|
title?: string;
|
|
165
174
|
tags?: string[];
|
|
166
|
-
[key: string]:
|
|
175
|
+
[key: string]: unknown;
|
|
167
176
|
};
|
|
177
|
+
variants?: Array<{
|
|
178
|
+
type: string; // e.g. 'thumb', 'poster'
|
|
179
|
+
key: string; // storage key/path
|
|
180
|
+
width?: number;
|
|
181
|
+
height?: number;
|
|
182
|
+
readyAt?: string;
|
|
183
|
+
metadata?: Record<string, unknown>;
|
|
184
|
+
}>;
|
|
168
185
|
}
|
|
169
186
|
|
|
170
187
|
export interface FileUploadResponse {
|
|
@@ -183,7 +200,7 @@ export interface FileUpdateRequest {
|
|
|
183
200
|
description?: string;
|
|
184
201
|
title?: string;
|
|
185
202
|
tags?: string[];
|
|
186
|
-
[key: string]:
|
|
203
|
+
[key: string]: unknown;
|
|
187
204
|
};
|
|
188
205
|
}
|
|
189
206
|
|
|
@@ -193,6 +210,100 @@ export interface FileDeleteResponse {
|
|
|
193
210
|
fileId: string;
|
|
194
211
|
}
|
|
195
212
|
|
|
213
|
+
/**
|
|
214
|
+
* Central Asset Service interfaces
|
|
215
|
+
*/
|
|
216
|
+
export interface AssetLink {
|
|
217
|
+
app: string;
|
|
218
|
+
entityType: string;
|
|
219
|
+
entityId: string;
|
|
220
|
+
createdBy: string;
|
|
221
|
+
createdAt: string;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export interface AssetVariant {
|
|
225
|
+
type: string;
|
|
226
|
+
key: string;
|
|
227
|
+
width?: number;
|
|
228
|
+
height?: number;
|
|
229
|
+
readyAt?: string;
|
|
230
|
+
size?: number;
|
|
231
|
+
metadata?: Record<string, any>;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
export interface Asset {
|
|
235
|
+
id: string;
|
|
236
|
+
sha256: string;
|
|
237
|
+
size: number;
|
|
238
|
+
mime: string;
|
|
239
|
+
ext: string;
|
|
240
|
+
originalName?: string;
|
|
241
|
+
ownerUserId: string;
|
|
242
|
+
status: 'active' | 'trash' | 'deleted';
|
|
243
|
+
usageCount: number;
|
|
244
|
+
createdAt: string;
|
|
245
|
+
updatedAt: string;
|
|
246
|
+
links: AssetLink[];
|
|
247
|
+
variants: AssetVariant[];
|
|
248
|
+
metadata?: Record<string, any>;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
export interface AssetInitRequest {
|
|
252
|
+
sha256: string;
|
|
253
|
+
size: number;
|
|
254
|
+
mime: string;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
export interface AssetInitResponse {
|
|
258
|
+
uploadUrl: string;
|
|
259
|
+
fileId: string;
|
|
260
|
+
sha256: string;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export interface AssetCompleteRequest {
|
|
264
|
+
fileId: string;
|
|
265
|
+
originalName: string;
|
|
266
|
+
size: number;
|
|
267
|
+
mime: string;
|
|
268
|
+
metadata?: Record<string, any>;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
export interface AssetLinkRequest {
|
|
272
|
+
app: string;
|
|
273
|
+
entityType: string;
|
|
274
|
+
entityId: string;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
export interface AssetUnlinkRequest {
|
|
278
|
+
app: string;
|
|
279
|
+
entityType: string;
|
|
280
|
+
entityId: string;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
export interface AssetUrlResponse {
|
|
284
|
+
success: boolean;
|
|
285
|
+
url: string;
|
|
286
|
+
variant?: string;
|
|
287
|
+
expiresIn: number;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
export interface AssetDeleteSummary {
|
|
291
|
+
fileId: string;
|
|
292
|
+
wouldDelete: boolean;
|
|
293
|
+
affectedApps: string[];
|
|
294
|
+
remainingLinks: number;
|
|
295
|
+
variants: string[];
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export interface AssetUploadProgress {
|
|
299
|
+
fileId: string;
|
|
300
|
+
uploaded: number;
|
|
301
|
+
total: number;
|
|
302
|
+
percentage: number;
|
|
303
|
+
status: 'uploading' | 'processing' | 'complete' | 'error';
|
|
304
|
+
error?: string;
|
|
305
|
+
}
|
|
306
|
+
|
|
196
307
|
// Device Session interfaces
|
|
197
308
|
export interface DeviceSession {
|
|
198
309
|
sessionId: string;
|
package/src/types/express.d.ts
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
declare module 'express' {
|
|
2
|
-
export function Router():
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
export function Router(): {
|
|
3
|
+
get: (path: string, ...handlers: Array<(req: Request, res: Response, next: () => void) => void>) => void;
|
|
4
|
+
post: (path: string, ...handlers: Array<(req: Request, res: Response, next: () => void) => void>) => void;
|
|
5
|
+
put: (path: string, ...handlers: Array<(req: Request, res: Response, next: () => void) => void>) => void;
|
|
6
|
+
delete: (path: string, ...handlers: Array<(req: Request, res: Response, next: () => void) => void>) => void;
|
|
7
|
+
use: (path: string | (() => void), ...handlers: Array<(req: Request, res: Response, next: () => void) => void>) => void;
|
|
8
|
+
};
|
|
9
|
+
export interface Request {
|
|
10
|
+
body?: Record<string, unknown>;
|
|
11
|
+
params: Record<string, string>;
|
|
12
|
+
query: Record<string, string | string[]>;
|
|
13
|
+
headers: Record<string, string>;
|
|
14
|
+
user?: Record<string, unknown>;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
export interface Response {
|
|
18
|
+
status: (code: number) => Response;
|
|
19
|
+
json: (data: unknown) => Response;
|
|
20
|
+
send: (data: unknown) => Response;
|
|
21
|
+
redirect: (url: string) => Response;
|
|
22
|
+
[key: string]: unknown;
|
|
23
|
+
}
|
|
5
24
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { View, Text, Image, StyleSheet, StyleProp, ViewStyle, ImageStyle, TextStyle, ActivityIndicator, Platform } from 'react-native';
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { View, Text, Image, StyleSheet, type StyleProp, type ViewStyle, type ImageStyle, type TextStyle, ActivityIndicator, Platform } from 'react-native';
|
|
3
3
|
import { useThemeColors } from '../styles';
|
|
4
4
|
import { fontFamilies } from '../styles/fonts';
|
|
5
5
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { useEffect, useCallback } from 'react';
|
|
2
3
|
import {
|
|
3
4
|
TouchableOpacity,
|
|
4
5
|
Text,
|
|
5
6
|
StyleSheet,
|
|
6
|
-
ViewStyle,
|
|
7
|
-
TextStyle,
|
|
8
|
-
StyleProp,
|
|
7
|
+
type ViewStyle,
|
|
8
|
+
type TextStyle,
|
|
9
|
+
type StyleProp,
|
|
9
10
|
Platform,
|
|
10
11
|
ActivityIndicator
|
|
11
12
|
} from 'react-native';
|
|
@@ -86,17 +87,18 @@ const FollowButton: React.FC<FollowButtonProps> = ({
|
|
|
86
87
|
}, [isFollowing, animationProgress]);
|
|
87
88
|
|
|
88
89
|
// Button press handler
|
|
89
|
-
const handlePress = useCallback(async (event
|
|
90
|
+
const handlePress = useCallback(async (event?: { preventDefault?: () => void; stopPropagation?: () => void }) => {
|
|
90
91
|
if (preventParentActions && event && event.preventDefault) {
|
|
91
92
|
event.preventDefault();
|
|
92
|
-
event.stopPropagation();
|
|
93
|
+
event.stopPropagation?.();
|
|
93
94
|
}
|
|
94
95
|
if (disabled || isLoading) return;
|
|
95
96
|
try {
|
|
96
97
|
await toggleFollow?.();
|
|
97
98
|
if (onFollowChange) onFollowChange(!isFollowing);
|
|
98
|
-
} catch (err:
|
|
99
|
-
|
|
99
|
+
} catch (err: unknown) {
|
|
100
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
101
|
+
toast.error(error.message || 'Failed to update follow status');
|
|
100
102
|
}
|
|
101
103
|
}, [disabled, isLoading, toggleFollow, onFollowChange, isFollowing, preventParentActions]);
|
|
102
104
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
2
3
|
import { Text, View, ActivityIndicator, StyleSheet, Platform } from 'react-native';
|
|
3
4
|
import * as Font from 'expo-font';
|
|
4
5
|
|
|
@@ -160,8 +161,9 @@ export const setupFonts = async () => {
|
|
|
160
161
|
}
|
|
161
162
|
|
|
162
163
|
return true;
|
|
163
|
-
} catch (error:
|
|
164
|
-
|
|
164
|
+
} catch (error: unknown) {
|
|
165
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
166
|
+
console.warn('Error setting up fonts:', errorMessage);
|
|
165
167
|
return false;
|
|
166
168
|
}
|
|
167
169
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import type React from 'react';
|
|
2
2
|
import { View, Text, TouchableOpacity, StyleSheet, Image } from 'react-native';
|
|
3
3
|
import { Ionicons } from '@expo/vector-icons';
|
|
4
4
|
|
|
@@ -20,6 +20,7 @@ interface GroupedItemProps {
|
|
|
20
20
|
customIcon?: React.ReactNode;
|
|
21
21
|
multiRow?: boolean;
|
|
22
22
|
customContentBelow?: React.ReactNode;
|
|
23
|
+
dense?: boolean; // reduces internal padding
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
const GroupedItem: React.FC<GroupedItemProps> = ({
|
|
@@ -40,6 +41,7 @@ const GroupedItem: React.FC<GroupedItemProps> = ({
|
|
|
40
41
|
customIcon,
|
|
41
42
|
multiRow = false,
|
|
42
43
|
customContentBelow,
|
|
44
|
+
dense = false,
|
|
43
45
|
}) => {
|
|
44
46
|
const isDarkTheme = theme === 'dark';
|
|
45
47
|
const textColor = isDarkTheme ? '#FFFFFF' : '#000000';
|
|
@@ -56,7 +58,11 @@ const GroupedItem: React.FC<GroupedItemProps> = ({
|
|
|
56
58
|
];
|
|
57
59
|
|
|
58
60
|
const content = (
|
|
59
|
-
<View style={[
|
|
61
|
+
<View style={[
|
|
62
|
+
styles.groupedItemContent,
|
|
63
|
+
multiRow && styles.groupedItemContentMultiRow,
|
|
64
|
+
dense && styles.groupedItemContentDense,
|
|
65
|
+
]}>
|
|
60
66
|
{customIcon ? (
|
|
61
67
|
<View style={styles.actionIcon}>
|
|
62
68
|
{customIcon}
|
|
@@ -127,6 +133,10 @@ const styles = StyleSheet.create({
|
|
|
127
133
|
padding: 16,
|
|
128
134
|
width: '100%',
|
|
129
135
|
},
|
|
136
|
+
groupedItemContentDense: {
|
|
137
|
+
paddingVertical: 10,
|
|
138
|
+
paddingHorizontal: 12,
|
|
139
|
+
},
|
|
130
140
|
actionIcon: {
|
|
131
141
|
marginRight: 12,
|
|
132
142
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import type React from 'react';
|
|
2
2
|
import { View } from 'react-native';
|
|
3
3
|
import GroupedItem from './GroupedItem';
|
|
4
4
|
|
|
@@ -18,6 +18,7 @@ interface GroupedSectionItem {
|
|
|
18
18
|
customIcon?: React.ReactNode;
|
|
19
19
|
multiRow?: boolean;
|
|
20
20
|
customContentBelow?: React.ReactNode;
|
|
21
|
+
dense?: boolean;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
interface GroupedSectionProps {
|
|
@@ -47,6 +48,7 @@ const GroupedSection: React.FC<GroupedSectionProps> = ({ items, theme }) => {
|
|
|
47
48
|
customContent={item.customContent}
|
|
48
49
|
customIcon={item.customIcon}
|
|
49
50
|
multiRow={item.multiRow}
|
|
51
|
+
dense={item.dense}
|
|
50
52
|
customContentBelow={item.customContentBelow}
|
|
51
53
|
/>
|
|
52
54
|
))}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import type React from 'react';
|
|
2
2
|
import Svg, { Circle, Path } from 'react-native-svg';
|
|
3
|
-
import { ViewStyle } from 'react-native';
|
|
3
|
+
import type { ViewStyle } from 'react-native';
|
|
4
4
|
import { useThemeColors } from '../styles/theme';
|
|
5
5
|
|
|
6
6
|
interface OxyLogoProps {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import {
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { TouchableOpacity, Text, View, StyleSheet, type ViewStyle, type TextStyle, type StyleProp, type LayoutChangeEvent } from 'react-native';
|
|
3
4
|
import { fontFamilies } from '../styles/fonts';
|
|
4
5
|
import { useOxy } from '../context/OxyContext';
|
|
5
6
|
import type { PaymentItem } from '../screens/PaymentGatewayScreen';
|
|
@@ -93,9 +94,9 @@ function isColorDark(hex: string) {
|
|
|
93
94
|
let c = hex.replace('#', '');
|
|
94
95
|
if (c.length === 3) c = c.split('').map(x => x + x).join('');
|
|
95
96
|
if (c.length !== 6) return false;
|
|
96
|
-
const r = parseInt(c.substr(0, 2), 16);
|
|
97
|
-
const g = parseInt(c.substr(2, 2), 16);
|
|
98
|
-
const b = parseInt(c.substr(4, 2), 16);
|
|
97
|
+
const r = Number.parseInt(c.substr(0, 2), 16);
|
|
98
|
+
const g = Number.parseInt(c.substr(2, 2), 16);
|
|
99
|
+
const b = Number.parseInt(c.substr(4, 2), 16);
|
|
99
100
|
// Perceived luminance
|
|
100
101
|
return (0.299 * r + 0.587 * g + 0.114 * b) < 150;
|
|
101
102
|
}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { useCallback, useRef, useState, useEffect, useMemo } from 'react';
|
|
2
3
|
import { View, Text, StyleSheet, Dimensions, Platform, Animated, StatusBar, Keyboard, KeyboardEvent } from 'react-native';
|
|
3
4
|
import { SafeAreaProvider, useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
4
5
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
5
|
-
import { OxyProviderProps } from '../navigation/types';
|
|
6
|
+
import type { OxyProviderProps } from '../navigation/types';
|
|
6
7
|
import { OxyContextProvider, useOxy } from '../context/OxyContext';
|
|
7
8
|
import OxyRouter from '../navigation/OxyRouter';
|
|
8
9
|
import { FontLoader, setupFonts } from './FontLoader';
|
|
9
10
|
import { Toaster } from '../../lib/sonner';
|
|
10
11
|
|
|
11
12
|
// Import bottom sheet components directly - no longer a peer dependency
|
|
12
|
-
import { BottomSheetModal, BottomSheetBackdrop, BottomSheetBackdropProps, BottomSheetModalProvider, BottomSheetView, BottomSheetScrollView } from '@gorhom/bottom-sheet';
|
|
13
|
+
import { BottomSheetModal, BottomSheetBackdrop, type BottomSheetBackdropProps, BottomSheetModalProvider, BottomSheetView, BottomSheetScrollView } from '@gorhom/bottom-sheet';
|
|
13
14
|
import type { BottomSheetModalMethods as BottomSheetModalRef } from '@gorhom/bottom-sheet/lib/typescript/types';
|
|
14
15
|
|
|
15
16
|
// Initialize fonts automatically
|
|
@@ -145,7 +146,9 @@ const OxyBottomSheet: React.FC<OxyProviderProps> = ({
|
|
|
145
146
|
}
|
|
146
147
|
};
|
|
147
148
|
|
|
148
|
-
|
|
149
|
+
if (bottomSheetRef.current && typeof bottomSheetRef.current === 'object') {
|
|
150
|
+
console.log('Bottom sheet ref methods exposed:', Object.keys(bottomSheetRef.current));
|
|
151
|
+
}
|
|
149
152
|
}
|
|
150
153
|
}, [bottomSheetRef, modalRef]);
|
|
151
154
|
// Keyboard handling (unchanged)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { TouchableOpacity, Text, View, StyleSheet, ViewStyle, TextStyle, StyleProp, Platform } from 'react-native';
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { TouchableOpacity, Text, View, StyleSheet, type ViewStyle, type TextStyle, type StyleProp, Platform } from 'react-native';
|
|
3
3
|
import { useOxy } from '../context/OxyContext';
|
|
4
4
|
import OxyLogo from './OxyLogo';
|
|
5
5
|
import { fontFamilies } from '../styles/fonts';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { useRef } from 'react';
|
|
2
3
|
import { View, TextInput, StyleSheet, Platform } from 'react-native';
|
|
3
4
|
|
|
4
5
|
interface PinInputProps {
|
|
@@ -44,7 +45,7 @@ const PinInput: React.FC<PinInputProps> = ({ value, onChange, length = 6, disabl
|
|
|
44
45
|
{Array.from({ length }).map((_, idx) => (
|
|
45
46
|
<TextInput
|
|
46
47
|
key={idx}
|
|
47
|
-
ref={ref =>
|
|
48
|
+
ref={(ref) => { inputs.current[idx] = ref; }}
|
|
48
49
|
style={[
|
|
49
50
|
styles.pinInput,
|
|
50
51
|
{ borderColor: colors.primary, color: colors.text, backgroundColor: colors.inputBackground },
|
|
@@ -7,15 +7,15 @@ import {
|
|
|
7
7
|
ActivityIndicator,
|
|
8
8
|
StyleSheet,
|
|
9
9
|
Platform,
|
|
10
|
-
TextInputProps,
|
|
10
|
+
type TextInputProps,
|
|
11
11
|
Animated,
|
|
12
12
|
LayoutChangeEvent,
|
|
13
13
|
AccessibilityInfo,
|
|
14
|
-
StyleProp,
|
|
15
|
-
ViewStyle,
|
|
16
|
-
NativeSyntheticEvent,
|
|
17
|
-
TargetedEvent,
|
|
18
|
-
TextInputFocusEventData,
|
|
14
|
+
type StyleProp,
|
|
15
|
+
type ViewStyle,
|
|
16
|
+
type NativeSyntheticEvent,
|
|
17
|
+
type TargetedEvent,
|
|
18
|
+
type TextInputFocusEventData,
|
|
19
19
|
} from 'react-native';
|
|
20
20
|
import { Ionicons } from '@expo/vector-icons';
|
|
21
21
|
import Svg, { Path } from 'react-native-svg';
|
|
@@ -162,7 +162,7 @@ const formatters = {
|
|
|
162
162
|
},
|
|
163
163
|
currency: (value: string) => {
|
|
164
164
|
const cleaned = value.replace(/[^\d.]/g, '');
|
|
165
|
-
const num = parseFloat(cleaned);
|
|
165
|
+
const num = Number.parseFloat(cleaned);
|
|
166
166
|
return isNaN(num) ? value : `$${num.toFixed(2)}`;
|
|
167
167
|
}
|
|
168
168
|
};
|
|
@@ -267,10 +267,8 @@ const TextField = forwardRef<TextInput, TextFieldProps>(({
|
|
|
267
267
|
// Helper function to clone React elements with updated color
|
|
268
268
|
const cloneWithColor = (element: React.ReactNode, color: string): React.ReactNode => {
|
|
269
269
|
if (React.isValidElement(element) && element.type) {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
color: color,
|
|
273
|
-
});
|
|
270
|
+
// Avoid spreading props directly to satisfy TS complaining about non-object spread sources
|
|
271
|
+
return React.cloneElement(element as any, { color });
|
|
274
272
|
}
|
|
275
273
|
return element;
|
|
276
274
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React, { createContext, useContext, useEffect, useCallback, ReactNode, useMemo, useRef, useState } from 'react';
|
|
1
|
+
import React, { createContext, useContext, useEffect, useCallback, type ReactNode, useMemo, useRef, useState } from 'react';
|
|
2
2
|
import { View, Text } from 'react-native';
|
|
3
3
|
import { OxyServices } from '../../core';
|
|
4
|
-
import { User, ApiError } from '../../models/interfaces';
|
|
5
|
-
import { SessionLoginResponse, ClientSession, MinimalUserData } from '../../models/session';
|
|
4
|
+
import type { User, ApiError } from '../../models/interfaces';
|
|
5
|
+
import type { SessionLoginResponse, ClientSession, MinimalUserData } from '../../models/session';
|
|
6
6
|
import { DeviceManager } from '../../utils/deviceManager';
|
|
7
7
|
import { useSessionSocket } from '../hooks/useSessionSocket';
|
|
8
8
|
import { toast } from '../../lib/sonner';
|