@oxyhq/services 5.5.9 → 5.6.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/README.md +16 -2
- package/lib/commonjs/core/index.js +69 -82
- package/lib/commonjs/core/index.js.map +1 -1
- package/lib/commonjs/index.js +24 -183
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/node/index.js +0 -2
- package/lib/commonjs/node/index.js.map +1 -1
- package/lib/commonjs/ui/components/FollowButton.js +100 -229
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- package/lib/commonjs/ui/components/OxyPayButton.js +131 -0
- package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -0
- package/lib/commonjs/ui/components/OxyProvider.js +41 -198
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js +15 -2
- package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
- package/lib/commonjs/ui/components/icon/FAIRWalletIcon.js +66 -0
- package/lib/commonjs/ui/components/icon/FAIRWalletIcon.js.map +1 -0
- package/lib/commonjs/ui/components/icon/index.js +7 -0
- package/lib/commonjs/ui/components/icon/index.js.map +1 -1
- package/lib/commonjs/ui/components/index.js +7 -0
- package/lib/commonjs/ui/components/index.js.map +1 -1
- package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +14 -7
- package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +1 -1
- package/lib/commonjs/ui/components/internal/PinInput.js +108 -0
- package/lib/commonjs/ui/components/internal/PinInput.js.map +1 -0
- package/lib/commonjs/ui/components/internal/TextField.js +20 -0
- package/lib/commonjs/ui/components/internal/TextField.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +26 -36
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/index.js +2 -15
- package/lib/commonjs/ui/hooks/index.js.map +1 -1
- package/lib/commonjs/ui/hooks/useFollow.js +52 -136
- package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionSocket.js +52 -0
- package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -0
- package/lib/commonjs/ui/index.js +8 -191
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/navigation/OxyRouter.js +52 -60
- package/lib/commonjs/ui/navigation/OxyRouter.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountCenterScreen.js +18 -30
- package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js +4 -22
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +6 -14
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +37 -66
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AppInfoScreen.js +21 -44
- package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FeedbackScreen.js +44 -23
- package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FileManagementScreen.js +59 -78
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +1588 -0
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +22 -36
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/RecoverAccountScreen.js +269 -0
- package/lib/commonjs/ui/screens/RecoverAccountScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/SessionManagementScreen.js +47 -69
- package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SignInScreen.js +99 -333
- package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SignUpScreen.js +136 -340
- package/lib/commonjs/ui/screens/SignUpScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js +192 -0
- package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js.map +1 -0
- package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js +135 -0
- package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js.map +1 -0
- package/lib/commonjs/ui/screens/internal/SignUpIdentityStep.js +108 -0
- package/lib/commonjs/ui/screens/internal/SignUpIdentityStep.js.map +1 -0
- package/lib/commonjs/ui/screens/internal/SignUpSecurityStep.js +126 -0
- package/lib/commonjs/ui/screens/internal/SignUpSecurityStep.js.map +1 -0
- package/lib/commonjs/ui/screens/internal/SignUpSummaryStep.js +84 -0
- package/lib/commonjs/ui/screens/internal/SignUpSummaryStep.js.map +1 -0
- package/lib/commonjs/ui/screens/internal/SignUpWelcomeStep.js +59 -0
- package/lib/commonjs/ui/screens/internal/SignUpWelcomeStep.js.map +1 -0
- package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +15 -2
- package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
- package/lib/commonjs/ui/stores/authStore.js +31 -0
- package/lib/commonjs/ui/stores/authStore.js.map +1 -0
- package/lib/commonjs/ui/stores/followStore.js +124 -0
- package/lib/commonjs/ui/stores/followStore.js.map +1 -0
- package/lib/commonjs/ui/styles/index.js +0 -11
- package/lib/commonjs/ui/styles/index.js.map +1 -1
- package/lib/commonjs/ui/utils/confirmAction.js +28 -0
- package/lib/commonjs/ui/utils/confirmAction.js.map +1 -0
- package/lib/module/core/index.js +69 -81
- package/lib/module/core/index.js.map +1 -1
- package/lib/module/index.js +14 -17
- package/lib/module/index.js.map +1 -1
- package/lib/module/node/index.js +0 -3
- package/lib/module/node/index.js.map +1 -1
- package/lib/module/ui/components/FollowButton.js +100 -229
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- package/lib/module/ui/components/OxyPayButton.js +125 -0
- package/lib/module/ui/components/OxyPayButton.js.map +1 -0
- package/lib/module/ui/components/OxyProvider.js +42 -199
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/OxySignInButton.js +15 -2
- package/lib/module/ui/components/OxySignInButton.js.map +1 -1
- package/lib/module/ui/components/icon/FAIRWalletIcon.js +60 -0
- package/lib/module/ui/components/icon/FAIRWalletIcon.js.map +1 -0
- package/lib/module/ui/components/icon/index.js +1 -0
- package/lib/module/ui/components/icon/index.js.map +1 -1
- package/lib/module/ui/components/index.js +1 -0
- package/lib/module/ui/components/index.js.map +1 -1
- package/lib/module/ui/components/internal/GroupedPillButtons.js +15 -8
- package/lib/module/ui/components/internal/GroupedPillButtons.js.map +1 -1
- package/lib/module/ui/components/internal/PinInput.js +103 -0
- package/lib/module/ui/components/internal/PinInput.js.map +1 -0
- package/lib/module/ui/components/internal/TextField.js +20 -0
- package/lib/module/ui/components/internal/TextField.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +26 -36
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/index.js +1 -2
- package/lib/module/ui/hooks/index.js.map +1 -1
- package/lib/module/ui/hooks/useFollow.js +52 -137
- package/lib/module/ui/hooks/useFollow.js.map +1 -1
- package/lib/module/ui/hooks/useSessionSocket.js +47 -0
- package/lib/module/ui/hooks/useSessionSocket.js.map +1 -0
- package/lib/module/ui/index.js +2 -13
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/navigation/OxyRouter.js +53 -61
- package/lib/module/ui/navigation/OxyRouter.js.map +1 -1
- package/lib/module/ui/screens/AccountCenterScreen.js +6 -18
- package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountOverviewScreen.js +5 -23
- package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +7 -15
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSwitcherScreen.js +38 -67
- package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/module/ui/screens/AppInfoScreen.js +22 -45
- package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/module/ui/screens/FeedbackScreen.js +44 -23
- package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/module/ui/screens/FileManagementScreen.js +59 -78
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js +1583 -0
- package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -0
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js +23 -37
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/module/ui/screens/RecoverAccountScreen.js +263 -0
- package/lib/module/ui/screens/RecoverAccountScreen.js.map +1 -0
- package/lib/module/ui/screens/SessionManagementScreen.js +47 -69
- package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/SignInScreen.js +100 -334
- package/lib/module/ui/screens/SignInScreen.js.map +1 -1
- package/lib/module/ui/screens/SignUpScreen.js +137 -341
- package/lib/module/ui/screens/SignUpScreen.js.map +1 -1
- package/lib/module/ui/screens/internal/SignInPasswordStep.js +186 -0
- package/lib/module/ui/screens/internal/SignInPasswordStep.js.map +1 -0
- package/lib/module/ui/screens/internal/SignInUsernameStep.js +129 -0
- package/lib/module/ui/screens/internal/SignInUsernameStep.js.map +1 -0
- package/lib/module/ui/screens/internal/SignUpIdentityStep.js +102 -0
- package/lib/module/ui/screens/internal/SignUpIdentityStep.js.map +1 -0
- package/lib/module/ui/screens/internal/SignUpSecurityStep.js +120 -0
- package/lib/module/ui/screens/internal/SignUpSecurityStep.js.map +1 -0
- package/lib/module/ui/screens/internal/SignUpSummaryStep.js +79 -0
- package/lib/module/ui/screens/internal/SignUpSummaryStep.js.map +1 -0
- package/lib/module/ui/screens/internal/SignUpWelcomeStep.js +54 -0
- package/lib/module/ui/screens/internal/SignUpWelcomeStep.js.map +1 -0
- package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +16 -3
- package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
- package/lib/module/ui/stores/authStore.js +27 -0
- package/lib/module/ui/stores/authStore.js.map +1 -0
- package/lib/module/ui/stores/followStore.js +120 -0
- package/lib/module/ui/stores/followStore.js.map +1 -0
- package/lib/module/ui/styles/index.js +0 -1
- package/lib/module/ui/styles/index.js.map +1 -1
- package/lib/module/ui/utils/confirmAction.js +25 -0
- package/lib/module/ui/utils/confirmAction.js.map +1 -0
- package/lib/typescript/core/index.d.ts +28 -10
- package/lib/typescript/core/index.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +5 -4
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/secureSession.d.ts +0 -1
- package/lib/typescript/models/secureSession.d.ts.map +1 -1
- package/lib/typescript/node/index.d.ts +0 -1
- package/lib/typescript/node/index.d.ts.map +1 -1
- package/lib/typescript/ui/components/FollowButton.d.ts +1 -77
- package/lib/typescript/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxyPayButton.d.ts +29 -0
- package/lib/typescript/ui/components/OxyPayButton.d.ts.map +1 -0
- package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/ui/components/icon/FAIRWalletIcon.d.ts +8 -0
- package/lib/typescript/ui/components/icon/FAIRWalletIcon.d.ts.map +1 -0
- package/lib/typescript/ui/components/icon/index.d.ts +1 -0
- package/lib/typescript/ui/components/icon/index.d.ts.map +1 -1
- package/lib/typescript/ui/components/index.d.ts +1 -0
- package/lib/typescript/ui/components/index.d.ts.map +1 -1
- package/lib/typescript/ui/components/internal/GroupedPillButtons.d.ts.map +1 -1
- package/lib/typescript/ui/components/internal/PinInput.d.ts +12 -0
- package/lib/typescript/ui/components/internal/PinInput.d.ts.map +1 -0
- package/lib/typescript/ui/components/internal/TextField.d.ts +1 -0
- package/lib/typescript/ui/components/internal/TextField.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +0 -2
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/index.d.ts +1 -2
- package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useFollow.d.ts +14 -15
- package/lib/typescript/ui/hooks/useFollow.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useSessionSocket.d.ts +11 -0
- package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -0
- package/lib/typescript/ui/index.d.ts +2 -5
- package/lib/typescript/ui/index.d.ts.map +1 -1
- package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +1 -1
- package/lib/typescript/ui/navigation/types.d.ts +5 -23
- package/lib/typescript/ui/navigation/types.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts +27 -0
- package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -0
- package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts +8 -0
- package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts.map +1 -0
- package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SignInScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SignUpScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts +27 -0
- package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/internal/SignInUsernameStep.d.ts +26 -0
- package/lib/typescript/ui/screens/internal/SignInUsernameStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/internal/SignUpIdentityStep.d.ts +20 -0
- package/lib/typescript/ui/screens/internal/SignUpIdentityStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/internal/SignUpSecurityStep.d.ts +24 -0
- package/lib/typescript/ui/screens/internal/SignUpSecurityStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/internal/SignUpSummaryStep.d.ts +15 -0
- package/lib/typescript/ui/screens/internal/SignUpSummaryStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/internal/SignUpWelcomeStep.d.ts +13 -0
- package/lib/typescript/ui/screens/internal/SignUpWelcomeStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts +14 -0
- package/lib/typescript/ui/stores/authStore.d.ts.map +1 -0
- package/lib/typescript/ui/stores/followStore.d.ts +15 -0
- package/lib/typescript/ui/stores/followStore.d.ts.map +1 -0
- package/lib/typescript/ui/styles/index.d.ts +0 -1
- package/lib/typescript/ui/styles/index.d.ts.map +1 -1
- package/lib/typescript/ui/utils/confirmAction.d.ts +7 -0
- package/lib/typescript/ui/utils/confirmAction.d.ts.map +1 -0
- package/package.json +12 -7
- package/src/core/index.ts +78 -88
- package/src/index.ts +8 -45
- package/src/models/secureSession.ts +1 -2
- package/src/node/index.ts +0 -3
- package/src/ui/components/FollowButton.tsx +100 -322
- package/src/ui/components/OxyPayButton.tsx +133 -0
- package/src/ui/components/OxyProvider.tsx +39 -201
- package/src/ui/components/OxySignInButton.tsx +13 -2
- package/src/ui/components/icon/FAIRWalletIcon.tsx +49 -0
- package/src/ui/components/icon/index.ts +1 -0
- package/src/ui/components/index.ts +1 -0
- package/src/ui/components/internal/GroupedPillButtons.tsx +12 -8
- package/src/ui/components/internal/PinInput.tsx +102 -0
- package/src/ui/components/internal/TextField.tsx +9 -0
- package/src/ui/context/OxyContext.tsx +26 -40
- package/src/ui/hooks/index.ts +1 -2
- package/src/ui/hooks/useFollow.ts +58 -129
- package/src/ui/hooks/useSessionSocket.ts +50 -0
- package/src/ui/index.ts +2 -37
- package/src/ui/navigation/OxyRouter.tsx +47 -63
- package/src/ui/navigation/types.ts +5 -26
- package/src/ui/screens/AccountCenterScreen.tsx +12 -21
- package/src/ui/screens/AccountOverviewScreen.tsx +6 -30
- package/src/ui/screens/AccountSettingsScreen.tsx +7 -22
- package/src/ui/screens/AccountSwitcherScreen.tsx +46 -88
- package/src/ui/screens/AppInfoScreen.tsx +27 -47
- package/src/ui/screens/FeedbackScreen.tsx +34 -19
- package/src/ui/screens/FileManagementScreen.tsx +293 -321
- package/src/ui/screens/PaymentGatewayScreen.tsx +1315 -0
- package/src/ui/screens/PremiumSubscriptionScreen.tsx +109 -124
- package/src/ui/screens/RecoverAccountScreen.tsx +260 -0
- package/src/ui/screens/SessionManagementScreen.tsx +65 -137
- package/src/ui/screens/SignInScreen.tsx +89 -283
- package/src/ui/screens/SignUpScreen.tsx +138 -291
- package/src/ui/screens/internal/SignInPasswordStep.tsx +179 -0
- package/src/ui/screens/internal/SignInUsernameStep.tsx +139 -0
- package/src/ui/screens/internal/SignUpIdentityStep.tsx +114 -0
- package/src/ui/screens/internal/SignUpSecurityStep.tsx +132 -0
- package/src/ui/screens/internal/SignUpSummaryStep.tsx +66 -0
- package/src/ui/screens/internal/SignUpWelcomeStep.tsx +52 -0
- package/src/ui/screens/karma/KarmaRewardsScreen.tsx +13 -3
- package/src/ui/stores/authStore.ts +24 -0
- package/src/ui/stores/followStore.ts +80 -0
- package/src/ui/styles/index.ts +0 -1
- package/src/ui/utils/confirmAction.ts +23 -0
- package/lib/commonjs/ui/components/bottomSheet/index.js +0 -37
- package/lib/commonjs/ui/components/bottomSheet/index.js.map +0 -1
- package/lib/commonjs/ui/hooks/useAuthFetch.js +0 -217
- package/lib/commonjs/ui/hooks/useAuthFetch.js.map +0 -1
- package/lib/commonjs/ui/hooks/useOxyFollow.js +0 -190
- package/lib/commonjs/ui/hooks/useOxyFollow.js.map +0 -1
- package/lib/commonjs/ui/screens/BillingManagementScreen.js +0 -636
- package/lib/commonjs/ui/screens/BillingManagementScreen.js.map +0 -1
- package/lib/commonjs/ui/store/index.js +0 -67
- package/lib/commonjs/ui/store/index.js.map +0 -1
- package/lib/commonjs/ui/store/setupOxyStore.js +0 -63
- package/lib/commonjs/ui/store/setupOxyStore.js.map +0 -1
- package/lib/commonjs/ui/store/slices/authSlice.js +0 -56
- package/lib/commonjs/ui/store/slices/authSlice.js.map +0 -1
- package/lib/commonjs/ui/store/slices/followSlice.js +0 -238
- package/lib/commonjs/ui/store/slices/followSlice.js.map +0 -1
- package/lib/commonjs/ui/store/slices/index.js +0 -129
- package/lib/commonjs/ui/store/slices/index.js.map +0 -1
- package/lib/commonjs/ui/store/slices/types.js +0 -19
- package/lib/commonjs/ui/store/slices/types.js.map +0 -1
- package/lib/commonjs/ui/styles/shadows.js +0 -123
- package/lib/commonjs/ui/styles/shadows.js.map +0 -1
- package/lib/commonjs/utils/polyfills.js +0 -42
- package/lib/commonjs/utils/polyfills.js.map +0 -1
- package/lib/module/ui/components/bottomSheet/index.js +0 -5
- package/lib/module/ui/components/bottomSheet/index.js.map +0 -1
- package/lib/module/ui/hooks/useAuthFetch.js +0 -212
- package/lib/module/ui/hooks/useAuthFetch.js.map +0 -1
- package/lib/module/ui/hooks/useOxyFollow.js +0 -186
- package/lib/module/ui/hooks/useOxyFollow.js.map +0 -1
- package/lib/module/ui/screens/BillingManagementScreen.js +0 -631
- package/lib/module/ui/screens/BillingManagementScreen.js.map +0 -1
- package/lib/module/ui/store/index.js +0 -33
- package/lib/module/ui/store/index.js.map +0 -1
- package/lib/module/ui/store/setupOxyStore.js +0 -59
- package/lib/module/ui/store/setupOxyStore.js.map +0 -1
- package/lib/module/ui/store/slices/authSlice.js +0 -48
- package/lib/module/ui/store/slices/authSlice.js.map +0 -1
- package/lib/module/ui/store/slices/followSlice.js +0 -232
- package/lib/module/ui/store/slices/followSlice.js.map +0 -1
- package/lib/module/ui/store/slices/index.js +0 -11
- package/lib/module/ui/store/slices/index.js.map +0 -1
- package/lib/module/ui/store/slices/types.js +0 -15
- package/lib/module/ui/store/slices/types.js.map +0 -1
- package/lib/module/ui/styles/shadows.js +0 -119
- package/lib/module/ui/styles/shadows.js.map +0 -1
- package/lib/module/utils/polyfills.js +0 -36
- package/lib/module/utils/polyfills.js.map +0 -1
- package/lib/typescript/types/react-redux.d.ts +0 -5
- package/lib/typescript/ui/components/bottomSheet/index.d.ts +0 -4
- package/lib/typescript/ui/components/bottomSheet/index.d.ts.map +0 -1
- package/lib/typescript/ui/hooks/useAuthFetch.d.ts +0 -34
- package/lib/typescript/ui/hooks/useAuthFetch.d.ts.map +0 -1
- package/lib/typescript/ui/hooks/useOxyFollow.d.ts +0 -81
- package/lib/typescript/ui/hooks/useOxyFollow.d.ts.map +0 -1
- package/lib/typescript/ui/screens/BillingManagementScreen.d.ts +0 -5
- package/lib/typescript/ui/screens/BillingManagementScreen.d.ts.map +0 -1
- package/lib/typescript/ui/store/index.d.ts +0 -27
- package/lib/typescript/ui/store/index.d.ts.map +0 -1
- package/lib/typescript/ui/store/setupOxyStore.d.ts +0 -29
- package/lib/typescript/ui/store/setupOxyStore.d.ts.map +0 -1
- package/lib/typescript/ui/store/slices/authSlice.d.ts +0 -32
- package/lib/typescript/ui/store/slices/authSlice.d.ts.map +0 -1
- package/lib/typescript/ui/store/slices/followSlice.d.ts +0 -120
- package/lib/typescript/ui/store/slices/followSlice.d.ts.map +0 -1
- package/lib/typescript/ui/store/slices/index.d.ts +0 -9
- package/lib/typescript/ui/store/slices/index.d.ts.map +0 -1
- package/lib/typescript/ui/store/slices/types.d.ts +0 -16
- package/lib/typescript/ui/store/slices/types.d.ts.map +0 -1
- package/lib/typescript/ui/styles/shadows.d.ts +0 -233
- package/lib/typescript/ui/styles/shadows.d.ts.map +0 -1
- package/lib/typescript/utils/polyfills.d.ts +0 -6
- package/lib/typescript/utils/polyfills.d.ts.map +0 -1
- package/src/__tests__/backend-middleware.test.ts +0 -209
- package/src/__tests__/polyfills.test.ts +0 -30
- package/src/__tests__/setup.ts +0 -43
- package/src/__tests__/ui/hooks/authfetch-integration.test.ts +0 -197
- package/src/__tests__/ui/hooks/backward-compatibility.test.ts +0 -159
- package/src/__tests__/ui/hooks/real-world-scenarios.test.ts +0 -224
- package/src/__tests__/ui/hooks/url-resolution.test.ts +0 -129
- package/src/__tests__/ui/hooks/useAuthFetch-separation.test.ts +0 -69
- package/src/__tests__/ui/hooks/useAuthFetch.test.ts +0 -70
- package/src/__tests__/ui/hooks/useOxyFollow.test.tsx +0 -92
- package/src/__tests__/ui/screens/AccountSettingsScreen.test.tsx +0 -112
- package/src/__tests__/ui/store/setupOxyStore.test.ts +0 -50
- package/src/__tests__/validate-structure.js +0 -91
- package/src/__tests__/validation.js +0 -42
- package/src/types/react-redux.d.ts +0 -5
- package/src/ui/components/bottomSheet/index.tsx +0 -14
- package/src/ui/hooks/useAuthFetch.ts +0 -238
- package/src/ui/hooks/useOxyFollow.ts +0 -188
- package/src/ui/screens/BillingManagementScreen.tsx +0 -589
- package/src/ui/store/index.ts +0 -36
- package/src/ui/store/setupOxyStore.ts +0 -58
- package/src/ui/store/slices/authSlice.ts +0 -43
- package/src/ui/store/slices/followSlice.ts +0 -207
- package/src/ui/store/slices/index.ts +0 -31
- package/src/ui/store/slices/types.ts +0 -33
- package/src/ui/styles/shadows.ts +0 -112
- package/src/utils/polyfills.ts +0 -34
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* OxyHQ Services Redux Store
|
|
5
|
-
* Framework-agnostic, tree-shakable Redux integration
|
|
6
|
-
*
|
|
7
|
-
* This module exports individual slices, reducers, actions, selectors, and helpers
|
|
8
|
-
* for easy integration into any Redux store without internal dependencies.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
// Export individual slices and their components
|
|
12
|
-
export * from './slices';
|
|
13
|
-
|
|
14
|
-
// Export setup helper for easy integration
|
|
15
|
-
export { setupOxyStore, oxyReducers } from './setupOxyStore';
|
|
16
|
-
|
|
17
|
-
// Export types for external store integration
|
|
18
|
-
|
|
19
|
-
// For backward compatibility: create a legacy store instance
|
|
20
|
-
// This will be deprecated in favor of setupOxyStore()
|
|
21
|
-
import { configureStore } from '@reduxjs/toolkit';
|
|
22
|
-
import { setupOxyStore } from './setupOxyStore';
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @deprecated Use setupOxyStore() instead to integrate with your app's store
|
|
26
|
-
* This internal store will be removed in a future version
|
|
27
|
-
*/
|
|
28
|
-
export const store = configureStore({
|
|
29
|
-
reducer: setupOxyStore()
|
|
30
|
-
});
|
|
31
|
-
// Legacy selector (deprecated)
|
|
32
|
-
export const selectIsUserBeingFetched = (state, userId) => state.follow.fetchingUsers[userId] ?? false;
|
|
33
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["setupOxyStore","oxyReducers","configureStore","store","reducer","selectIsUserBeingFetched","state","userId","follow","fetchingUsers"],"sourceRoot":"../../../../src","sources":["ui/store/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,UAAU;;AAExB;AACA,SAASA,aAAa,EAAEC,WAAW,QAAQ,iBAAiB;;AAE5D;;AAGA;AACA;AACA,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASF,aAAa,QAAQ,iBAAiB;;AAE/C;AACA;AACA;AACA;AACA,OAAO,MAAMG,KAAK,GAAGD,cAAc,CAAC;EAClCE,OAAO,EAAEJ,aAAa,CAAC;AACzB,CAAC,CAAC;AAKF;AACA,OAAO,MAAMK,wBAAwB,GAAGA,CAACC,KAAgB,EAAEC,MAAc,KACvED,KAAK,CAACE,MAAM,CAACC,aAAa,CAACF,MAAM,CAAC,IAAI,KAAK","ignoreList":[]}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { authReducer } from './slices/authSlice';
|
|
4
|
-
import { followReducer } from './slices/followSlice';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Setup helper for Oxy Store
|
|
8
|
-
* Returns all Oxy reducers ready to be spread into a host app's Redux store
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* ```ts
|
|
12
|
-
* const store = configureStore({
|
|
13
|
-
* reducer: {
|
|
14
|
-
* ...setupOxyStore(),
|
|
15
|
-
* appSpecificReducer,
|
|
16
|
-
* },
|
|
17
|
-
* });
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export function setupOxyStore() {
|
|
21
|
-
return {
|
|
22
|
-
auth: authReducer,
|
|
23
|
-
follow: followReducer
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Tree-shakable version where you can pick specific reducers
|
|
29
|
-
*
|
|
30
|
-
* Usage:
|
|
31
|
-
* ```ts
|
|
32
|
-
* const store = configureStore({
|
|
33
|
-
* reducer: {
|
|
34
|
-
* ...setupOxyStore.pick('auth'), // Only include auth
|
|
35
|
-
* // or
|
|
36
|
-
* ...setupOxyStore.pick('auth', 'follow'), // Include both
|
|
37
|
-
* appSpecificReducer,
|
|
38
|
-
* },
|
|
39
|
-
* });
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
setupOxyStore.pick = function (...keys) {
|
|
43
|
-
const allReducers = setupOxyStore();
|
|
44
|
-
const pickedReducers = {};
|
|
45
|
-
for (const key of keys) {
|
|
46
|
-
if (key in allReducers) {
|
|
47
|
-
// Use bracket notation with explicit typing
|
|
48
|
-
pickedReducers[key] = allReducers[key];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return pickedReducers;
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
// Export individual reducers for maximum flexibility
|
|
55
|
-
export const oxyReducers = {
|
|
56
|
-
auth: authReducer,
|
|
57
|
-
follow: followReducer
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=setupOxyStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["authReducer","followReducer","setupOxyStore","auth","follow","pick","keys","allReducers","pickedReducers","key","oxyReducers"],"sourceRoot":"../../../../src","sources":["ui/store/setupOxyStore.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,oBAAoB;AAChD,SAASC,aAAa,QAAQ,sBAAsB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC9B,OAAO;IACLC,IAAI,EAAEH,WAAW;IACjBI,MAAM,EAAEH;EACV,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,aAAa,CAACG,IAAI,GAAG,UAAS,GAAGC,IAA8B,EAAE;EAC/D,MAAMC,WAAW,GAAGL,aAAa,CAAC,CAAC;EACnC,MAAMM,cAAc,GAAG,CAAC,CAA8C;EAEtE,KAAK,MAAMC,GAAG,IAAIH,IAAI,EAAE;IACtB,IAAIG,GAAG,IAAIF,WAAW,EAAE;MACtB;MACCC,cAAc,CAAyBC,GAAG,CAAC,GAAGF,WAAW,CAACE,GAAG,CAAC;IACjE;EACF;EAEA,OAAOD,cAAc;AACvB,CAAC;;AAED;AACA,OAAO,MAAME,WAAW,GAAG;EACzBP,IAAI,EAAEH,WAAW;EACjBI,MAAM,EAAEH;AACV,CAAC","ignoreList":[]}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { createSlice } from '@reduxjs/toolkit';
|
|
4
|
-
import { initialAuthState } from './types';
|
|
5
|
-
export const authSlice = createSlice({
|
|
6
|
-
name: 'auth',
|
|
7
|
-
initialState: initialAuthState,
|
|
8
|
-
reducers: {
|
|
9
|
-
loginStart(state) {
|
|
10
|
-
state.isLoading = true;
|
|
11
|
-
state.error = null;
|
|
12
|
-
},
|
|
13
|
-
loginSuccess(state, action) {
|
|
14
|
-
state.isLoading = false;
|
|
15
|
-
state.isAuthenticated = true;
|
|
16
|
-
state.user = action.payload;
|
|
17
|
-
},
|
|
18
|
-
loginFailure(state, action) {
|
|
19
|
-
state.isLoading = false;
|
|
20
|
-
state.error = action.payload;
|
|
21
|
-
},
|
|
22
|
-
logout(state) {
|
|
23
|
-
state.user = null;
|
|
24
|
-
state.isAuthenticated = false;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
// Export actions
|
|
30
|
-
export const authActions = authSlice.actions;
|
|
31
|
-
export const {
|
|
32
|
-
loginStart,
|
|
33
|
-
loginSuccess,
|
|
34
|
-
loginFailure,
|
|
35
|
-
logout
|
|
36
|
-
} = authSlice.actions;
|
|
37
|
-
|
|
38
|
-
// Export selectors
|
|
39
|
-
export const authSelectors = {
|
|
40
|
-
selectUser: state => state.auth.user,
|
|
41
|
-
selectIsAuthenticated: state => state.auth.isAuthenticated,
|
|
42
|
-
selectIsLoading: state => state.auth.isLoading,
|
|
43
|
-
selectError: state => state.auth.error
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
// Export reducer
|
|
47
|
-
export const authReducer = authSlice.reducer;
|
|
48
|
-
//# sourceMappingURL=authSlice.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createSlice","initialAuthState","authSlice","name","initialState","reducers","loginStart","state","isLoading","error","loginSuccess","action","isAuthenticated","user","payload","loginFailure","logout","authActions","actions","authSelectors","selectUser","auth","selectIsAuthenticated","selectIsLoading","selectError","authReducer","reducer"],"sourceRoot":"../../../../../src","sources":["ui/store/slices/authSlice.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAuB,kBAAkB;AAG7D,SAASC,gBAAgB,QAAQ,SAAS;AAE1C,OAAO,MAAMC,SAAS,GAAGF,WAAW,CAAC;EACnCG,IAAI,EAAE,MAAM;EACZC,YAAY,EAAEH,gBAAgB;EAC9BI,QAAQ,EAAE;IACRC,UAAUA,CAACC,KAAgB,EAAE;MAC3BA,KAAK,CAACC,SAAS,GAAG,IAAI;MACtBD,KAAK,CAACE,KAAK,GAAG,IAAI;IACpB,CAAC;IACDC,YAAYA,CAACH,KAAgB,EAAEI,MAA2B,EAAE;MAC1DJ,KAAK,CAACC,SAAS,GAAG,KAAK;MACvBD,KAAK,CAACK,eAAe,GAAG,IAAI;MAC5BL,KAAK,CAACM,IAAI,GAAGF,MAAM,CAACG,OAAO;IAC7B,CAAC;IACDC,YAAYA,CAACR,KAAgB,EAAEI,MAA6B,EAAE;MAC5DJ,KAAK,CAACC,SAAS,GAAG,KAAK;MACvBD,KAAK,CAACE,KAAK,GAAGE,MAAM,CAACG,OAAO;IAC9B,CAAC;IACDE,MAAMA,CAACT,KAAgB,EAAE;MACvBA,KAAK,CAACM,IAAI,GAAG,IAAI;MACjBN,KAAK,CAACK,eAAe,GAAG,KAAK;IAC/B;EACF;AACF,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMK,WAAW,GAAGf,SAAS,CAACgB,OAAO;AAC5C,OAAO,MAAM;EAAEZ,UAAU;EAAEI,YAAY;EAAEK,YAAY;EAAEC;AAAO,CAAC,GAAGd,SAAS,CAACgB,OAAO;;AAEnF;AACA,OAAO,MAAMC,aAAa,GAAG;EAC3BC,UAAU,EAAGb,KAA0B,IAAKA,KAAK,CAACc,IAAI,CAACR,IAAI;EAC3DS,qBAAqB,EAAGf,KAA0B,IAAKA,KAAK,CAACc,IAAI,CAACT,eAAe;EACjFW,eAAe,EAAGhB,KAA0B,IAAKA,KAAK,CAACc,IAAI,CAACb,SAAS;EACrEgB,WAAW,EAAGjB,KAA0B,IAAKA,KAAK,CAACc,IAAI,CAACZ;AAC1D,CAAC;;AAED;AACA,OAAO,MAAMgB,WAAW,GAAGvB,SAAS,CAACwB,OAAO","ignoreList":[]}
|
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { createSlice, createAsyncThunk } from '@reduxjs/toolkit';
|
|
4
|
-
import { initialFollowState } from './types';
|
|
5
|
-
|
|
6
|
-
// Define thunk state interface for dependency injection
|
|
7
|
-
|
|
8
|
-
// Async thunk for fetching follow status from backend with deduplication
|
|
9
|
-
export const fetchFollowStatus = createAsyncThunk('follow/fetchFollowStatus', async ({
|
|
10
|
-
userId,
|
|
11
|
-
oxyServices
|
|
12
|
-
}, {
|
|
13
|
-
rejectWithValue
|
|
14
|
-
}) => {
|
|
15
|
-
try {
|
|
16
|
-
// Use the proper core service method
|
|
17
|
-
const response = await oxyServices.getFollowStatus(userId);
|
|
18
|
-
return {
|
|
19
|
-
userId,
|
|
20
|
-
isFollowing: response.isFollowing
|
|
21
|
-
};
|
|
22
|
-
} catch (error) {
|
|
23
|
-
// Ignore authentication errors when user isn't signed in - don't update state
|
|
24
|
-
if (error?.status === 401 || error?.message?.includes('Authentication')) {
|
|
25
|
-
return rejectWithValue('Not authenticated');
|
|
26
|
-
}
|
|
27
|
-
// Log other failures and reject to not update state
|
|
28
|
-
console.warn(`Failed to fetch follow status for user ${userId}:`, error);
|
|
29
|
-
return rejectWithValue(error?.message || 'Failed to fetch follow status');
|
|
30
|
-
}
|
|
31
|
-
}, {
|
|
32
|
-
// Prevent duplicate requests for the same user ID
|
|
33
|
-
condition: ({
|
|
34
|
-
userId
|
|
35
|
-
}, {
|
|
36
|
-
getState
|
|
37
|
-
}) => {
|
|
38
|
-
const state = getState();
|
|
39
|
-
const isAlreadyFetching = state.follow.fetchingUsers[userId];
|
|
40
|
-
if (isAlreadyFetching) {
|
|
41
|
-
console.log(`⚡ Deduplicating fetch request for user ${userId} - already in progress`);
|
|
42
|
-
return false; // Cancel this request
|
|
43
|
-
}
|
|
44
|
-
return true; // Allow this request
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
// Async thunk for following/unfollowing users using core services
|
|
49
|
-
export const toggleFollowUser = createAsyncThunk('follow/toggleFollowUser', async ({
|
|
50
|
-
userId,
|
|
51
|
-
oxyServices,
|
|
52
|
-
isCurrentlyFollowing
|
|
53
|
-
}, {
|
|
54
|
-
rejectWithValue,
|
|
55
|
-
dispatch
|
|
56
|
-
}) => {
|
|
57
|
-
try {
|
|
58
|
-
let response;
|
|
59
|
-
let newFollowState;
|
|
60
|
-
if (isCurrentlyFollowing) {
|
|
61
|
-
// Use the core service to unfollow user
|
|
62
|
-
response = await oxyServices.unfollowUser(userId);
|
|
63
|
-
newFollowState = false;
|
|
64
|
-
} else {
|
|
65
|
-
// Use the core service to follow user
|
|
66
|
-
response = await oxyServices.followUser(userId);
|
|
67
|
-
newFollowState = true;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Check if the response indicates success (different APIs might return different formats)
|
|
71
|
-
const isSuccess = response.success !== false && response.action !== 'error';
|
|
72
|
-
if (isSuccess) {
|
|
73
|
-
return {
|
|
74
|
-
userId,
|
|
75
|
-
isFollowing: newFollowState,
|
|
76
|
-
message: response.message || `Successfully ${newFollowState ? 'followed' : 'unfollowed'} user`
|
|
77
|
-
};
|
|
78
|
-
} else {
|
|
79
|
-
return rejectWithValue(response.message || `Failed to ${newFollowState ? 'follow' : 'unfollow'} user`);
|
|
80
|
-
}
|
|
81
|
-
} catch (error) {
|
|
82
|
-
// Enhanced error handling with state mismatch detection
|
|
83
|
-
let errorMessage = 'Network error occurred';
|
|
84
|
-
if (error?.message) {
|
|
85
|
-
errorMessage = error.message;
|
|
86
|
-
} else if (error?.response?.data?.message) {
|
|
87
|
-
errorMessage = error.response.data.message;
|
|
88
|
-
} else if (error?.data?.message) {
|
|
89
|
-
errorMessage = error.data.message;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// Handle state mismatch errors by syncing with backend
|
|
93
|
-
if (errorMessage.includes('Not following this user') && isCurrentlyFollowing) {
|
|
94
|
-
console.warn(`State mismatch detected for user ${userId}: Frontend thinks following, backend says not following. Syncing state...`);
|
|
95
|
-
// Auto-sync with backend state
|
|
96
|
-
try {
|
|
97
|
-
const actualStatus = await oxyServices.getFollowStatus(userId);
|
|
98
|
-
dispatch({
|
|
99
|
-
type: 'follow/setFollowingStatus',
|
|
100
|
-
payload: {
|
|
101
|
-
userId,
|
|
102
|
-
isFollowing: actualStatus.isFollowing
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
return rejectWithValue('State synced with backend. Please try again.');
|
|
106
|
-
} catch (syncError) {
|
|
107
|
-
console.error('Failed to sync state with backend:', syncError);
|
|
108
|
-
}
|
|
109
|
-
} else if (errorMessage.includes('Already following this user') && !isCurrentlyFollowing) {
|
|
110
|
-
console.warn(`State mismatch detected for user ${userId}: Frontend thinks not following, backend says following. Syncing state...`);
|
|
111
|
-
// Auto-sync with backend state
|
|
112
|
-
try {
|
|
113
|
-
const actualStatus = await oxyServices.getFollowStatus(userId);
|
|
114
|
-
dispatch({
|
|
115
|
-
type: 'follow/setFollowingStatus',
|
|
116
|
-
payload: {
|
|
117
|
-
userId,
|
|
118
|
-
isFollowing: actualStatus.isFollowing
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
return rejectWithValue('State synced with backend. Please try again.');
|
|
122
|
-
} catch (syncError) {
|
|
123
|
-
console.error('Failed to sync state with backend:', syncError);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return rejectWithValue(errorMessage);
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
export const followSlice = createSlice({
|
|
130
|
-
name: 'follow',
|
|
131
|
-
initialState: initialFollowState,
|
|
132
|
-
reducers: {
|
|
133
|
-
setFollowingStatus(state, action) {
|
|
134
|
-
const {
|
|
135
|
-
userId,
|
|
136
|
-
isFollowing
|
|
137
|
-
} = action.payload;
|
|
138
|
-
state.followingUsers[userId] = isFollowing;
|
|
139
|
-
state.errors[userId] = null;
|
|
140
|
-
},
|
|
141
|
-
clearFollowError(state, action) {
|
|
142
|
-
const userId = action.payload;
|
|
143
|
-
state.errors[userId] = null;
|
|
144
|
-
},
|
|
145
|
-
resetFollowState(state) {
|
|
146
|
-
state.followingUsers = {};
|
|
147
|
-
state.loadingUsers = {};
|
|
148
|
-
state.fetchingUsers = {};
|
|
149
|
-
state.errors = {};
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
extraReducers: builder => {
|
|
153
|
-
builder
|
|
154
|
-
// Handle fetchFollowStatus
|
|
155
|
-
.addCase(fetchFollowStatus.pending, (state, action) => {
|
|
156
|
-
const {
|
|
157
|
-
userId
|
|
158
|
-
} = action.meta.arg;
|
|
159
|
-
state.fetchingUsers[userId] = true;
|
|
160
|
-
state.errors[userId] = null;
|
|
161
|
-
}).addCase(fetchFollowStatus.fulfilled, (state, action) => {
|
|
162
|
-
const {
|
|
163
|
-
userId,
|
|
164
|
-
isFollowing
|
|
165
|
-
} = action.payload;
|
|
166
|
-
state.followingUsers[userId] = isFollowing;
|
|
167
|
-
state.fetchingUsers[userId] = false;
|
|
168
|
-
state.errors[userId] = null;
|
|
169
|
-
}).addCase(fetchFollowStatus.rejected, (state, action) => {
|
|
170
|
-
const {
|
|
171
|
-
userId
|
|
172
|
-
} = action.meta.arg;
|
|
173
|
-
state.fetchingUsers[userId] = false;
|
|
174
|
-
// Don't update follow state on fetch errors - preserve existing/initial state
|
|
175
|
-
if (action.payload !== 'Not authenticated') {
|
|
176
|
-
console.warn(`Failed to fetch follow status for user ${userId}:`, action.payload);
|
|
177
|
-
}
|
|
178
|
-
})
|
|
179
|
-
// Handle toggleFollowUser
|
|
180
|
-
.addCase(toggleFollowUser.pending, (state, action) => {
|
|
181
|
-
const {
|
|
182
|
-
userId
|
|
183
|
-
} = action.meta.arg;
|
|
184
|
-
state.loadingUsers[userId] = true;
|
|
185
|
-
state.errors[userId] = null;
|
|
186
|
-
}).addCase(toggleFollowUser.fulfilled, (state, action) => {
|
|
187
|
-
const {
|
|
188
|
-
userId,
|
|
189
|
-
isFollowing
|
|
190
|
-
} = action.payload;
|
|
191
|
-
state.followingUsers[userId] = isFollowing;
|
|
192
|
-
state.loadingUsers[userId] = false;
|
|
193
|
-
state.errors[userId] = null;
|
|
194
|
-
}).addCase(toggleFollowUser.rejected, (state, action) => {
|
|
195
|
-
const {
|
|
196
|
-
userId
|
|
197
|
-
} = action.meta.arg;
|
|
198
|
-
state.loadingUsers[userId] = false;
|
|
199
|
-
state.errors[userId] = action.error.message || 'Failed to update follow status';
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
// Export actions
|
|
205
|
-
export const followActions = followSlice.actions;
|
|
206
|
-
export const {
|
|
207
|
-
setFollowingStatus,
|
|
208
|
-
clearFollowError,
|
|
209
|
-
resetFollowState
|
|
210
|
-
} = followSlice.actions;
|
|
211
|
-
|
|
212
|
-
// Export thunks
|
|
213
|
-
export const followThunks = {
|
|
214
|
-
fetchFollowStatus,
|
|
215
|
-
toggleFollowUser
|
|
216
|
-
};
|
|
217
|
-
|
|
218
|
-
// Export selectors
|
|
219
|
-
export const followSelectors = {
|
|
220
|
-
selectFollowingUsers: state => state.follow.followingUsers,
|
|
221
|
-
selectLoadingUsers: state => state.follow.loadingUsers,
|
|
222
|
-
selectFetchingUsers: state => state.follow.fetchingUsers,
|
|
223
|
-
selectFollowErrors: state => state.follow.errors,
|
|
224
|
-
selectIsUserFollowed: (state, userId) => state.follow.followingUsers[userId] ?? false,
|
|
225
|
-
selectIsUserLoading: (state, userId) => state.follow.loadingUsers[userId] ?? false,
|
|
226
|
-
selectIsUserBeingFetched: (state, userId) => state.follow.fetchingUsers[userId] ?? false,
|
|
227
|
-
selectUserError: (state, userId) => state.follow.errors[userId] ?? null
|
|
228
|
-
};
|
|
229
|
-
|
|
230
|
-
// Export reducer
|
|
231
|
-
export const followReducer = followSlice.reducer;
|
|
232
|
-
//# sourceMappingURL=followSlice.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createSlice","createAsyncThunk","initialFollowState","fetchFollowStatus","userId","oxyServices","rejectWithValue","response","getFollowStatus","isFollowing","error","status","message","includes","console","warn","condition","getState","state","isAlreadyFetching","follow","fetchingUsers","log","toggleFollowUser","isCurrentlyFollowing","dispatch","newFollowState","unfollowUser","followUser","isSuccess","success","action","errorMessage","data","actualStatus","type","payload","syncError","followSlice","name","initialState","reducers","setFollowingStatus","followingUsers","errors","clearFollowError","resetFollowState","loadingUsers","extraReducers","builder","addCase","pending","meta","arg","fulfilled","rejected","followActions","actions","followThunks","followSelectors","selectFollowingUsers","selectLoadingUsers","selectFetchingUsers","selectFollowErrors","selectIsUserFollowed","selectIsUserLoading","selectIsUserBeingFetched","selectUserError","followReducer","reducer"],"sourceRoot":"../../../../../src","sources":["ui/store/slices/followSlice.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Redux slices exports
|
|
5
|
-
* This file exports individual slices and their components for tree-shaking
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export { authSlice, authActions, authSelectors, authReducer, loginStart, loginSuccess, loginFailure, logout } from './authSlice';
|
|
9
|
-
export { followSlice, followActions, followSelectors, followThunks, followReducer, setFollowingStatus, clearFollowError, resetFollowState, fetchFollowStatus, toggleFollowUser } from './followSlice';
|
|
10
|
-
export { initialAuthState, initialFollowState } from './types';
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["authSlice","authActions","authSelectors","authReducer","loginStart","loginSuccess","loginFailure","logout","followSlice","followActions","followSelectors","followThunks","followReducer","setFollowingStatus","clearFollowError","resetFollowState","fetchFollowStatus","toggleFollowUser","initialAuthState","initialFollowState"],"sourceRoot":"../../../../../src","sources":["ui/store/slices/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA,SACEA,SAAS,EACTC,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,YAAY,EACZC,YAAY,EACZC,MAAM,QACD,aAAa;AAEpB,SACEC,WAAW,EACXC,aAAa,EACbC,eAAe,EACfC,YAAY,EACZC,aAAa,EACbC,kBAAkB,EAClBC,gBAAgB,EAChBC,gBAAgB,EAChBC,iBAAiB,EACjBC,gBAAgB,QACX,eAAe;AAGtB,SAASC,gBAAgB,EAAEC,kBAAkB,QAAQ,SAAS","ignoreList":[]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
export const initialAuthState = {
|
|
4
|
-
user: null,
|
|
5
|
-
isAuthenticated: false,
|
|
6
|
-
isLoading: false,
|
|
7
|
-
error: null
|
|
8
|
-
};
|
|
9
|
-
export const initialFollowState = {
|
|
10
|
-
followingUsers: {},
|
|
11
|
-
loadingUsers: {},
|
|
12
|
-
fetchingUsers: {},
|
|
13
|
-
errors: {}
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["initialAuthState","user","isAuthenticated","isLoading","error","initialFollowState","followingUsers","loadingUsers","fetchingUsers","errors"],"sourceRoot":"../../../../../src","sources":["ui/store/slices/types.ts"],"mappings":";;AAoBA,OAAO,MAAMA,gBAA2B,GAAG;EACzCC,IAAI,EAAE,IAAI;EACVC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAE,KAAK;EAChBC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAMC,kBAA+B,GAAG;EAC7CC,cAAc,EAAE,CAAC,CAAC;EAClBC,YAAY,EAAE,CAAC,CAAC;EAChBC,aAAa,EAAE,CAAC,CAAC;EACjBC,MAAM,EAAE,CAAC;AACX,CAAC","ignoreList":[]}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { Platform } from 'react-native';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Cross-platform shadow utility that eliminates "shadow*" deprecation warnings
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Creates cross-platform shadow styles
|
|
11
|
-
* Uses boxShadow for web and native shadow props for iOS/Android
|
|
12
|
-
*/
|
|
13
|
-
export function createShadow(config) {
|
|
14
|
-
const {
|
|
15
|
-
shadowColor = '#000',
|
|
16
|
-
shadowOffset = {
|
|
17
|
-
width: 0,
|
|
18
|
-
height: 2
|
|
19
|
-
},
|
|
20
|
-
shadowOpacity = 0.1,
|
|
21
|
-
shadowRadius = 4,
|
|
22
|
-
elevation = 2
|
|
23
|
-
} = config;
|
|
24
|
-
return Platform.select({
|
|
25
|
-
web: {
|
|
26
|
-
boxShadow: `${shadowOffset.width}px ${shadowOffset.height}px ${shadowRadius}px rgba(${hexToRgb(shadowColor)}, ${shadowOpacity})`
|
|
27
|
-
},
|
|
28
|
-
ios: {
|
|
29
|
-
shadowColor,
|
|
30
|
-
shadowOffset,
|
|
31
|
-
shadowOpacity,
|
|
32
|
-
shadowRadius
|
|
33
|
-
},
|
|
34
|
-
android: {
|
|
35
|
-
elevation
|
|
36
|
-
},
|
|
37
|
-
default: {
|
|
38
|
-
shadowColor,
|
|
39
|
-
shadowOffset,
|
|
40
|
-
shadowOpacity,
|
|
41
|
-
shadowRadius,
|
|
42
|
-
elevation
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Helper function to convert hex color to RGB
|
|
49
|
-
*/
|
|
50
|
-
function hexToRgb(hex) {
|
|
51
|
-
// Remove # if present
|
|
52
|
-
hex = hex.replace('#', '');
|
|
53
|
-
|
|
54
|
-
// Handle shorthand hex colors (e.g., #fff)
|
|
55
|
-
if (hex.length === 3) {
|
|
56
|
-
hex = hex.split('').map(char => char + char).join('');
|
|
57
|
-
}
|
|
58
|
-
const r = parseInt(hex.substr(0, 2), 16);
|
|
59
|
-
const g = parseInt(hex.substr(2, 2), 16);
|
|
60
|
-
const b = parseInt(hex.substr(4, 2), 16);
|
|
61
|
-
return `${r}, ${g}, ${b}`;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Predefined shadow presets
|
|
66
|
-
*/
|
|
67
|
-
export const shadows = {
|
|
68
|
-
small: createShadow({
|
|
69
|
-
shadowColor: '#000',
|
|
70
|
-
shadowOffset: {
|
|
71
|
-
width: 0,
|
|
72
|
-
height: 1
|
|
73
|
-
},
|
|
74
|
-
shadowOpacity: 0.05,
|
|
75
|
-
shadowRadius: 2,
|
|
76
|
-
elevation: 1
|
|
77
|
-
}),
|
|
78
|
-
medium: createShadow({
|
|
79
|
-
shadowColor: '#000',
|
|
80
|
-
shadowOffset: {
|
|
81
|
-
width: 0,
|
|
82
|
-
height: 2
|
|
83
|
-
},
|
|
84
|
-
shadowOpacity: 0.1,
|
|
85
|
-
shadowRadius: 4,
|
|
86
|
-
elevation: 2
|
|
87
|
-
}),
|
|
88
|
-
large: createShadow({
|
|
89
|
-
shadowColor: '#000',
|
|
90
|
-
shadowOffset: {
|
|
91
|
-
width: 0,
|
|
92
|
-
height: 4
|
|
93
|
-
},
|
|
94
|
-
shadowOpacity: 0.15,
|
|
95
|
-
shadowRadius: 8,
|
|
96
|
-
elevation: 4
|
|
97
|
-
}),
|
|
98
|
-
card: createShadow({
|
|
99
|
-
shadowColor: '#000',
|
|
100
|
-
shadowOffset: {
|
|
101
|
-
width: 0,
|
|
102
|
-
height: 2
|
|
103
|
-
},
|
|
104
|
-
shadowOpacity: 0.08,
|
|
105
|
-
shadowRadius: 8,
|
|
106
|
-
elevation: 3
|
|
107
|
-
}),
|
|
108
|
-
button: createShadow({
|
|
109
|
-
shadowColor: '#000',
|
|
110
|
-
shadowOffset: {
|
|
111
|
-
width: 0,
|
|
112
|
-
height: 2
|
|
113
|
-
},
|
|
114
|
-
shadowOpacity: 0.1,
|
|
115
|
-
shadowRadius: 4,
|
|
116
|
-
elevation: 2
|
|
117
|
-
})
|
|
118
|
-
};
|
|
119
|
-
//# sourceMappingURL=shadows.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","createShadow","config","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","select","web","boxShadow","hexToRgb","ios","android","default","hex","replace","length","split","map","char","join","r","parseInt","substr","g","b","shadows","small","medium","large","card","button"],"sourceRoot":"../../../../src","sources":["ui/styles/shadows.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Polyfills for React Native environments that may be missing certain Web APIs
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
// FormData polyfill for React Native/Hermes environments
|
|
8
|
-
if (typeof FormData === 'undefined') {
|
|
9
|
-
try {
|
|
10
|
-
const FormDataPolyfill = require('form-data');
|
|
11
|
-
// Use globalThis which is more universal than global
|
|
12
|
-
if (typeof globalThis !== 'undefined') {
|
|
13
|
-
globalThis.FormData = FormDataPolyfill;
|
|
14
|
-
}
|
|
15
|
-
} catch (error) {
|
|
16
|
-
console.warn('form-data package not found. File uploads may not work in React Native environments without native FormData support.');
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// Export a helper to ensure FormData is available
|
|
21
|
-
export const ensureFormDataAvailable = () => {
|
|
22
|
-
return typeof FormData !== 'undefined' || typeof require !== 'undefined';
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
// Get FormData constructor (either native or polyfilled)
|
|
26
|
-
export const getFormDataConstructor = () => {
|
|
27
|
-
if (typeof FormData !== 'undefined') {
|
|
28
|
-
return FormData;
|
|
29
|
-
}
|
|
30
|
-
try {
|
|
31
|
-
return require('form-data');
|
|
32
|
-
} catch (error) {
|
|
33
|
-
throw new Error('FormData is not available and form-data package is not installed. Please install form-data for file upload support.');
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=polyfills.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["FormData","FormDataPolyfill","require","globalThis","error","console","warn","ensureFormDataAvailable","getFormDataConstructor","Error"],"sourceRoot":"../../../src","sources":["utils/polyfills.ts"],"mappings":";;AAAA;AACA;AACA;;AAEA;AACA,IAAI,OAAOA,QAAQ,KAAK,WAAW,EAAE;EACnC,IAAI;IACF,MAAMC,gBAAgB,GAAGC,OAAO,CAAC,WAAW,CAAC;IAC7C;IACA,IAAI,OAAOC,UAAU,KAAK,WAAW,EAAE;MACpCA,UAAU,CAASH,QAAQ,GAAGC,gBAAgB;IACjD;EACF,CAAC,CAAC,OAAOG,KAAK,EAAE;IACdC,OAAO,CAACC,IAAI,CAAC,sHAAsH,CAAC;EACtI;AACF;;AAEA;AACA,OAAO,MAAMC,uBAAuB,GAAGA,CAAA,KAAe;EACpD,OAAO,OAAOP,QAAQ,KAAK,WAAW,IAAI,OAAOE,OAAO,KAAK,WAAW;AAC1E,CAAC;;AAED;AACA,OAAO,MAAMM,sBAAsB,GAAGA,CAAA,KAAW;EAC/C,IAAI,OAAOR,QAAQ,KAAK,WAAW,EAAE;IACnC,OAAOA,QAAQ;EACjB;EAEA,IAAI;IACF,OAAOE,OAAO,CAAC,WAAW,CAAC;EAC7B,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,MAAM,IAAIK,KAAK,CAAC,qHAAqH,CAAC;EACxI;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { BottomSheetModal, BottomSheetBackdrop, BottomSheetModalProvider, BottomSheetView, BottomSheetScrollView, } from '@gorhom/bottom-sheet';
|
|
2
|
-
export type { BottomSheetModalProps, BottomSheetBackdropProps, } from '@gorhom/bottom-sheet';
|
|
3
|
-
export type { BottomSheetModalMethods as BottomSheetModalRef } from '@gorhom/bottom-sheet/lib/typescript/types';
|
|
4
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/bottomSheet/index.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,uBAAuB,IAAI,mBAAmB,EAAE,MAAM,2CAA2C,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Zero Config Authenticated Fetch Hook
|
|
3
|
-
*
|
|
4
|
-
* Simple hook that provides fetch-like API with automatic authentication
|
|
5
|
-
* Leverages the existing useOxy hook and OxyProvider infrastructure
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* const authFetch = useAuthFetch();
|
|
9
|
-
* const response = await authFetch('/api/protected');
|
|
10
|
-
* const data = await authFetch.get('/api/users');
|
|
11
|
-
*/
|
|
12
|
-
export interface AuthFetchOptions extends Omit<RequestInit, 'body'> {
|
|
13
|
-
body?: any;
|
|
14
|
-
}
|
|
15
|
-
export interface AuthFetchAPI {
|
|
16
|
-
(input: RequestInfo | URL, init?: AuthFetchOptions): Promise<Response>;
|
|
17
|
-
get: (endpoint: string, options?: AuthFetchOptions) => Promise<any>;
|
|
18
|
-
post: (endpoint: string, data?: any, options?: AuthFetchOptions) => Promise<any>;
|
|
19
|
-
put: (endpoint: string, data?: any, options?: AuthFetchOptions) => Promise<any>;
|
|
20
|
-
delete: (endpoint: string, options?: AuthFetchOptions) => Promise<any>;
|
|
21
|
-
isAuthenticated: boolean;
|
|
22
|
-
user: any;
|
|
23
|
-
login: (username: string, password: string) => Promise<any>;
|
|
24
|
-
logout: () => Promise<void>;
|
|
25
|
-
signUp: (username: string, email: string, password: string) => Promise<any>;
|
|
26
|
-
setApiUrl: (url: string) => void;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Hook that provides authenticated fetch functionality
|
|
30
|
-
* Uses the existing OxyServices instance from useOxy context
|
|
31
|
-
*/
|
|
32
|
-
export declare function useAuthFetch(): AuthFetchAPI;
|
|
33
|
-
export default useAuthFetch;
|
|
34
|
-
//# sourceMappingURL=useAuthFetch.d.ts.map
|