From d2c756a4d303e337d6e5c8e313fedbe9ee85de04 Mon Sep 17 00:00:00 2001 From: Emanuele Dall'Ara <71103219+LeleDallas@users.noreply.github.com> Date: Wed, 4 Dec 2024 18:12:07 +0100 Subject: [PATCH] Merge branch 'master' into IOBP-1020-using-optimistic-ui-for-remove-payment-method-action --- .env.local | 5 +- .env.production | 5 +- .github/workflows/release-new-cycle.yml | 2 +- CHANGELOG.md | 28 ++++ android/app/build.gradle | 4 +- ios/ItaliaApp.xcodeproj/project.pbxproj | 4 +- ios/ItaliaApp/Info.plist | 6 +- ios/ItaliaAppTests/Info.plist | 4 +- ios/Podfile.lock | 10 +- locales/en/index.yml | 3 +- locales/it/index.yml | 3 +- package.json | 6 +- publiccode.yml | 2 +- ts/__mocks__/react-native-config.ts | 3 +- .../SectionStatus/__tests__/index.test.tsx | 12 +- .../LoadingScreenContent.test.tsx.snap | 4 + ...OperationResultScreenContent.test.tsx.snap | 1 + .../IOScrollViewCentredContent.test.tsx.snap | 12 ++ .../IOScrollViewWithListItems.test.tsx.snap | 3 + ts/config.ts | 2 - .../bonus/cgn/components/CgnWalletCard.tsx | 4 +- .../details/getCgnInformationSaga.ts | 2 +- .../cgn/saga/networking/unsubscribe/index.ts | 2 +- .../CGNDiscountExpiredScreen.test.tsx.snap | 1 + .../CgnDiscountCodeScreen.test.tsx.snap | 1 + .../CgnDiscountDetailScreen.test.tsx.snap | 1 + ts/features/cie/analytics/index.ts | 14 +- ts/features/common/store/reducers/index.ts | 2 +- ts/features/design-system/core/DSWallet.tsx | 4 +- .../design-system/navigation/navigator.tsx | 112 ++++++------- .../design-system/navigation/routes.ts | 2 +- .../QtspClauseListItem.test.tsx.snap | 1 + .../FimsUpdateAppAlert.test.tsx.snap | 1 + .../components/FimsFullScreenErrors.tsx | 19 ++- .../screens/FimsFlowHandlerScreen.tsx | 12 +- .../wallet/components/IdPayWalletCard.tsx | 2 +- .../saga/__test__/handleGetWallet.test.ts | 2 +- .../idpay/wallet/saga/handleGetWallet.ts | 2 +- .../__snapshots__/IngressScreen.test.tsx.snap | 1 + .../components/ItwUpcomingWalletBanner.tsx | 35 ---- .../ItwUpcomingWalletBanner.test.tsx | 92 ----------- .../ItwFeedbackBanner.test.tsx.snap | 1 + .../__tests__/ItwDiscoveryBanner.test.tsx | 11 -- .../ItwDiscoveryBanner.test.tsx.snap | 2 + .../common/saga/__tests__/index.test.ts | 156 ------------------ ts/features/itwallet/common/saga/index.ts | 44 +---- .../store/selectors/__tests__/index.test.ts | 25 +-- .../itwallet/common/store/selectors/index.ts | 6 +- .../common/utils/itwAttestationUtils.ts | 15 ++ ...handleWalletCredentialsRehydration.test.ts | 2 +- .../saga/handleItwCredentialsRemoveSaga.ts | 2 +- .../saga/handleItwCredentialsStoreSaga.ts | 2 +- .../handleWalletCredentialsRehydration.ts | 4 +- ...wCredentialPreviewClaimsList.test.tsx.snap | 1 + ...ntialAsyncContinuationScreen.test.tsx.snap | 4 + .../checkWalletInstanceStateSaga.test.ts | 64 ++----- .../saga/checkWalletInstanceStateSaga.ts | 37 +---- .../saga/handleWalletInstanceResetSaga.ts | 2 +- .../navigation/useItwLinkingOptions.tsx | 8 +- .../screens/WalletCardOnboardingScreen.tsx | 5 +- .../WalletCardOnboardingScreen.test.tsx | 15 -- .../components/ItwTrialSystemSection.tsx | 78 --------- .../playgrounds/screens/ItwPlayground.tsx | 11 -- ...ItwPresentationClaimsSection.test.tsx.snap | 2 + .../components/ItwCredentialWalletCard.tsx | 4 +- .../LandingScreenBannerPicker.test.tsx.snap | 2 + .../__snapshots__/EmptyList.test.tsx.snap | 24 +++ .../__snapshots__/Footer.test.tsx.snap | 2 + .../__snapshots__/Preconditions.test.tsx.snap | 1 + .../PreconditionsContent.test.tsx.snap | 6 + .../PreconditionsFeedback.test.tsx.snap | 2 + .../PreconditionsFooter.test.tsx.snap | 4 + .../PreconditionsTitle.test.tsx.snap | 5 + .../SecuritySuggestions.test.tsx.snap | 1 + .../TabNavigationContainer.test.tsx.snap | 2 + .../WrappedMessageListItem.test.tsx.snap | 8 + ...MessageDetailsAttachmentItem.test.tsx.snap | 4 + .../MessageDetailsAttachments.test.tsx.snap | 9 + .../MessageDetailsFooter.test.tsx.snap | 8 + .../MessageDetailsHeader.test.tsx.snap | 1 + .../MessageDetailsPayment.test.tsx.snap | 2 + .../MessageDetailsPaymentButton.test.tsx.snap | 2 + .../MessageDetailsReminder.test.tsx.snap | 5 + ...essageDetailsReminderExpired.test.tsx.snap | 2 + ...ssageDetailsReminderExpiring.test.tsx.snap | 1 + ...ilsScrollViewAdditionalSpace.test.tsx.snap | 6 + .../MessageDetailsStickyFooter.test.tsx.snap | 8 + .../MessagePaymentItem.test.tsx.snap | 3 + .../OrganizationHeader.test.tsx.snap | 1 + .../RemoteContentBanner.test.tsx.snap | 1 + .../ShowMoreListItem.test.tsx.snap | 8 + .../MessageAttachment.test.tsx.snap | 2 + .../MessageGreenPassScreen.test.tsx.snap | 1 + .../MessageRouterScreen.test.tsx.snap | 5 + .../MessagesHomeScreen.test.tsx.snap | 1 + .../store/reducers/___tests___/cards.test.ts | 113 ------------- .../PaymentsBizEventsTransactionCartList.tsx | 5 +- ...tsBizEventsTransactionFeeAmountSection.tsx | 57 +++++++ ...entsBizEventsTransactionHeadingSection.tsx | 53 +----- ...aymentsBizEventsTransactionInfoSection.tsx | 24 +-- ...aymentsBizEventsTransactionLoadingList.tsx | 5 +- ...aymentsBizEventsTransactionTotalAmount.tsx | 6 +- .../PaymentsBizEventsFilterTabs.test.tsx | 61 +++++++ ...mentsBizEventsTransactionCartList.test.tsx | 75 +++++++++ ...EventsTransactionFeeAmountSection.test.tsx | 52 ++++++ ...izEventsTransactionHeadingSection.test.tsx | 53 ++++++ ...tsBizEventsTransactionInfoSection.test.tsx | 131 +++++++++++++++ ...tsBizEventsTransactionLoadingList.test.tsx | 25 +++ ...tsBizEventsTransactionTotalAmount.test.tsx | 45 +++++ .../utils/__tests__/index.test.ts | 38 +++++ .../bizEventsTransaction/utils/index.ts | 10 ++ .../screens/WalletPaymentOutcomeScreen.tsx | 5 +- .../WalletPaymentOutcomeScreen.test.tsx | 14 ++ .../WalletPaymentOutcomeScreen.test.tsx.snap | 29 +++- .../common/components/PaymentCardSmall.tsx | 2 +- .../PaymentCardBig.test.tsx.snap | 2 + .../PaymentCardSmall.test.tsx.snap | 1 + ts/features/payments/common/utils/index.ts | 2 +- .../details/saga/handleGetWalletDetails.ts | 2 +- .../wallet/components/PaymentWalletCard.tsx | 4 +- ...handleGetPaymentsWalletUserMethods.test.ts | 4 +- .../handleGetPaymentsWalletUserMethods.ts | 2 +- .../F24ListBottomSheetLink.test.tsx.snap | 3 + .../__snapshots__/F24Section.test.tsx.snap | 6 + .../MessageBottomMenu.test.tsx.snap | 72 ++++++++ .../MessageCancelledContent.test.tsx.snap | 27 +++ .../MessageDetails.test.tsx.snap | 1 + .../__snapshots__/MessageFooter.test.tsx.snap | 4 + .../MessagePaymentBottomSheet.test.tsx.snap | 2 + .../MessagePayments.test.tsx.snap | 12 ++ .../__snapshots__/Timeline.test.tsx.snap | 2 + .../TimelineListItem.test.tsx.snap | 4 + .../MessageDetailsScreen.test.tsx.snap | 2 + .../PaidPaymentScreen.test.tsx.snap | 1 + .../NotificationPreviewSample.test.tsx.snap | 4 + ...ificationsPreferencesPreview.test.tsx.snap | 4 + ...ProfileNotificationsSettings.test.tsx.snap | 128 ++++++++++++++ ...tificationsInfoScreenConsent.test.tsx.snap | 1 + ...tificationsPreferencesScreen.test.tsx.snap | 5 + ...otificationPermissionsScreen.test.tsx.snap | 1 + .../FeaturedInstitutionCard.test.tsx.snap | 2 + .../FeaturedServiceCard.test.tsx.snap | 2 + .../trialSystem/store/reducers/index.ts | 14 +- .../components/WalletCardBaseComponent.tsx | 0 .../components/WalletCardPressableBase.tsx | 0 .../components/WalletCardSkeleton.tsx | 0 .../WalletCardsCategoryContainer.tsx | 0 .../WalletCardsCategoryRetryErrorBanner.tsx | 0 .../components/WalletCardsContainer.tsx | 22 +-- .../components/WalletCategoryFilterTabs.tsx | 0 .../components/WalletEmptyScreenContent.tsx | 0 .../WalletCardBaseComponent.test.tsx | 0 .../WalletCardsCategoryContainer.test.tsx | 0 .../__tests__/WalletCardsContainer.test.tsx | 44 ++--- .../WalletCategoryFilterTabs.test.tsx | 0 .../WalletEmptyScreenContent.test.tsx | 0 .../WalletEmptyScreenContent.test.tsx.snap | 1 + ...leWalletLoadingPlaceholdersTimeout.test.ts | 0 .../handleWalletLoadingStateSaga.test.ts | 0 .../handleWalletLoadingPlaceholdersTimeout.ts | 0 .../saga/handleWalletLoadingStateSaga.ts | 0 .../{newWallet => wallet}/saga/index.ts | 0 .../screens/WalletHomeScreen.tsx | 27 ++- .../__tests__/WalletHomeScreen.test.tsx | 0 .../store/__tests__/cards.test.ts | 0 .../store/__tests__/placeholders.test.ts | 0 .../store/actions/cards.ts | 0 .../store/actions/index.ts | 0 .../store/actions/placeholders.ts | 0 .../store/actions/preferences.ts | 0 .../store/reducers/cards.ts | 0 .../store/reducers/index.ts | 0 .../store/reducers/placeholders.ts | 0 .../store/reducers/preferences.ts | 0 .../store/selectors/index.ts | 0 .../{newWallet => wallet}/types/index.ts | 0 .../{newWallet => wallet}/utils/index.tsx | 0 ts/hooks/useStatusAlertProps.ts | 31 +++- ts/mixpanelConfig/mixpanelPropertyUtils.ts | 4 +- ts/navigation/TabNavigator.tsx | 4 +- ts/navigation/params/MainTabParamsList.ts | 2 +- ts/sagas/startup.ts | 4 +- .../__snapshots__/LandingScreen.test.tsx.snap | 2 + .../ActivateNfcScreen.test.tsx.snap | 1 + ts/screens/authentication/analytics/index.ts | 10 +- ts/screens/profile/DeveloperModeSection.tsx | 7 + .../LanguagesPreferencesScreen.test.tsx.snap | 1 + ...tificationsPreferencesScreen.test.tsx.snap | 18 ++ .../SecurityScreen.test.tsx.snap | 1 + .../SettingsDiscoveryBanner.test.tsx.snap | 1 + ts/store/actions/types.ts | 4 +- ts/utils/storeReview.ts | 3 + yarn.lock | 26 ++- 193 files changed, 1432 insertions(+), 957 deletions(-) delete mode 100644 ts/features/itwallet/common/components/ItwUpcomingWalletBanner.tsx delete mode 100644 ts/features/itwallet/common/components/__tests__/ItwUpcomingWalletBanner.test.tsx delete mode 100644 ts/features/itwallet/common/saga/__tests__/index.test.ts delete mode 100644 ts/features/itwallet/playgrounds/components/ItwTrialSystemSection.tsx delete mode 100644 ts/features/newWallet/store/reducers/___tests___/cards.test.ts create mode 100644 ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionFeeAmountSection.tsx create mode 100644 ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsFilterTabs.test.tsx create mode 100644 ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionCartList.test.tsx create mode 100644 ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionFeeAmountSection.test.tsx create mode 100644 ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionHeadingSection.test.tsx create mode 100644 ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionInfoSection.test.tsx create mode 100644 ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionLoadingList.test.tsx create mode 100644 ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionTotalAmount.test.tsx rename ts/features/{newWallet => wallet}/components/WalletCardBaseComponent.tsx (100%) rename ts/features/{newWallet => wallet}/components/WalletCardPressableBase.tsx (100%) rename ts/features/{newWallet => wallet}/components/WalletCardSkeleton.tsx (100%) rename ts/features/{newWallet => wallet}/components/WalletCardsCategoryContainer.tsx (100%) rename ts/features/{newWallet => wallet}/components/WalletCardsCategoryRetryErrorBanner.tsx (100%) rename ts/features/{newWallet => wallet}/components/WalletCardsContainer.tsx (90%) rename ts/features/{newWallet => wallet}/components/WalletCategoryFilterTabs.tsx (100%) rename ts/features/{newWallet => wallet}/components/WalletEmptyScreenContent.tsx (100%) rename ts/features/{newWallet => wallet}/components/__tests__/WalletCardBaseComponent.test.tsx (100%) rename ts/features/{newWallet => wallet}/components/__tests__/WalletCardsCategoryContainer.test.tsx (100%) rename ts/features/{newWallet => wallet}/components/__tests__/WalletCardsContainer.test.tsx (84%) rename ts/features/{newWallet => wallet}/components/__tests__/WalletCategoryFilterTabs.test.tsx (100%) rename ts/features/{newWallet => wallet}/components/__tests__/WalletEmptyScreenContent.test.tsx (100%) rename ts/features/{newWallet => wallet}/components/__tests__/__snapshots__/WalletEmptyScreenContent.test.tsx.snap (99%) rename ts/features/{newWallet => wallet}/saga/__tests__/handleWalletLoadingPlaceholdersTimeout.test.ts (100%) rename ts/features/{newWallet => wallet}/saga/__tests__/handleWalletLoadingStateSaga.test.ts (100%) rename ts/features/{newWallet => wallet}/saga/handleWalletLoadingPlaceholdersTimeout.ts (100%) rename ts/features/{newWallet => wallet}/saga/handleWalletLoadingStateSaga.ts (100%) rename ts/features/{newWallet => wallet}/saga/index.ts (100%) rename ts/features/{newWallet => wallet}/screens/WalletHomeScreen.tsx (86%) rename ts/features/{newWallet => wallet}/screens/__tests__/WalletHomeScreen.test.tsx (100%) rename ts/features/{newWallet => wallet}/store/__tests__/cards.test.ts (100%) rename ts/features/{newWallet => wallet}/store/__tests__/placeholders.test.ts (100%) rename ts/features/{newWallet => wallet}/store/actions/cards.ts (100%) rename ts/features/{newWallet => wallet}/store/actions/index.ts (100%) rename ts/features/{newWallet => wallet}/store/actions/placeholders.ts (100%) rename ts/features/{newWallet => wallet}/store/actions/preferences.ts (100%) rename ts/features/{newWallet => wallet}/store/reducers/cards.ts (100%) rename ts/features/{newWallet => wallet}/store/reducers/index.ts (100%) rename ts/features/{newWallet => wallet}/store/reducers/placeholders.ts (100%) rename ts/features/{newWallet => wallet}/store/reducers/preferences.ts (100%) rename ts/features/{newWallet => wallet}/store/selectors/index.ts (100%) rename ts/features/{newWallet => wallet}/types/index.ts (100%) rename ts/features/{newWallet => wallet}/utils/index.tsx (100%) create mode 100644 ts/utils/storeReview.ts diff --git a/.env.local b/.env.local index 4a9c1d485e3..fc0696a2f32 100644 --- a/.env.local +++ b/.env.local @@ -85,7 +85,6 @@ WALLET_API_BASEURL='http://127.0.0.1:3000' # Wallet V3 test/env RESTful API WALLET_API_UAT_BASEURL='https://api.uat.platform.pagopa.it' # IT Wallet -ITW_TRIAL_ID="01J2GN4TA8FB6DPTAX3T3YD6M1" ITW_WALLET_PROVIDER_BASE_URL="https://api-app.io.pagopa.it/api/v1/wallet" ITW_PID_PROVIDER_BASE_URL="https://pre.eid.wallet.ipzs.it" ITW_EAA_PROVIDER_BASE_URL="https://pre.eaa.wallet.ipzs.it" @@ -100,9 +99,9 @@ ITW_BYPASS_IDENTITY_MATCH=YES ITW_IDP_HINT_TEST=YES # IPZS Privacy Policy URL ITW_IPZS_PRIVACY_URL='https://io.italia.it/informativa-ipzs' -# ITW Trial Privacy Policy URL +# ITW Privacy Policy URL ITW_PRIVACY_URL='https://io.italia.it/informativa-sperimentazione' -# ITW Trial TOS URL +# ITW TOS URL ITW_TOS_URL='https://io.italia.it/tos-sperimentazione' # ITW Documents on IO URL ITW_DOCUMENTS_ON_IO_URL='https://io.italia.it/documenti-su-io' diff --git a/.env.production b/.env.production index f60272bdca9..d96912249d9 100644 --- a/.env.production +++ b/.env.production @@ -85,7 +85,6 @@ WALLET_API_BASEURL='https://api.platform.pagopa.it' # Wallet test/env RESTful API WALLET_API_UAT_BASEURL='https://api.uat.platform.pagopa.it' # IT Wallet -ITW_TRIAL_ID="01J2GN4TA8FB6DPTAX3T3YD6M1" ITW_WALLET_PROVIDER_BASE_URL="https://api-app.io.pagopa.it/api/v1/wallet" ITW_PID_PROVIDER_BASE_URL="https://eid.wallet.ipzs.it" ITW_EAA_PROVIDER_BASE_URL="https://eaa.wallet.ipzs.it" @@ -100,9 +99,9 @@ ITW_BYPASS_IDENTITY_MATCH=NO ITW_IDP_HINT_TEST=NO # IPZS Privacy Policy URL ITW_IPZS_PRIVACY_URL='https://io.italia.it/informativa-ipzs' -# ITW Trial Privacy Policy URL +# ITW Privacy Policy URL ITW_PRIVACY_URL='https://io.italia.it/informativa-sperimentazione' -# ITW Trial TOS URL +# ITW TOS URL ITW_TOS_URL='https://io.italia.it/tos-sperimentazione' # ITW Documents on IO URL ITW_DOCUMENTS_ON_IO_URL='https://io.italia.it/documenti-su-io' diff --git a/.github/workflows/release-new-cycle.yml b/.github/workflows/release-new-cycle.yml index c45ff71799e..1f9549cc431 100644 --- a/.github/workflows/release-new-cycle.yml +++ b/.github/workflows/release-new-cycle.yml @@ -48,7 +48,7 @@ jobs: fi - id: push-tags run: | - git push --no-verify --follow-tags origin HEAD:${{ github.head_ref }} + git push --no-verify --follow-tags origin HEAD:${GITHUB_REF#refs/heads/} - id: github-release-creation run: | APP_VERSION=$(node -p -e "require('./package.json').version") diff --git a/CHANGELOG.md b/CHANGELOG.md index 70c3054418b..fa0d62c10c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,34 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [2.79.0-rc.1](https://github.com/pagopa/io-app/compare/2.79.0-rc.0...2.79.0-rc.1) (2024-12-03) + + +### Chores + +* **Cross:** [[IOAPPX-414](https://pagopa.atlassian.net/browse/IOAPPX-414)] Add `NativeStackNavigator` to the Design System section ([#6340](https://github.com/pagopa/io-app/issues/6340)) ([ac9c2bd](https://github.com/pagopa/io-app/commit/ac9c2bd53c6ade076f2e0b490a495e84fc8228f8)) +* [[IOBP-1040](https://pagopa.atlassian.net/browse/IOBP-1040)] Update the latest receipt list everytime the user closes the success outcome ([#6485](https://github.com/pagopa/io-app/issues/6485)) ([446cabc](https://github.com/pagopa/io-app/commit/446cabce84ff97569dbe8b705f650f61583c0b6d)) +* [[IOPLT-778](https://pagopa.atlassian.net/browse/IOPLT-778)] Adds possible webUrl action on StatusMessage component ([#6453](https://github.com/pagopa/io-app/issues/6453)) ([0b3b8e3](https://github.com/pagopa/io-app/commit/0b3b8e396b27870e51a28ae3b8ad0e7307b9845b)) +* [[IOPLT-780](https://pagopa.atlassian.net/browse/IOPLT-780)] Adds `react-native-store-review` library to request on demand review ([#6486](https://github.com/pagopa/io-app/issues/6486)) ([6b11464](https://github.com/pagopa/io-app/commit/6b114641879503c0cc315610c077b02214d07c7b)) + +## [2.79.0-rc.0](https://github.com/pagopa/io-app/compare/2.78.0-rc.12...2.79.0-rc.0) (2024-12-03) + + +### Bug Fixes + +* [[IOBP-1021](https://pagopa.atlassian.net/browse/IOBP-1021)] Show retry banner when all the other cards fetch fails ([#6478](https://github.com/pagopa/io-app/issues/6478)) ([e005566](https://github.com/pagopa/io-app/commit/e005566756d4bd1804ade8050c357627a0442c99)) +* [[IOBP-1037](https://pagopa.atlassian.net/browse/IOBP-1037)] Remove asterisks from card transaction info ([#6484](https://github.com/pagopa/io-app/issues/6484)) ([4713bd2](https://github.com/pagopa/io-app/commit/4713bd2487e7b4d37362cb46f4c60ad8aa5c82d9)) +* [[IOBP-1039](https://pagopa.atlassian.net/browse/IOBP-1039)] Payments home screen loading UI glitch ([#6480](https://github.com/pagopa/io-app/issues/6480)) ([d81d26d](https://github.com/pagopa/io-app/commit/d81d26d9756e415f65dc999b57c2163d48e13158)) +* [[IOBP-961](https://pagopa.atlassian.net/browse/IOBP-961)] Missing German key for FAQ ([#6479](https://github.com/pagopa/io-app/issues/6479)) ([d7ae804](https://github.com/pagopa/io-app/commit/d7ae8040f6b13d47184fd74be522e701961de417)) +* [[PE-845](https://pagopa.atlassian.net/browse/PE-845)] CGN Replace legacy error screen ([#6469](https://github.com/pagopa/io-app/issues/6469)) ([1b268af](https://github.com/pagopa/io-app/commit/1b268aff13a97ba9b661367e4812470dfb60b3a8)) + + +### Chores + +* [[IOBP-1028](https://pagopa.atlassian.net/browse/IOBP-1028)] Mixpanel tracking onboarding card methods events on failure ([#6465](https://github.com/pagopa/io-app/issues/6465)) ([e64f8a3](https://github.com/pagopa/io-app/commit/e64f8a322be520ce3e8acc81d589c5e4fa44bd25)) +* [[PE-803](https://pagopa.atlassian.net/browse/PE-803)] CGN discount outcome screen ([#6470](https://github.com/pagopa/io-app/issues/6470)) ([876403a](https://github.com/pagopa/io-app/commit/876403aa411ce090a5e14fb634896bd2e4cab6c8)) +* **Cross:** [[IOAPPX-444](https://pagopa.atlassian.net/browse/IOAPPX-444)] Remove legacy components from the DS ([#6475](https://github.com/pagopa/io-app/issues/6475)) ([d3660d3](https://github.com/pagopa/io-app/commit/d3660d33fe4e44d7bd1c70b42b6f8bd4677f7aac)) + ## [2.78.0-rc.12](https://github.com/pagopa/io-app/compare/2.78.0-rc.11...2.78.0-rc.12) (2024-11-29) ## [2.78.0-rc.11](https://github.com/pagopa/io-app/compare/2.78.0-rc.10...2.78.0-rc.11) (2024-11-28) diff --git a/android/app/build.gradle b/android/app/build.gradle index 45a3b0dd366..802c795ac74 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -113,8 +113,8 @@ android { applicationId "it.pagopa.io.app" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 100154882 - versionName "2.78.0.12" + versionCode 100154884 + versionName "2.79.0.1" multiDexEnabled true // The resConfigs attribute will remove all not required localized resources while building the application, // including the localized resources from libraries. diff --git a/ios/ItaliaApp.xcodeproj/project.pbxproj b/ios/ItaliaApp.xcodeproj/project.pbxproj index 6a683eba8ba..3bc6e947ed0 100644 --- a/ios/ItaliaApp.xcodeproj/project.pbxproj +++ b/ios/ItaliaApp.xcodeproj/project.pbxproj @@ -805,7 +805,7 @@ CODE_SIGN_ENTITLEMENTS = ItaliaApp/ItaliaApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 12; + CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = M2X5YQ4BJ7; ENABLE_BITCODE = NO; @@ -842,7 +842,7 @@ CODE_SIGN_ENTITLEMENTS = ItaliaApp/ItaliaApp.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CURRENT_PROJECT_VERSION = 12; + CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = M2X5YQ4BJ7; ENABLE_BITCODE = NO; diff --git a/ios/ItaliaApp/Info.plist b/ios/ItaliaApp/Info.plist index f95fe0936b1..8c2071a2310 100644 --- a/ios/ItaliaApp/Info.plist +++ b/ios/ItaliaApp/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.78.0 + 2.79.0 CFBundleSignature ???? CFBundleURLTypes @@ -36,7 +36,7 @@ CFBundleVersion - 12 + 1 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes @@ -165,4 +165,4 @@ UIUserInterfaceStyle Light - \ No newline at end of file + diff --git a/ios/ItaliaAppTests/Info.plist b/ios/ItaliaAppTests/Info.plist index caa004d2c41..6c7c3cfde11 100644 --- a/ios/ItaliaAppTests/Info.plist +++ b/ios/ItaliaAppTests/Info.plist @@ -15,10 +15,10 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 2.78.0 + 2.79.0 CFBundleSignature ???? CFBundleVersion - 12 + 1 \ No newline at end of file diff --git a/ios/Podfile.lock b/ios/Podfile.lock index efb99414ef4..08cb0b3c1e1 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -626,7 +626,7 @@ PODS: - RCT-Folly (= 2021.07.22.00) - React-Core - ReactCommon/turbomodule/core - - RNScreens (3.31.1): + - RNScreens (3.35.0): - RCT-Folly (= 2021.07.22.00) - React-Core - React-RCTImage @@ -638,6 +638,8 @@ PODS: - Sentry/HybridSDK (= 8.36.0) - RNShare (10.2.1): - React-Core + - RNStoreReview (0.4.3): + - React-Core - RNSVG (15.1.0): - React-Core - Sentry/HybridSDK (8.36.0) @@ -793,6 +795,7 @@ DEPENDENCIES: - RNScreens (from `../node_modules/react-native-screens`) - "RNSentry (from `../node_modules/@sentry/react-native`)" - RNShare (from `../node_modules/react-native-share`) + - RNStoreReview (from `../node_modules/react-native-store-review`) - RNSVG (from `../node_modules/react-native-svg`) - VisionCamera (from `../node_modules/react-native-vision-camera`) - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) @@ -1013,6 +1016,8 @@ EXTERNAL SOURCES: :path: "../node_modules/@sentry/react-native" RNShare: :path: "../node_modules/react-native-share" + RNStoreReview: + :path: "../node_modules/react-native-store-review" RNSVG: :path: "../node_modules/react-native-svg" VisionCamera: @@ -1124,9 +1129,10 @@ SPEC CHECKSUMS: RNQrGenerator: 1676221c08bfabec978242989c733810dad20959 RNReactNativeHapticFeedback: 6d24decfa94e037c2ecc312407d2a057b7933f10 RNReanimated: c2027c397233801d4aceb7375e000ac87ec2e67d - RNScreens: b8d370282cdeae9df85dd5eab20c88eb5181243b + RNScreens: 2fc874a2605e88dedf43204a79fad1d2da4abfbe RNSentry: 3e667c2c6ea5d35ea292c7f262c6b44e43842cc1 RNShare: 0fad69ae2d71de9d1f7b9a43acf876886a6cb99c + RNStoreReview: 31dbfd0dac2eea9675f0b84f1dd3261c2110c337 RNSVG: 50cf2c7018e57cf5d3522d98d0a3a4dd6bf9d093 Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57 SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 diff --git a/locales/en/index.yml b/locales/en/index.yml index 0b3426af6b0..8fa281313c0 100644 --- a/locales/en/index.yml +++ b/locales/en/index.yml @@ -316,6 +316,7 @@ profile: clearAsyncStorage: Clear AsyncStorage dumpAsyncStorage: Dump AsyncStorage content to console sentryTestEvent: Send Exception to Sentry + storeReview: Request a store review contextualHelpTitle: What you can do in {{pageName}} section legacyContextualHelpContent: !include profile/legacy_profile_account_main.md contextualHelpContent: !include profile/profile_account_main.md @@ -1980,7 +1981,7 @@ wallet: title: Hai interrotto il pagamento subtitle: Verifica l’esito dalla sezione Pagamenti. Se intendi pagare, attendi qualche minuto prima di riprovare. INSUFFICIENT_AVAILABILITY_ERROR: - title: Il saldo è insufficiente + title: Il saldo della tua carta è insufficiente subtitle: Non è stato addebitato alcun importo. Prima di riprovare, aggiungi fondi alla carta o usa un altro metodo di pagamento. CVV_ERROR: title: Il codice di sicurezza inserito è errato diff --git a/locales/it/index.yml b/locales/it/index.yml index 7ae11958b50..18868be5856 100644 --- a/locales/it/index.yml +++ b/locales/it/index.yml @@ -316,6 +316,7 @@ profile: clearAsyncStorage: Cancella contenuto di AsyncStorage dumpAsyncStorage: Scarica contenuto di AsyncStorage sentryTestEvent: Invia Exception a Sentry + storeReview: Richiedi una recensione sullo store contextualHelpTitle: Cosa puoi fare nella sezione {{pageName}} legacyContextualHelpContent: !include profile/legacy_profile_account_main.md contextualHelpContent: !include profile/profile_account_main.md @@ -1980,7 +1981,7 @@ wallet: title: Hai interrotto il pagamento subtitle: Verifica l’esito dalla sezione Pagamenti. Se intendi pagare, attendi qualche minuto prima di riprovare. INSUFFICIENT_AVAILABILITY_ERROR: - title: Il saldo è insufficiente + title: Il saldo della tua carta è insufficiente subtitle: Non è stato addebitato alcun importo. Prima di riprovare, aggiungi fondi alla carta o usa un altro metodo di pagamento. CVV_ERROR: title: Il codice di sicurezza inserito è errato diff --git a/package.json b/package.json index 9d8fc228b11..1c284bdd9c9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "italia-app", - "version": "2.78.0-rc.12", + "version": "2.79.0-rc.1", "io_backend_api": "https://raw.githubusercontent.com/pagopa/io-backend/v16.4.0-RELEASE/api_backend.yaml", "io_session_manager_api": "https://raw.githubusercontent.com/pagopa/io-auth-n-identity-domain/io-session-manager@1.0.0/apps/io-session-manager/api/internal.yaml", "io_session_manager_public_api": "https://raw.githubusercontent.com/pagopa/io-auth-n-identity-domain/io-session-manager@1.0.0/apps/io-session-manager/api/public.yaml", @@ -130,6 +130,7 @@ "@react-navigation/bottom-tabs": "6.5.11", "@react-navigation/material-top-tabs": "6.6.5", "@react-navigation/native": "6.1.9", + "@react-navigation/native-stack": "^6.11.0", "@react-navigation/stack": "6.3.20", "@redux-saga/testing-utils": "^1.1.3", "@sentry/react-native": "^5.32.0", @@ -196,9 +197,10 @@ "react-native-responsive-screen": "^1.4.1", "react-native-safe-area-context": "^4.10.4", "react-native-screen-brightness": "^2.0.0-alpha", - "react-native-screens": "^3.31.1", + "react-native-screens": "^3.35.0", "react-native-share": "^10.2.1", "react-native-splash-screen": "^3.2.0", + "react-native-store-review": "^0.4.3", "react-native-svg": "^15.1.0", "react-native-tab-view": "3.5.2", "react-native-url-polyfill": "^2.0.0", diff --git a/publiccode.yml b/publiccode.yml index 578eed85ee8..c48b6ae100d 100644 --- a/publiccode.yml +++ b/publiccode.yml @@ -9,7 +9,7 @@ releaseDate: "2024-11-21" url: "https://github.com/pagopa/io-app" applicationSuite: IO landingURL: "https://io.italia.it/" -softwareVersion: 2.78.0-rc.12 +softwareVersion: 2.79.0-rc.1 developmentStatus: beta softwareType: standalone/mobile roadmap: "https://io.italia.it/" diff --git a/ts/__mocks__/react-native-config.ts b/ts/__mocks__/react-native-config.ts index bdf0e833e0c..61b2729651d 100644 --- a/ts/__mocks__/react-native-config.ts +++ b/ts/__mocks__/react-native-config.ts @@ -1,5 +1,4 @@ export default { PREMIUM_MESSAGES_OPT_IN_ENABLED: "YES", - SCAN_ADDITIONAL_BARCODES_ENABLED: "YES", - ITW_TRIAL_ID: "baz" + SCAN_ADDITIONAL_BARCODES_ENABLED: "YES" }; diff --git a/ts/components/SectionStatus/__tests__/index.test.tsx b/ts/components/SectionStatus/__tests__/index.test.tsx index bdf32f573ab..3123e573464 100644 --- a/ts/components/SectionStatus/__tests__/index.test.tsx +++ b/ts/components/SectionStatus/__tests__/index.test.tsx @@ -3,7 +3,6 @@ import * as O from "fp-ts/lib/Option"; import * as React from "react"; import configureMockStore from "redux-mock-store"; import { IOColors } from "@pagopa/io-app-design-system"; -import * as pot from "@pagopa/ts-commons/lib/pot"; import { ToolEnum } from "../../../../definitions/content/AssistanceToolConfig"; import { Config } from "../../../../definitions/content/Config"; import { @@ -15,9 +14,6 @@ import { SectionStatusKey } from "../../../store/reducers/backendStatus/sectionS import { renderScreenWithNavigationStoreContext } from "../../../utils/testWrapper"; import { openWebUrl } from "../../../utils/url"; import SectionStatusComponent from "../index"; -import { SubscriptionStateEnum } from "../../../../definitions/trial_system/SubscriptionState"; -import { itwTrialId } from "../../../config"; -import { TrialSystemState } from "../../../features/trialSystem/store/reducers"; import { PersistedFeaturesState } from "../../../features/common/store/reducers"; import { ItwLifecycleState } from "../../../features/itwallet/lifecycle/store/reducers"; import { ItWalletState } from "../../../features/itwallet/common/store/reducers"; @@ -67,10 +63,7 @@ const mockSectionStatusState = ( itWallet: { lifecycle: ItwLifecycleState.ITW_LIFECYCLE_INSTALLED } as ItWalletState - } as PersistedFeaturesState, - trialSystem: { - [itwTrialId]: pot.some(SubscriptionStateEnum.UNSUBSCRIBED) - } as TrialSystemState + } as PersistedFeaturesState } as unknown as GlobalState); const mockStore = configureMockStore(); @@ -185,9 +178,6 @@ describe("Section Status Component should return null", () => { mockStore({ remoteConfig: O.none, sectionStatus: O.none, - trialSystem: { - [itwTrialId]: pot.some(SubscriptionStateEnum.UNSUBSCRIBED) - } as TrialSystemState, features: { itWallet: { lifecycle: ItwLifecycleState.ITW_LIFECYCLE_INSTALLED diff --git a/ts/components/screens/__tests__/__snapshots__/LoadingScreenContent.test.tsx.snap b/ts/components/screens/__tests__/__snapshots__/LoadingScreenContent.test.tsx.snap index 319b5f9794a..e9a281adf22 100644 --- a/ts/components/screens/__tests__/__snapshots__/LoadingScreenContent.test.tsx.snap +++ b/ts/components/screens/__tests__/__snapshots__/LoadingScreenContent.test.tsx.snap @@ -204,6 +204,7 @@ exports[`LoadingScreenContent should match the snapshot with title, a child, hea "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -801,6 +802,7 @@ exports[`LoadingScreenContent should match the snapshot with title, a child, hea "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1398,6 +1400,7 @@ exports[`LoadingScreenContent should match the snapshot with title, no children, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1992,6 +1995,7 @@ exports[`LoadingScreenContent should match the snapshot with title, no children, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/components/screens/__tests__/__snapshots__/OperationResultScreenContent.test.tsx.snap b/ts/components/screens/__tests__/__snapshots__/OperationResultScreenContent.test.tsx.snap index 09cbda15099..d1a598a2797 100644 --- a/ts/components/screens/__tests__/__snapshots__/OperationResultScreenContent.test.tsx.snap +++ b/ts/components/screens/__tests__/__snapshots__/OperationResultScreenContent.test.tsx.snap @@ -204,6 +204,7 @@ exports[`OperationResultScreenContent should match the snapshot with default pro "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/components/ui/__test__/__snapshots__/IOScrollViewCentredContent.test.tsx.snap b/ts/components/ui/__test__/__snapshots__/IOScrollViewCentredContent.test.tsx.snap index 833833d4ac2..fe0c4c8655d 100644 --- a/ts/components/ui/__test__/__snapshots__/IOScrollViewCentredContent.test.tsx.snap +++ b/ts/components/ui/__test__/__snapshots__/IOScrollViewCentredContent.test.tsx.snap @@ -204,6 +204,7 @@ exports[`IOScrollViewCentredContent should match snapshot, with description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1130,6 +1131,7 @@ exports[`IOScrollViewCentredContent should match snapshot, with description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2281,6 +2283,7 @@ exports[`IOScrollViewCentredContent should match snapshot, with description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3321,6 +3324,7 @@ exports[`IOScrollViewCentredContent should match snapshot, with description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4141,6 +4145,7 @@ exports[`IOScrollViewCentredContent should match snapshot, with description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5186,6 +5191,7 @@ exports[`IOScrollViewCentredContent should match snapshot, with description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -6120,6 +6126,7 @@ exports[`IOScrollViewCentredContent should match snapshot, without description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -7023,6 +7030,7 @@ exports[`IOScrollViewCentredContent should match snapshot, without description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -8151,6 +8159,7 @@ exports[`IOScrollViewCentredContent should match snapshot, without description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -9168,6 +9177,7 @@ exports[`IOScrollViewCentredContent should match snapshot, without description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -9965,6 +9975,7 @@ exports[`IOScrollViewCentredContent should match snapshot, without description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -10987,6 +10998,7 @@ exports[`IOScrollViewCentredContent should match snapshot, without description, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/components/ui/__test__/__snapshots__/IOScrollViewWithListItems.test.tsx.snap b/ts/components/ui/__test__/__snapshots__/IOScrollViewWithListItems.test.tsx.snap index 1f364b8db41..33d89ce8219 100644 --- a/ts/components/ui/__test__/__snapshots__/IOScrollViewWithListItems.test.tsx.snap +++ b/ts/components/ui/__test__/__snapshots__/IOScrollViewWithListItems.test.tsx.snap @@ -204,6 +204,7 @@ exports[`IOScrollViewWithListItems Rendering renders correctly with default prop "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1097,6 +1098,7 @@ exports[`IOScrollViewWithListItems Rendering renders correctly without optional "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1732,6 +1734,7 @@ exports[`IOScrollViewWithListItems Rendering renders subtitle as array correctly "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/config.ts b/ts/config.ts index d3a61a44185..c80e2c447b8 100644 --- a/ts/config.ts +++ b/ts/config.ts @@ -8,7 +8,6 @@ import { pipe } from "fp-ts/lib/function"; import * as O from "fp-ts/lib/Option"; import * as t from "io-ts"; import Config from "react-native-config"; -import { TrialId } from "../definitions/trial_system/TrialId"; // default repository for fetching app content (e.g. services metadata) const DEFAULT_CONTENT_REPO_URL = @@ -238,7 +237,6 @@ export const walletApiUatBaseUrl = Config.WALLET_API_UAT_BASEURL; export const defaultPin = "162534"; // IT Wallet -export const itwTrialId = Config.ITW_TRIAL_ID as TrialId; export const itwWalletProviderBaseUrl = Config.ITW_WALLET_PROVIDER_BASE_URL; export const itwGoogleCloudProjectNumber = Config.ITW_GOOGLE_CLOUD_PROJECT_NUMBER; diff --git a/ts/features/bonus/cgn/components/CgnWalletCard.tsx b/ts/features/bonus/cgn/components/CgnWalletCard.tsx index fe59f013847..3a1f805d625 100644 --- a/ts/features/bonus/cgn/components/CgnWalletCard.tsx +++ b/ts/features/bonus/cgn/components/CgnWalletCard.tsx @@ -5,8 +5,8 @@ import * as React from "react"; import { useIONavigation } from "../../../../navigation/params/AppParamsList"; import { useIOSelector } from "../../../../store/hooks"; import { profileSelector } from "../../../../store/reducers/profile"; -import { withWalletCardBaseComponent } from "../../../newWallet/components/WalletCardBaseComponent"; -import { WalletCardPressableBase } from "../../../newWallet/components/WalletCardPressableBase"; +import { withWalletCardBaseComponent } from "../../../wallet/components/WalletCardBaseComponent"; +import { WalletCardPressableBase } from "../../../wallet/components/WalletCardPressableBase"; import CGN_ROUTES from "../navigation/routes"; import { CgnCard, CgnCardProps } from "./CgnCard"; diff --git a/ts/features/bonus/cgn/saga/networking/details/getCgnInformationSaga.ts b/ts/features/bonus/cgn/saga/networking/details/getCgnInformationSaga.ts index 81cfab2a21a..d548eab9ea6 100644 --- a/ts/features/bonus/cgn/saga/networking/details/getCgnInformationSaga.ts +++ b/ts/features/bonus/cgn/saga/networking/details/getCgnInformationSaga.ts @@ -6,7 +6,7 @@ import { StatusEnum } from "../../../../../../../definitions/cgn/CardActivated"; import { SagaCallReturnType } from "../../../../../../types/utils"; import { getNetworkError } from "../../../../../../utils/errors"; import { withRefreshApiCall } from "../../../../../fastLogin/saga/utils"; -import { walletAddCards } from "../../../../../newWallet/store/actions/cards"; +import { walletAddCards } from "../../../../../wallet/store/actions/cards"; import { BackendCGN } from "../../../api/backendCgn"; import { cgnDetails } from "../../../store/actions/details"; diff --git a/ts/features/bonus/cgn/saga/networking/unsubscribe/index.ts b/ts/features/bonus/cgn/saga/networking/unsubscribe/index.ts index 65ac2cf65c6..65646ef33de 100644 --- a/ts/features/bonus/cgn/saga/networking/unsubscribe/index.ts +++ b/ts/features/bonus/cgn/saga/networking/unsubscribe/index.ts @@ -10,7 +10,7 @@ import { readablePrivacyReport } from "../../../../../../utils/reporters"; // ha import { BackendCGN } from "../../../api/backendCgn"; import { cgnUnsubscribe } from "../../../store/actions/unsubscribe"; import { withRefreshApiCall } from "../../../../../fastLogin/saga/utils"; -import { walletRemoveCardsByType } from "../../../../../newWallet/store/actions/cards"; +import { walletRemoveCardsByType } from "../../../../../wallet/store/actions/cards"; // handle the request for CGN unsubscription export function* cgnUnsubscriptionHandler( diff --git a/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CGNDiscountExpiredScreen.test.tsx.snap b/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CGNDiscountExpiredScreen.test.tsx.snap index 114ba132127..01edd3f3a26 100644 --- a/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CGNDiscountExpiredScreen.test.tsx.snap +++ b/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CGNDiscountExpiredScreen.test.tsx.snap @@ -204,6 +204,7 @@ exports[`CGNDiscountExpiredScreen should render correctly 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CgnDiscountCodeScreen.test.tsx.snap b/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CgnDiscountCodeScreen.test.tsx.snap index 09760fa0a90..a09134d4bc4 100644 --- a/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CgnDiscountCodeScreen.test.tsx.snap +++ b/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CgnDiscountCodeScreen.test.tsx.snap @@ -204,6 +204,7 @@ exports[`CgnDiscountCodeScreen should render correctly 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CgnDiscountDetailScreen.test.tsx.snap b/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CgnDiscountDetailScreen.test.tsx.snap index 87c684845df..af3c55cb0bc 100644 --- a/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CgnDiscountDetailScreen.test.tsx.snap +++ b/ts/features/bonus/cgn/screens/discount/___tests___/__snapshots__/CgnDiscountDetailScreen.test.tsx.snap @@ -204,6 +204,7 @@ exports[`CgnDiscountDetailScreen should render correctly 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/cie/analytics/index.ts b/ts/features/cie/analytics/index.ts index ade286748ed..4d1488c6914 100644 --- a/ts/features/cie/analytics/index.ts +++ b/ts/features/cie/analytics/index.ts @@ -41,26 +41,26 @@ export const trackWizardCieIdSelected = async ( state: GlobalState, spidLevel: SpidLevel ) => { - await updateMixpanelProfileProperties(state, { - property: "LOGIN_METHOD", - value: IdpCIE_ID.id - }); void mixpanelTrack( "LOGIN_CIE_WIZARD_CIEID_SELECTED", buildEventProperties("UX", "action", { security_level: SECURITY_LEVEL_MAP[spidLevel] }) ); -}; -export const trackWizardCiePinSelected = async (state: GlobalState) => { await updateMixpanelProfileProperties(state, { property: "LOGIN_METHOD", - value: IdpCIE.id + value: IdpCIE_ID.id }); +}; +export const trackWizardCiePinSelected = async (state: GlobalState) => { void mixpanelTrack( "LOGIN_CIE_WIZARD_PIN_SELECTED", buildEventProperties("UX", "action") ); + await updateMixpanelProfileProperties(state, { + property: "LOGIN_METHOD", + value: IdpCIE.id + }); }; export const trackWizardCiePinInfoSelected = async () => { void mixpanelTrack( diff --git a/ts/features/common/store/reducers/index.ts b/ts/features/common/store/reducers/index.ts index b6604bf2cfc..a2ea0e60c39 100644 --- a/ts/features/common/store/reducers/index.ts +++ b/ts/features/common/store/reducers/index.ts @@ -24,7 +24,7 @@ import { NativeLoginState, nativeLoginReducer } from "../../../nativeLogin/store/reducers"; -import walletReducer, { WalletState } from "../../../newWallet/store/reducers"; +import walletReducer, { WalletState } from "../../../wallet/store/reducers"; import paymentsReducer, { PaymentsState } from "../../../payments/common/store/reducers"; diff --git a/ts/features/design-system/core/DSWallet.tsx b/ts/features/design-system/core/DSWallet.tsx index eef16f1a194..93fbd074437 100644 --- a/ts/features/design-system/core/DSWallet.tsx +++ b/ts/features/design-system/core/DSWallet.tsx @@ -1,8 +1,8 @@ import { Banner, VSpacer, VStack } from "@pagopa/io-app-design-system"; import * as React from "react"; import { CredentialType } from "../../itwallet/common/utils/itwMocksUtils"; -import { WalletCardsCategoryContainer } from "../../newWallet/components/WalletCardsCategoryContainer"; -import { WalletCard, WalletCardCategory } from "../../newWallet/types"; +import { WalletCardsCategoryContainer } from "../../wallet/components/WalletCardsCategoryContainer"; +import { WalletCard, WalletCardCategory } from "../../wallet/types"; import { DesignSystemScreen } from "../components/DesignSystemScreen"; import { DesignSystemSection } from "../components/DesignSystemSection"; diff --git a/ts/features/design-system/navigation/navigator.tsx b/ts/features/design-system/navigation/navigator.tsx index 9e0a78cb878..245e3af46e1 100644 --- a/ts/features/design-system/navigation/navigator.tsx +++ b/ts/features/design-system/navigation/navigator.tsx @@ -1,18 +1,15 @@ import { - IOVisualCostants, + IOColors, IconButton, + makeFontStyleObject, useIOExperimentalDesign, + useIOTheme, useIOThemeContext } from "@pagopa/io-app-design-system"; import { ThemeProvider, useNavigation } from "@react-navigation/native"; -import { - StackNavigationOptions, - TransitionPresets, - createStackNavigator -} from "@react-navigation/stack"; +import { createNativeStackNavigator } from "@react-navigation/native-stack"; import * as React from "react"; -import { Alert, Platform, View } from "react-native"; -import { makeFontStyleObject } from "../../../components/core/fonts"; +import { Alert, Platform } from "react-native"; import HeaderFirstLevel from "../../../components/ui/HeaderFirstLevel"; import { IONavigationDarkTheme, @@ -75,43 +72,21 @@ import { DSWallet } from "../core/DSWallet"; import { DesignSystemParamsList } from "./params"; import DESIGN_SYSTEM_ROUTES from "./routes"; -const Stack = createStackNavigator(); - -// BackButton managed through React Navigation -const RNNBackButton = () => { - const navigation = useNavigation(); - const { themeType } = useIOThemeContext(); - return ( - - { - navigation.goBack(); - }} - accessibilityLabel={""} - /> - - ); -}; +const Stack = createNativeStackNavigator(); const RNNCloseButton = () => { const navigation = useNavigation(); + const { themeType } = useIOThemeContext(); return ( - - { - navigation.goBack(); - }} - accessibilityLabel={""} - /> - + { + navigation.goBack(); + }} + accessibilityLabel={""} + /> ); }; @@ -139,27 +114,25 @@ const HeaderFirstLevelComponent = () => ( /> ); -const customModalHeaderConf: StackNavigationOptions = { - headerLeft: () => null, - headerTitle: () => null, - headerRight: RNNCloseButton, - headerStyle: { height: IOVisualCostants.headerHeight }, - headerStatusBarHeight: 0 -}; - export const DesignSystemNavigator = () => { const { isExperimental } = useIOExperimentalDesign(); const { themeType } = useIOThemeContext(); + const theme = useIOTheme(); - const customHeaderConf: StackNavigationOptions = { + const customModalHeaderConf = { + headerRight: RNNCloseButton, + title: DESIGN_SYSTEM_ROUTES.DEBUG.FULL_SCREEN_MODAL.title, + sheetCornerRadius: 24, headerTitleStyle: { - ...(isExperimental - ? makeFontStyleObject("Regular", false, "ReadexPro") - : makeFontStyleObject("Semibold", false, "TitilliumSansPro")), - fontSize: 14 - }, - headerTitleAlign: "center", - headerLeft: RNNBackButton + ...makeFontStyleObject( + 14, + isExperimental ? "Titillio" : "TitilliumSansPro", + 18, + isExperimental ? "Regular" : "Semibold", + undefined + ), + color: IOColors[theme["textHeading-default"]] + } }; return ( @@ -170,13 +143,29 @@ export const DesignSystemNavigator = () => { > @@ -563,13 +552,10 @@ export const DesignSystemNavigator = () => { diff --git a/ts/features/fims/common/components/__tests__/__snapshots__/FimsUpdateAppAlert.test.tsx.snap b/ts/features/fims/common/components/__tests__/__snapshots__/FimsUpdateAppAlert.test.tsx.snap index 32b94659288..d365ab68457 100644 --- a/ts/features/fims/common/components/__tests__/__snapshots__/FimsUpdateAppAlert.test.tsx.snap +++ b/ts/features/fims/common/components/__tests__/__snapshots__/FimsUpdateAppAlert.test.tsx.snap @@ -204,6 +204,7 @@ exports[`FimsUpdateAppAlert should match snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/fims/singleSignOn/components/FimsFullScreenErrors.tsx b/ts/features/fims/singleSignOn/components/FimsFullScreenErrors.tsx index b6015928a18..4aeca1ab908 100644 --- a/ts/features/fims/singleSignOn/components/FimsFullScreenErrors.tsx +++ b/ts/features/fims/singleSignOn/components/FimsFullScreenErrors.tsx @@ -1,21 +1,22 @@ -import { useNavigation } from "@react-navigation/native"; import * as React from "react"; import { OperationResultScreenContent, OperationResultScreenContentProps } from "../../../../components/screens/OperationResultScreenContent"; import I18n from "../../../../i18n"; -import { useIOSelector } from "../../../../store/hooks"; +import { useIODispatch, useIOSelector } from "../../../../store/hooks"; import { fimsAuthenticationErrorTagSelector, fimsDebugDataSelector } from "../store/selectors"; import { useDebugInfo } from "../../../../hooks/useDebugInfo"; +import { fimsCancelOrAbortAction } from "../store/actions"; export const FimsSSOFullScreenError = () => { - const navigation = useNavigation(); + const dispatch = useIODispatch(); const errorTag = useIOSelector(fimsAuthenticationErrorTagSelector); const debugData = useIOSelector(fimsDebugDataSelector); + const debugInfo = React.useMemo( () => ({ fimsFailure: `${errorTag}: ${debugData}` @@ -23,6 +24,12 @@ export const FimsSSOFullScreenError = () => { [debugData, errorTag] ); useDebugInfo(debugInfo); + + const handleClose = React.useCallback( + () => dispatch(fimsCancelOrAbortAction()), + [dispatch] + ); + const getErrorComponentProps = (): OperationResultScreenContentProps => { switch (errorTag) { case "AUTHENTICATION": @@ -35,7 +42,7 @@ export const FimsSSOFullScreenError = () => { pictogram: "umbrellaNew", action: { label: I18n.t("global.buttons.close"), - onPress: navigation.goBack + onPress: handleClose } }; case "MISSING_INAPP_BROWSER": @@ -50,7 +57,7 @@ export const FimsSSOFullScreenError = () => { pictogram: "updateOS", action: { label: I18n.t("global.buttons.close"), - onPress: navigation.goBack + onPress: handleClose } }; default: @@ -61,7 +68,7 @@ export const FimsSSOFullScreenError = () => { pictogram: "umbrellaNew", action: { label: I18n.t("global.buttons.close"), - onPress: navigation.goBack + onPress: handleClose } }; } diff --git a/ts/features/fims/singleSignOn/screens/FimsFlowHandlerScreen.tsx b/ts/features/fims/singleSignOn/screens/FimsFlowHandlerScreen.tsx index 81629f1c4f5..d6ca4ad1067 100644 --- a/ts/features/fims/singleSignOn/screens/FimsFlowHandlerScreen.tsx +++ b/ts/features/fims/singleSignOn/screens/FimsFlowHandlerScreen.tsx @@ -1,6 +1,6 @@ import { Body, IOStyles } from "@pagopa/io-app-design-system"; import * as pot from "@pagopa/ts-commons/lib/pot"; -import { pipe } from "fp-ts/lib/function"; +import { constTrue, pipe } from "fp-ts/lib/function"; import * as O from "fp-ts/Option"; import * as React from "react"; import { View } from "react-native"; @@ -64,10 +64,12 @@ export const FimsFlowHandlerScreen = ( goBack: handleCancelOrAbort }); - useHardwareBackButton(() => { - handleCancelOrAbort(); - return true; - }); + // Force users on Android to use UI buttons to go back, since + // there are cases where a modal may be displayed on top of + // the screen (like the assistance one) and the hardware back + // button event is not stopped by such screen but is instead + // propagated to this UI, causing a back loop + useHardwareBackButton(constTrue); React.useEffect(() => { if (ctaUrl && !requiresAppUpdate) { diff --git a/ts/features/idpay/wallet/components/IdPayWalletCard.tsx b/ts/features/idpay/wallet/components/IdPayWalletCard.tsx index 8b5e2b8df4a..3cf772e7a29 100644 --- a/ts/features/idpay/wallet/components/IdPayWalletCard.tsx +++ b/ts/features/idpay/wallet/components/IdPayWalletCard.tsx @@ -1,7 +1,7 @@ import React from "react"; import { Pressable } from "react-native"; import { useIONavigation } from "../../../../navigation/params/AppParamsList"; -import { withWalletCardBaseComponent } from "../../../newWallet/components/WalletCardBaseComponent"; +import { withWalletCardBaseComponent } from "../../../wallet/components/WalletCardBaseComponent"; import { IDPayDetailsRoutes } from "../../details/navigation"; import { IdPayCard, IdPayCardProps } from "./IdPayCard"; diff --git a/ts/features/idpay/wallet/saga/__test__/handleGetWallet.test.ts b/ts/features/idpay/wallet/saga/__test__/handleGetWallet.test.ts index 1be5a0479d5..6e0c83bcefe 100644 --- a/ts/features/idpay/wallet/saga/__test__/handleGetWallet.test.ts +++ b/ts/features/idpay/wallet/saga/__test__/handleGetWallet.test.ts @@ -6,7 +6,7 @@ import { WalletDTO } from "../../../../../../definitions/idpay/WalletDTO"; import { withRefreshApiCall } from "../../../../fastLogin/saga/utils"; import { idPayWalletGet } from "../../store/actions"; import { handleGetIDPayWallet } from "../handleGetWallet"; -import { walletAddCards } from "../../../../newWallet/store/actions/cards"; +import { walletAddCards } from "../../../../wallet/store/actions/cards"; const mockedWallet: WalletDTO = { initiativeList: [] }; diff --git a/ts/features/idpay/wallet/saga/handleGetWallet.ts b/ts/features/idpay/wallet/saga/handleGetWallet.ts index 6d6833ae7d2..478fb36cd6f 100644 --- a/ts/features/idpay/wallet/saga/handleGetWallet.ts +++ b/ts/features/idpay/wallet/saga/handleGetWallet.ts @@ -8,7 +8,7 @@ import { readablePrivacyReport } from "../../../../utils/reporters"; import { withRefreshApiCall } from "../../../fastLogin/saga/utils"; import { IDPayClient } from "../../common/api/client"; import { idPayWalletGet } from "../store/actions"; -import { walletAddCards } from "../../../newWallet/store/actions/cards"; +import { walletAddCards } from "../../../wallet/store/actions/cards"; /** * Handle the remote call to retrieve the IDPay wallet diff --git a/ts/features/ingress/__test__/__snapshots__/IngressScreen.test.tsx.snap b/ts/features/ingress/__test__/__snapshots__/IngressScreen.test.tsx.snap index c46da3c4f79..6a6a83f2d67 100644 --- a/ts/features/ingress/__test__/__snapshots__/IngressScreen.test.tsx.snap +++ b/ts/features/ingress/__test__/__snapshots__/IngressScreen.test.tsx.snap @@ -204,6 +204,7 @@ exports[`IngressScreen Should match the snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/itwallet/common/components/ItwUpcomingWalletBanner.tsx b/ts/features/itwallet/common/components/ItwUpcomingWalletBanner.tsx deleted file mode 100644 index f41955668df..00000000000 --- a/ts/features/itwallet/common/components/ItwUpcomingWalletBanner.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { Banner } from "@pagopa/io-app-design-system"; -import React from "react"; -import { Linking, View } from "react-native"; -import { SubscriptionStateEnum } from "../../../../../definitions/trial_system/SubscriptionState"; -import { itwDocumentsOnIOUrl, itwTrialId } from "../../../../config"; -import I18n from "../../../../i18n"; -import { useIOSelector } from "../../../../store/hooks"; -import { trialStatusSelector } from "../../../trialSystem/store/reducers"; - -export const ItwUpcomingWalletBanner = () => { - const itwTrialStatus = useIOSelector(trialStatusSelector(itwTrialId)); - - if (itwTrialStatus === SubscriptionStateEnum.ACTIVE) { - return null; - } - - return ( - - Linking.openURL(itwDocumentsOnIOUrl)} - /> - - ); -}; diff --git a/ts/features/itwallet/common/components/__tests__/ItwUpcomingWalletBanner.test.tsx b/ts/features/itwallet/common/components/__tests__/ItwUpcomingWalletBanner.test.tsx deleted file mode 100644 index b3e54dbcef3..00000000000 --- a/ts/features/itwallet/common/components/__tests__/ItwUpcomingWalletBanner.test.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import * as pot from "@pagopa/ts-commons/lib/pot"; -import * as O from "fp-ts/lib/Option"; -import _ from "lodash"; -import configureMockStore from "redux-mock-store"; -import { ToolEnum } from "../../../../../../definitions/content/AssistanceToolConfig"; -import { Config } from "../../../../../../definitions/content/Config"; -import { SubscriptionStateEnum } from "../../../../../../definitions/trial_system/SubscriptionState"; -import ROUTES from "../../../../../navigation/routes"; -import { applicationChangeState } from "../../../../../store/actions/application"; -import { appReducer } from "../../../../../store/reducers"; -import { GlobalState } from "../../../../../store/reducers/types"; -import { renderScreenWithNavigationStoreContext } from "../../../../../utils/testWrapper"; -import { itwTrialId } from "../../../../../config"; -import { ItwUpcomingWalletBanner } from "../ItwUpcomingWalletBanner"; - -type RenderOptions = { - isItwEnabled?: boolean; - itwTrialStatus?: SubscriptionStateEnum; -}; - -jest.mock("../../../../../config", () => ({ - itwEnabled: true -})); - -describe("ItwUpcomingWalletBanner", () => { - it.each([ - [true, SubscriptionStateEnum.UNSUBSCRIBED, true], - [true, SubscriptionStateEnum.SUBSCRIBED, true], - [true, SubscriptionStateEnum.DISABLED, true], - [true, SubscriptionStateEnum.ACTIVE, false], - [false, SubscriptionStateEnum.UNSUBSCRIBED, true], - [false, SubscriptionStateEnum.SUBSCRIBED, true], - [false, SubscriptionStateEnum.DISABLED, true], - [false, SubscriptionStateEnum.ACTIVE, false] - ])( - "If ITW is %s and the trial status is %s, the rendering of the banner should be %s", - (isItwEnabled, itwTrialStatus, shouldRender) => { - const { component } = renderComponent({ isItwEnabled, itwTrialStatus }); - const banner = component.queryByTestId("itwUpcomingWalletBannerTestID"); - if (shouldRender) { - expect(banner).not.toBeNull(); - } else { - expect(banner).toBeNull(); - } - } - ); -}); - -const renderComponent = ({ - isItwEnabled = true, - itwTrialStatus = SubscriptionStateEnum.ACTIVE -}: RenderOptions) => { - const globalState = appReducer(undefined, applicationChangeState("active")); - - const mockStore = configureMockStore(); - const store: ReturnType = mockStore( - _.merge(undefined, globalState, { - trialSystem: { - [itwTrialId]: pot.some(itwTrialStatus) - }, - remoteConfig: O.some({ - itw: { - enabled: isItwEnabled, - min_app_version: { - android: "0.0.0.0", - ios: "0.0.0.0" - } - }, - assistanceTool: { tool: ToolEnum.none }, - cgn: { enabled: true }, - newPaymentSection: { - enabled: false, - min_app_version: { - android: "0.0.0.0", - ios: "0.0.0.0" - } - }, - fims: { enabled: true } - } as Config) - } as GlobalState) - ); - - return { - component: renderScreenWithNavigationStoreContext( - ItwUpcomingWalletBanner, - ROUTES.WALLET_HOME, - {}, - store - ), - store - }; -}; diff --git a/ts/features/itwallet/common/components/__tests__/__snapshots__/ItwFeedbackBanner.test.tsx.snap b/ts/features/itwallet/common/components/__tests__/__snapshots__/ItwFeedbackBanner.test.tsx.snap index d82d79a1eb9..18f046d6870 100644 --- a/ts/features/itwallet/common/components/__tests__/__snapshots__/ItwFeedbackBanner.test.tsx.snap +++ b/ts/features/itwallet/common/components/__tests__/__snapshots__/ItwFeedbackBanner.test.tsx.snap @@ -204,6 +204,7 @@ exports[`ItwFeedbackBanner should match the snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/itwallet/common/components/discoveryBanner/__tests__/ItwDiscoveryBanner.test.tsx b/ts/features/itwallet/common/components/discoveryBanner/__tests__/ItwDiscoveryBanner.test.tsx index d0655bf9f63..8944c46d7c1 100644 --- a/ts/features/itwallet/common/components/discoveryBanner/__tests__/ItwDiscoveryBanner.test.tsx +++ b/ts/features/itwallet/common/components/discoveryBanner/__tests__/ItwDiscoveryBanner.test.tsx @@ -1,4 +1,3 @@ -import * as pot from "@pagopa/ts-commons/lib/pot"; import * as O from "fp-ts/lib/Option"; import _ from "lodash"; import * as React from "react"; @@ -6,8 +5,6 @@ import { createStore } from "redux"; import configureMockStore from "redux-mock-store"; import { ToolEnum } from "../../../../../../../definitions/content/AssistanceToolConfig"; import { Config } from "../../../../../../../definitions/content/Config"; -import { SubscriptionStateEnum } from "../../../../../../../definitions/trial_system/SubscriptionState"; -import { itwTrialId } from "../../../../../../config"; import ROUTES from "../../../../../../navigation/routes"; import { applicationChangeState } from "../../../../../../store/actions/application"; import { appReducer } from "../../../../../../store/reducers"; @@ -19,7 +16,6 @@ import { ItwDiscoveryBanner } from "../ItwDiscoveryBanner"; import { ItwDiscoveryBannerStandalone } from "../ItwDiscoveryBannerStandalone"; type RenderOptions = { - isItwTrial?: boolean; isItwValid?: boolean; isItwEnabled?: boolean; }; @@ -55,7 +51,6 @@ describe("ItwDiscoveryBannerStandalone", () => { }); test.each([ - { isItwTrial: false }, { isItwEnabled: false }, { isItwValid: true } ] as ReadonlyArray)( @@ -71,7 +66,6 @@ describe("ItwDiscoveryBannerStandalone", () => { const renderComponent = ({ isItwEnabled = true, - isItwTrial = true, isItwValid = false }: RenderOptions) => { const globalState = appReducer(undefined, applicationChangeState("active")); @@ -79,11 +73,6 @@ const renderComponent = ({ const mockStore = configureMockStore(); const store: ReturnType = mockStore( _.merge(undefined, globalState, { - trialSystem: isItwTrial - ? { - [itwTrialId]: pot.some(SubscriptionStateEnum.ACTIVE) - } - : {}, features: { itWallet: isItwValid ? { diff --git a/ts/features/itwallet/common/components/discoveryBanner/__tests__/__snapshots__/ItwDiscoveryBanner.test.tsx.snap b/ts/features/itwallet/common/components/discoveryBanner/__tests__/__snapshots__/ItwDiscoveryBanner.test.tsx.snap index 2b1ebe3a62f..a6948ddaad3 100644 --- a/ts/features/itwallet/common/components/discoveryBanner/__tests__/__snapshots__/ItwDiscoveryBanner.test.tsx.snap +++ b/ts/features/itwallet/common/components/discoveryBanner/__tests__/__snapshots__/ItwDiscoveryBanner.test.tsx.snap @@ -204,6 +204,7 @@ exports[`ItwDiscoveryBanner should match snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -988,6 +989,7 @@ exports[`ItwDiscoveryBannerStandalone should match snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/itwallet/common/saga/__tests__/index.test.ts b/ts/features/itwallet/common/saga/__tests__/index.test.ts deleted file mode 100644 index ed1eabfe1ce..00000000000 --- a/ts/features/itwallet/common/saga/__tests__/index.test.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { expectSaga } from "redux-saga-test-plan"; -import * as pot from "@pagopa/ts-commons/lib/pot"; -import { DeepPartial } from "redux"; -import * as matchers from "redux-saga-test-plan/matchers"; -import { handleTrialSystemSubscription } from "../index"; -import { GlobalState } from "../../../../../store/reducers/types"; -import { - trialSystemActivationStatus, - trialSystemActivationStatusUpsert -} from "../../../../trialSystem/store/actions"; -import { SubscriptionStateEnum } from "../../../../../../definitions/trial_system/SubscriptionState"; -import { - trialStatusPotSelector, - trialStatusSelector -} from "../../../../trialSystem/store/reducers"; -import { TrialId } from "../../../../../../definitions/trial_system/TrialId"; -import { TrialSystemError } from "../../../../trialSystem/utils/error"; - -describe("handleTrialSystemSubscription", () => { - it("should handle trial system subscription correctly when the endpoint returns 404", async () => { - const trialId = "baz" as TrialId; - const error = new TrialSystemError( - "User not found", - "TRIAL_SYSTEM_USER_NOT_FOUND" - ); - const state = pot.noneError(error); - const store: DeepPartial = { - trialSystem: { - [trialId]: state - } - }; - return expectSaga(handleTrialSystemSubscription) - .withState(store) - .put(trialSystemActivationStatus.request(trialId)) - .dispatch( - trialSystemActivationStatus.failure({ - trialId, - error - }) - ) - .take([ - trialSystemActivationStatus.success, - trialSystemActivationStatus.failure - ]) - .provide([[matchers.select(trialStatusPotSelector), state]]) - .put(trialSystemActivationStatusUpsert.request(trialId)) - .run(); - }); - - it("shouldn't do anything if the user is already subscribed", async () => { - const trialId = "baz" as TrialId; - const state = SubscriptionStateEnum.SUBSCRIBED; - const store: DeepPartial = { - trialSystem: { - [trialId]: pot.some(state) - } - }; - return expectSaga(handleTrialSystemSubscription) - .withState(store) - .put(trialSystemActivationStatus.request(trialId)) - .dispatch( - trialSystemActivationStatus.success({ - trialId, - state, - createdAt: new Date() - }) - ) - .take([ - trialSystemActivationStatus.success, - trialSystemActivationStatus.failure - ]) - .provide([[matchers.select(trialStatusSelector), state]]) - .not.put(trialSystemActivationStatusUpsert.request(trialId)) - .run(); - }); - - it("shouldn't do anything if the user is active", async () => { - const trialId = "baz" as TrialId; - const state = SubscriptionStateEnum.ACTIVE; - const store: DeepPartial = { - trialSystem: { - [trialId]: pot.some(state) - } - }; - return expectSaga(handleTrialSystemSubscription) - .withState(store) - .put(trialSystemActivationStatus.request(trialId)) - .dispatch( - trialSystemActivationStatus.success({ - trialId, - state, - createdAt: new Date() - }) - ) - .take([ - trialSystemActivationStatus.success, - trialSystemActivationStatus.failure - ]) - .provide([[matchers.select(trialStatusSelector), state]]) - .not.put(trialSystemActivationStatusUpsert.request(trialId)) - .run(); - }); - - it("shouldn't do anything if the user is disabled", async () => { - const trialId = "baz" as TrialId; - const state = SubscriptionStateEnum.DISABLED; - const store: DeepPartial = { - trialSystem: { - [trialId]: pot.some(state) - } - }; - return expectSaga(handleTrialSystemSubscription) - .withState(store) - .put(trialSystemActivationStatus.request(trialId)) - .dispatch( - trialSystemActivationStatus.success({ - trialId, - state, - createdAt: new Date() - }) - ) - .take([ - trialSystemActivationStatus.success, - trialSystemActivationStatus.failure - ]) - .provide([[matchers.select(trialStatusSelector), state]]) - .not.put(trialSystemActivationStatusUpsert.request(trialId)) - .run(); - }); - - it("shouldn't do anything if an error occurs", async () => { - const trialId = "baz" as TrialId; - const state = SubscriptionStateEnum.UNSUBSCRIBED; - const store: DeepPartial = { - trialSystem: { - [trialId]: pot.some(state) - } - }; - return expectSaga(handleTrialSystemSubscription) - .withState(store) - .put(trialSystemActivationStatus.request(trialId)) - .dispatch( - trialSystemActivationStatus.failure({ - trialId, - error: new Error("foo") - }) - ) - .take([ - trialSystemActivationStatus.success, - trialSystemActivationStatus.failure - ]) - .provide([[matchers.select(trialStatusSelector), state]]) - .not.put(trialSystemActivationStatusUpsert.request(trialId)) - .run(); - }); -}); diff --git a/ts/features/itwallet/common/saga/index.ts b/ts/features/itwallet/common/saga/index.ts index d58294fe84e..a47e873fa83 100644 --- a/ts/features/itwallet/common/saga/index.ts +++ b/ts/features/itwallet/common/saga/index.ts @@ -1,20 +1,12 @@ import { SagaIterator } from "redux-saga"; -import { fork, put, call, take, select } from "typed-redux-saga/macro"; -import * as pot from "@pagopa/ts-commons/lib/pot"; -import { isActionOf } from "typesafe-actions"; -import { - trialSystemActivationStatus, - trialSystemActivationStatusUpsert -} from "../../../trialSystem/store/actions"; -import { watchItwIdentificationSaga } from "../../identification/saga"; -import { checkWalletInstanceStateSaga } from "../../lifecycle/saga/checkWalletInstanceStateSaga"; +import { call, fork, put } from "typed-redux-saga/macro"; +import { watchItwCredentialsSaga } from "../../credentials/saga"; +import { checkCredentialsStatusAttestation } from "../../credentials/saga/checkCredentialsStatusAttestation"; import { handleWalletCredentialsRehydration } from "../../credentials/saga/handleWalletCredentialsRehydration"; -import { itwTrialId } from "../../../../config"; +import { watchItwIdentificationSaga } from "../../identification/saga"; import { itwCieIsSupported } from "../../identification/store/actions"; -import { watchItwCredentialsSaga } from "../../credentials/saga"; import { watchItwLifecycleSaga } from "../../lifecycle/saga"; -import { checkCredentialsStatusAttestation } from "../../credentials/saga/checkCredentialsStatusAttestation"; -import { trialStatusPotSelector } from "../../../trialSystem/store/reducers"; +import { checkWalletInstanceStateSaga } from "../../lifecycle/saga/checkWalletInstanceStateSaga"; function* checkWalletInstanceAndCredentialsValiditySaga() { // Status attestations of credentials are checked only in case of a valid wallet instance. @@ -23,38 +15,12 @@ function* checkWalletInstanceAndCredentialsValiditySaga() { yield* call(checkCredentialsStatusAttestation); } -/** - * Handle the trial system subscription which currently fetches the trial status - * and if the user is unsubscribed it automatically subscribes the user to the trial. - */ -export function* handleTrialSystemSubscription() { - // IT Wallet trial status refresh - yield* put(trialSystemActivationStatus.request(itwTrialId)); - const outputAction = yield* take([ - trialSystemActivationStatus.success, - trialSystemActivationStatus.failure - ]); - if (isActionOf(trialSystemActivationStatus.failure, outputAction)) { - /* We check if the error is due to the user not being found in the trial system and we try to subscribe the user - the trial system returns 404 if the usuer is not found or if the trial id is not found. However, the trial id is - hardcoded in the config file and we assume it is correct so the only reason for the 404 is the user not being found. */ - const potStatus = yield* select(trialStatusPotSelector(itwTrialId)); - if ( - pot.isError(potStatus) && - potStatus.error.type === "TRIAL_SYSTEM_USER_NOT_FOUND" - ) { - yield* put(trialSystemActivationStatusUpsert.request(itwTrialId)); - } - } -} - export function* watchItwSaga(): SagaIterator { yield* fork(checkWalletInstanceAndCredentialsValiditySaga); yield* fork(handleWalletCredentialsRehydration); yield* fork(watchItwIdentificationSaga); yield* fork(watchItwCredentialsSaga); yield* fork(watchItwLifecycleSaga); - yield* fork(handleTrialSystemSubscription); // TODO: [SIW-1404] remove this CIE check and move the logic to xstate yield* put(itwCieIsSupported.request()); diff --git a/ts/features/itwallet/common/store/selectors/__tests__/index.test.ts b/ts/features/itwallet/common/store/selectors/__tests__/index.test.ts index 4efe3a3b79c..fbfabaffa31 100644 --- a/ts/features/itwallet/common/store/selectors/__tests__/index.test.ts +++ b/ts/features/itwallet/common/store/selectors/__tests__/index.test.ts @@ -9,7 +9,6 @@ import { isItwEnabledSelector, isItwFeedbackBannerEnabledSelector } from "../../../../../../store/reducers/backendStatus/remoteConfig"; -import { isItwTrialActiveSelector } from "../../../../../trialSystem/store/reducers"; import { itwLifecycleIsValidSelector } from "../../../../lifecycle/store/selectors"; type JestMock = ReturnType; @@ -32,9 +31,6 @@ jest.mock( isItwFeedbackBannerEnabledSelector: jest.fn() }) ); -jest.mock("../../../../../trialSystem/store/reducers", () => ({ - isItwTrialActiveSelector: jest.fn() -})); describe("itwDiscoveryBannerSelector", () => { beforeEach(() => { @@ -43,25 +39,18 @@ describe("itwDiscoveryBannerSelector", () => { }); it.each` - itwEnabled | lifecycleValid | trialActive | expected - ${true} | ${true} | ${true} | ${false} - ${true} | ${true} | ${false} | ${false} - ${true} | ${false} | ${true} | ${true} - ${true} | ${false} | ${false} | ${false} - ${false} | ${true} | ${true} | ${false} - ${false} | ${true} | ${false} | ${false} - ${false} | ${false} | ${true} | ${false} - ${false} | ${false} | ${false} | ${false} + itwEnabled | lifecycleValid | expected + ${true} | ${true} | ${false} + ${true} | ${false} | ${true} + ${false} | ${true} | ${false} + ${false} | ${false} | ${false} `( - "should return $expected when isItwEnabled is $itwEnabled, trialActive is $trialActive, and lifecycleValid is $lifecycleValid", - ({ itwEnabled, trialActive, lifecycleValid, expected }) => { + "should return $expected when isItwEnabled is $itwEnabled, and lifecycleValid is $lifecycleValid", + ({ itwEnabled, lifecycleValid, expected }) => { (isItwEnabledSelector as unknown as JestMock).mockReturnValue(itwEnabled); (itwLifecycleIsValidSelector as unknown as JestMock).mockReturnValue( lifecycleValid ); - (isItwTrialActiveSelector as unknown as JestMock).mockReturnValue( - trialActive - ); expect( isItwDiscoveryBannerRenderableSelector({} as unknown as GlobalState) ).toBe(expected); diff --git a/ts/features/itwallet/common/store/selectors/index.ts b/ts/features/itwallet/common/store/selectors/index.ts index 0f6eeae4873..560bb92f214 100644 --- a/ts/features/itwallet/common/store/selectors/index.ts +++ b/ts/features/itwallet/common/store/selectors/index.ts @@ -3,23 +3,19 @@ import { isItwFeedbackBannerEnabledSelector } from "../../../../../store/reducers/backendStatus/remoteConfig"; import { GlobalState } from "../../../../../store/reducers/types"; -import { isItwTrialActiveSelector } from "../../../../trialSystem/store/reducers"; import { itwIsWalletEmptySelector } from "../../../credentials/store/selectors"; import { itwLifecycleIsValidSelector } from "../../../lifecycle/store/selectors"; import { itwIsFeedbackBannerHiddenSelector } from "./preferences"; /** * Returns if the discovery banner should be rendered. The banner is rendered if: - * - The user's ITW trial subscription is ACTIVE * - The Wallet is not already activated and valid * - The IT Wallet feature flag is enabled * @param state the application global state * @returns true if the banner should be rendered, false otherwise */ export const isItwDiscoveryBannerRenderableSelector = (state: GlobalState) => - isItwTrialActiveSelector(state) && - !itwLifecycleIsValidSelector(state) && - isItwEnabledSelector(state); + !itwLifecycleIsValidSelector(state) && isItwEnabledSelector(state); /** * Returns if the feedback banner should be visible. The banner is visible if: diff --git a/ts/features/itwallet/common/utils/itwAttestationUtils.ts b/ts/features/itwallet/common/utils/itwAttestationUtils.ts index 4c3ba1a9e93..a28f06739b5 100644 --- a/ts/features/itwallet/common/utils/itwAttestationUtils.ts +++ b/ts/features/itwallet/common/utils/itwAttestationUtils.ts @@ -76,3 +76,18 @@ export const isWalletInstanceAttestationValid = ( const now = new Date(); return now < expiryDate; }; + +/** + * Get the wallet instance status from the Wallet Provider. + * This operation is more lightweight than getting a new attestation to check the status. + * @param hardwareKeyTag The hardware key tag used to create the wallet instance + */ +export const getWalletInstanceStatus = ( + hardwareKeyTag: string, + sessionToken: SessionToken +) => + WalletInstance.getWalletInstanceStatus({ + id: hardwareKeyTag, + walletProviderBaseUrl: itwWalletProviderBaseUrl, + appFetch: createItWalletFetch(itwWalletProviderBaseUrl, sessionToken) + }); diff --git a/ts/features/itwallet/credentials/saga/__tests__/handleWalletCredentialsRehydration.test.ts b/ts/features/itwallet/credentials/saga/__tests__/handleWalletCredentialsRehydration.test.ts index decfe898c21..f29dcdc1479 100644 --- a/ts/features/itwallet/credentials/saga/__tests__/handleWalletCredentialsRehydration.test.ts +++ b/ts/features/itwallet/credentials/saga/__tests__/handleWalletCredentialsRehydration.test.ts @@ -4,7 +4,7 @@ import { expectSaga } from "redux-saga-test-plan"; import { GlobalState } from "../../../../../store/reducers/types"; import { CredentialType } from "../../../common/utils/itwMocksUtils"; import { handleWalletCredentialsRehydration } from "../handleWalletCredentialsRehydration"; -import { walletAddCards } from "../../../../newWallet/store/actions/cards"; +import { walletAddCards } from "../../../../wallet/store/actions/cards"; import { StoredCredential } from "../../../common/utils/itwTypesUtils"; import { ItwLifecycleState } from "../../../lifecycle/store/reducers"; diff --git a/ts/features/itwallet/credentials/saga/handleItwCredentialsRemoveSaga.ts b/ts/features/itwallet/credentials/saga/handleItwCredentialsRemoveSaga.ts index ac39730500f..f056c49233b 100644 --- a/ts/features/itwallet/credentials/saga/handleItwCredentialsRemoveSaga.ts +++ b/ts/features/itwallet/credentials/saga/handleItwCredentialsRemoveSaga.ts @@ -1,6 +1,6 @@ import { deleteKey } from "@pagopa/io-react-native-crypto"; import { call, put } from "typed-redux-saga/macro"; -import { walletRemoveCards } from "../../../newWallet/store/actions/cards"; +import { walletRemoveCards } from "../../../wallet/store/actions/cards"; import { itwCredentialsRemove } from "../store/actions"; /** diff --git a/ts/features/itwallet/credentials/saga/handleItwCredentialsStoreSaga.ts b/ts/features/itwallet/credentials/saga/handleItwCredentialsStoreSaga.ts index ff902e7ac0d..0a22ea8c428 100644 --- a/ts/features/itwallet/credentials/saga/handleItwCredentialsStoreSaga.ts +++ b/ts/features/itwallet/credentials/saga/handleItwCredentialsStoreSaga.ts @@ -1,5 +1,5 @@ import { put } from "typed-redux-saga/macro"; -import { walletAddCards } from "../../../newWallet/store/actions/cards"; +import { walletAddCards } from "../../../wallet/store/actions/cards"; import { itwCredentialsStore } from "../store/actions"; import { getCredentialStatus } from "../../common/utils/itwCredentialStatusUtils"; import { CredentialType } from "../../common/utils/itwMocksUtils"; diff --git a/ts/features/itwallet/credentials/saga/handleWalletCredentialsRehydration.ts b/ts/features/itwallet/credentials/saga/handleWalletCredentialsRehydration.ts index 33b557c062e..1f732ad8a2b 100644 --- a/ts/features/itwallet/credentials/saga/handleWalletCredentialsRehydration.ts +++ b/ts/features/itwallet/credentials/saga/handleWalletCredentialsRehydration.ts @@ -4,9 +4,9 @@ import * as A from "fp-ts/lib/Array"; import * as O from "fp-ts/lib/Option"; import { itwCredentialsSelector } from "../store/selectors"; import { StoredCredential } from "../../common/utils/itwTypesUtils"; -import { WalletCard } from "../../../newWallet/types"; +import { WalletCard } from "../../../wallet/types"; import { CredentialType } from "../../common/utils/itwMocksUtils"; -import { walletAddCards } from "../../../newWallet/store/actions/cards"; +import { walletAddCards } from "../../../wallet/store/actions/cards"; import { itwLifecycleIsValidSelector } from "../../lifecycle/store/selectors"; import { getCredentialStatus } from "../../common/utils/itwCredentialStatusUtils"; diff --git a/ts/features/itwallet/issuance/components/__tests__/__snapshots__/ItwCredentialPreviewClaimsList.test.tsx.snap b/ts/features/itwallet/issuance/components/__tests__/__snapshots__/ItwCredentialPreviewClaimsList.test.tsx.snap index 2fc5aaa5bf5..7232f0c149b 100644 --- a/ts/features/itwallet/issuance/components/__tests__/__snapshots__/ItwCredentialPreviewClaimsList.test.tsx.snap +++ b/ts/features/itwallet/issuance/components/__tests__/__snapshots__/ItwCredentialPreviewClaimsList.test.tsx.snap @@ -204,6 +204,7 @@ exports[`ItwCredentialPreviewClaimsList should match the snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/itwallet/issuance/screens/__tests__/__snapshots__/ItwIssuanceCredentialAsyncContinuationScreen.test.tsx.snap b/ts/features/itwallet/issuance/screens/__tests__/__snapshots__/ItwIssuanceCredentialAsyncContinuationScreen.test.tsx.snap index fc172889024..b564fb6c06f 100644 --- a/ts/features/itwallet/issuance/screens/__tests__/__snapshots__/ItwIssuanceCredentialAsyncContinuationScreen.test.tsx.snap +++ b/ts/features/itwallet/issuance/screens/__tests__/__snapshots__/ItwIssuanceCredentialAsyncContinuationScreen.test.tsx.snap @@ -204,6 +204,7 @@ exports[`ItwIssuanceCredentialAsyncContinuationScreen it should render the activ "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1133,6 +1134,7 @@ exports[`ItwIssuanceCredentialAsyncContinuationScreen it should render the docum "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2023,6 +2025,7 @@ exports[`ItwIssuanceCredentialAsyncContinuationScreen it should render the gener "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2751,6 +2754,7 @@ exports[`ItwIssuanceCredentialAsyncContinuationScreen it should render the gener "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/itwallet/lifecycle/saga/__tests__/checkWalletInstanceStateSaga.test.ts b/ts/features/itwallet/lifecycle/saga/__tests__/checkWalletInstanceStateSaga.test.ts index a1997a25441..fdf253d364c 100644 --- a/ts/features/itwallet/lifecycle/saga/__tests__/checkWalletInstanceStateSaga.test.ts +++ b/ts/features/itwallet/lifecycle/saga/__tests__/checkWalletInstanceStateSaga.test.ts @@ -1,16 +1,14 @@ import { type DeepPartial } from "redux"; import { expectSaga } from "redux-saga-test-plan"; import * as matchers from "redux-saga-test-plan/matchers"; -import { throwError } from "redux-saga-test-plan/providers"; -import { Errors } from "@pagopa/io-react-native-wallet"; import * as O from "fp-ts/lib/Option"; import { checkWalletInstanceStateSaga, - getAttestationOrResetWalletInstance + getStatusOrResetWalletInstance } from "../checkWalletInstanceStateSaga"; import { ItwLifecycleState } from "../../store/reducers"; import { GlobalState } from "../../../../../store/reducers/types"; -import { getAttestation } from "../../../common/utils/itwAttestationUtils"; +import { getWalletInstanceStatus } from "../../../common/utils/itwAttestationUtils"; import { StoredCredential } from "../../../common/utils/itwTypesUtils"; import { sessionTokenSelector } from "../../../../../store/reducers/authentication"; import { handleWalletInstanceResetSaga } from "../handleWalletInstanceResetSaga"; @@ -22,13 +20,6 @@ jest.mock("@pagopa/io-react-native-crypto", () => ({ deleteKey: jest.fn })); -const WALLET_REVOKED_ERROR = new Errors.WalletProviderResponseError({ - code: Errors.WalletProviderResponseErrorCodes.WalletInstanceRevoked, - message: "Revoked", - reason: {}, - statusCode: 404 -}); - describe("checkWalletInstanceStateSaga", () => { // TODO: improve the mocked store's typing, do not use DeepPartial it("Does not check the wallet state when the wallet is INSTALLED", () => { @@ -45,11 +36,11 @@ describe("checkWalletInstanceStateSaga", () => { .withState(store) .provide([[matchers.call.fn(ensureIntegrityServiceIsReady), true]]) .call.fn(ensureIntegrityServiceIsReady) - .not.call.fn(getAttestationOrResetWalletInstance) + .not.call.fn(getStatusOrResetWalletInstance) .run(); }); - it("Checks the wallet state when the wallet is OPERATIONAL and the attestation is valid", () => { + it("Checks the wallet state when the wallet is OPERATIONAL", () => { const store: DeepPartial = { features: { itWallet: { @@ -69,19 +60,16 @@ describe("checkWalletInstanceStateSaga", () => { [matchers.select(sessionTokenSelector), "h94LhbfJCLGH1S3qHj"], [matchers.select(itwIsWalletInstanceAttestationValidSelector), false], [matchers.select(itwIntegrityServiceReadySelector), true], - [ - matchers.call.fn(getAttestation), - "aac6e82a-e27e-4293-9b55-94a9fab22763" - ], + [matchers.call.fn(getWalletInstanceStatus), { is_revoked: false }], [matchers.call.fn(ensureIntegrityServiceIsReady), true] ]) .call.fn(ensureIntegrityServiceIsReady) - .call.fn(getAttestationOrResetWalletInstance) + .call.fn(getStatusOrResetWalletInstance) .not.call.fn(handleWalletInstanceResetSaga) .run(); }); - it("Checks and resets the wallet state when the wallet is OPERATIONAL and the attestation is not valid", () => { + it("Checks and resets the wallet state when the wallet is OPERATIONAL and the instance was revoked", () => { const store: DeepPartial = { features: { itWallet: { @@ -99,16 +87,16 @@ describe("checkWalletInstanceStateSaga", () => { .provide([ [matchers.select(sessionTokenSelector), "h94LhbfJCLGH1S3qHj"], [matchers.select(itwIsWalletInstanceAttestationValidSelector), false], - [matchers.call.fn(getAttestation), throwError(WALLET_REVOKED_ERROR)], + [matchers.call.fn(getWalletInstanceStatus), { is_revoked: true }], [matchers.call.fn(ensureIntegrityServiceIsReady), true] ]) .call.fn(ensureIntegrityServiceIsReady) - .call.fn(getAttestationOrResetWalletInstance) + .call.fn(getStatusOrResetWalletInstance) .call.fn(handleWalletInstanceResetSaga) .run(); }); - it("Checks the wallet state when the wallet is VALID and the attestation is valid", () => { + it("Checks the wallet state when the wallet is VALID", () => { const store: DeepPartial = { features: { itWallet: { @@ -126,19 +114,16 @@ describe("checkWalletInstanceStateSaga", () => { .provide([ [matchers.select(sessionTokenSelector), "h94LhbfJCLGH1S3qHj"], [matchers.select(itwIsWalletInstanceAttestationValidSelector), false], - [ - matchers.call.fn(getAttestation), - "3396d31e-ac6a-4357-8083-cb5d3cda4d74" - ], + [matchers.call.fn(getWalletInstanceStatus), { is_revoked: false }], [matchers.call.fn(ensureIntegrityServiceIsReady), true] ]) .call.fn(ensureIntegrityServiceIsReady) - .call.fn(getAttestationOrResetWalletInstance) + .call.fn(getStatusOrResetWalletInstance) .not.call.fn(handleWalletInstanceResetSaga) .run(); }); - it("Checks and resets the wallet state when the wallet is VALID and the attestation is not valid", () => { + it("Checks and resets the wallet state when the wallet is VALID and the instance was revoked", () => { const store: DeepPartial = { features: { itWallet: { @@ -156,31 +141,12 @@ describe("checkWalletInstanceStateSaga", () => { .provide([ [matchers.select(sessionTokenSelector), "h94LhbfJCLGH1S3qHj"], [matchers.select(itwIsWalletInstanceAttestationValidSelector), false], - [matchers.call.fn(getAttestation), throwError(WALLET_REVOKED_ERROR)], + [matchers.call.fn(getWalletInstanceStatus), { is_revoked: true }], [matchers.call.fn(ensureIntegrityServiceIsReady), true] ]) .call.fn(ensureIntegrityServiceIsReady) - .call.fn(getAttestationOrResetWalletInstance) + .call.fn(getStatusOrResetWalletInstance) .call.fn(handleWalletInstanceResetSaga) .run(); }); }); - -describe("getAttestationOrResetWalletInstance", () => { - it("should obtain a new WIA if it doesn't exist or has expired", () => - expectSaga(getAttestationOrResetWalletInstance, "") - .provide([ - [matchers.select(sessionTokenSelector), "h94LhbfJCLGH1S3qHj"], - [matchers.select(itwIsWalletInstanceAttestationValidSelector), false] - ]) - .call.fn(getAttestation) - .run()); - it("should skip WIA obtainment if it exists and has not yet expired", () => - expectSaga(getAttestationOrResetWalletInstance, "") - .provide([ - [matchers.select(sessionTokenSelector), "h94LhbfJCLGH1S3qHj"], - [matchers.select(itwIsWalletInstanceAttestationValidSelector), true] - ]) - .not.call.fn(getAttestation) - .run()); -}); diff --git a/ts/features/itwallet/lifecycle/saga/checkWalletInstanceStateSaga.ts b/ts/features/itwallet/lifecycle/saga/checkWalletInstanceStateSaga.ts index d343952ade7..779a11a929e 100644 --- a/ts/features/itwallet/lifecycle/saga/checkWalletInstanceStateSaga.ts +++ b/ts/features/itwallet/lifecycle/saga/checkWalletInstanceStateSaga.ts @@ -1,46 +1,27 @@ -import { Errors } from "@pagopa/io-react-native-wallet"; import * as O from "fp-ts/lib/Option"; import { call, put, select } from "typed-redux-saga/macro"; import { sessionTokenSelector } from "../../../../store/reducers/authentication"; import { ReduxSagaEffect } from "../../../../types/utils"; import { assert } from "../../../../utils/assert"; -import { getAttestation } from "../../common/utils/itwAttestationUtils"; +import { getWalletInstanceStatus } from "../../common/utils/itwAttestationUtils"; import { ensureIntegrityServiceIsReady } from "../../common/utils/itwIntegrityUtils"; import { itwIntegrityKeyTagSelector } from "../../issuance/store/selectors"; -import { itwIsWalletInstanceAttestationValidSelector } from "../../walletInstance/store/reducers"; import { itwLifecycleIsOperationalOrValid } from "../store/selectors"; import { itwIntegritySetServiceIsReady } from "../../issuance/store/actions"; import { handleWalletInstanceResetSaga } from "./handleWalletInstanceResetSaga"; -const { - isWalletProviderResponseError, - WalletProviderResponseErrorCodes: Codes -} = Errors; - -export function* getAttestationOrResetWalletInstance(integrityKeyTag: string) { +export function* getStatusOrResetWalletInstance(integrityKeyTag: string) { const sessionToken = yield* select(sessionTokenSelector); assert(sessionToken, "Missing session token"); - const isWalletInstanceAttestationValid = yield* select( - itwIsWalletInstanceAttestationValidSelector + const walletInstanceStatus = yield* call( + getWalletInstanceStatus, + integrityKeyTag, + sessionToken ); - if (isWalletInstanceAttestationValid) { - // The Wallet Instance Attestation is present and has not yet expired - return; - } - - // If the Wallet Instance Attestation is not present or it has expired - // we need to request a new one - try { - yield* call(getAttestation, integrityKeyTag, sessionToken); - } catch (err) { - if ( - isWalletProviderResponseError(err, Codes.WalletInstanceRevoked) || - isWalletProviderResponseError(err, Codes.WalletInstanceNotFound) - ) { - yield* call(handleWalletInstanceResetSaga); - } + if (walletInstanceStatus.is_revoked) { + yield* call(handleWalletInstanceResetSaga); } } @@ -66,7 +47,7 @@ export function* checkWalletInstanceStateSaga(): Generator< // Only operational or valid wallet instances can be revoked. if (isItwOperationalOrValid && O.isSome(integrityKeyTag)) { - yield* call(getAttestationOrResetWalletInstance, integrityKeyTag.value); + yield* call(getStatusOrResetWalletInstance, integrityKeyTag.value); } } catch (e) { // Ignore the error, the integrity service is not available and an error will occur if the wallet requests an attestation diff --git a/ts/features/itwallet/lifecycle/saga/handleWalletInstanceResetSaga.ts b/ts/features/itwallet/lifecycle/saga/handleWalletInstanceResetSaga.ts index ef08528c5db..06069986922 100644 --- a/ts/features/itwallet/lifecycle/saga/handleWalletInstanceResetSaga.ts +++ b/ts/features/itwallet/lifecycle/saga/handleWalletInstanceResetSaga.ts @@ -5,7 +5,7 @@ import * as RA from "fp-ts/lib/ReadonlyArray"; import { deleteKey } from "@pagopa/io-react-native-crypto"; import { itwCredentialsSelector } from "../../credentials/store/selectors"; import { itwLifecycleStoresReset } from "../store/actions"; -import { walletRemoveCardsByType } from "../../../newWallet/store/actions/cards"; +import { walletRemoveCardsByType } from "../../../wallet/store/actions/cards"; import { isIos } from "../../../../utils/platform"; import { StoredCredential } from "../../common/utils/itwTypesUtils"; import { itwIntegrityKeyTagSelector } from "../../issuance/store/selectors"; diff --git a/ts/features/itwallet/navigation/useItwLinkingOptions.tsx b/ts/features/itwallet/navigation/useItwLinkingOptions.tsx index 2969ea2559c..6820d3772a1 100644 --- a/ts/features/itwallet/navigation/useItwLinkingOptions.tsx +++ b/ts/features/itwallet/navigation/useItwLinkingOptions.tsx @@ -1,6 +1,5 @@ import { PathConfigMap } from "@react-navigation/native"; import { useIOSelector } from "../../../store/hooks"; -import { isItwTrialActiveSelector } from "../../trialSystem/store/reducers"; import { itwLifecycleIsValidSelector } from "../lifecycle/store/selectors"; import { isItwEnabledSelector } from "../../../store/reducers/backendStatus/remoteConfig"; import { AppParamsList } from "../../../navigation/params/AppParamsList"; @@ -8,20 +7,17 @@ import { ITW_ROUTES } from "./routes"; /** * Hook which returns the linking options for internal navigation routes for the IT Wallet. - * They are disabled if the IT Wallet is not enabled, the trial is not active, or the lifecycle is valid. + * They are disabled if the IT Wallet is not enabled or the lifecycle is valid. */ export const useItwLinkingOptions = (): PathConfigMap => { - const isItwTrialActive = useIOSelector(isItwTrialActiveSelector); const isItwValid = useIOSelector(itwLifecycleIsValidSelector); const isItwEnabled = useIOSelector(isItwEnabledSelector); - const isUserAllowedToItw = isItwEnabled && isItwTrialActive; - return { [ITW_ROUTES.MAIN]: { path: "itw", screens: { - ...(isUserAllowedToItw && { + ...(isItwEnabled && { [ITW_ROUTES.ISSUANCE.CREDENTIAL_ASYNC_FLOW_CONTINUATION]: "credential/issuance", [isItwValid diff --git a/ts/features/itwallet/onboarding/screens/WalletCardOnboardingScreen.tsx b/ts/features/itwallet/onboarding/screens/WalletCardOnboardingScreen.tsx index d3d90ff7794..ba712309812 100644 --- a/ts/features/itwallet/onboarding/screens/WalletCardOnboardingScreen.tsx +++ b/ts/features/itwallet/onboarding/screens/WalletCardOnboardingScreen.tsx @@ -25,7 +25,6 @@ import { } from "../../../bonus/cgn/store/reducers/details"; import { loadAvailableBonuses } from "../../../bonus/common/store/actions/availableBonusesTypes"; import { PaymentsOnboardingRoutes } from "../../../payments/onboarding/navigation/routes"; -import { isItwTrialActiveSelector } from "../../../trialSystem/store/reducers"; import { CredentialType } from "../../common/utils/itwMocksUtils"; import { itwCredentialsTypesSelector } from "../../credentials/store/selectors"; import { itwLifecycleIsValidSelector } from "../../lifecycle/store/selectors"; @@ -54,7 +53,6 @@ const activeBadge: Badge = { }; const WalletCardOnboardingScreen = () => { - const isItwTrialEnabled = useIOSelector(isItwTrialActiveSelector); const isItwValid = useIOSelector(itwLifecycleIsValidSelector); const isItwEnabled = useIOSelector(isItwEnabledSelector); @@ -63,10 +61,9 @@ const WalletCardOnboardingScreen = () => { const isItwSectionVisible = React.useMemo( // IT Wallet credential catalog should be visible if () => - isItwTrialEnabled && // User is part of the trial isItwValid && // An eID has ben obtained and wallet is valid isItwEnabled, // Remote FF is enabled - [isItwTrialEnabled, isItwValid, isItwEnabled] + [isItwValid, isItwEnabled] ); return ( diff --git a/ts/features/itwallet/onboarding/screens/__tests__/WalletCardOnboardingScreen.test.tsx b/ts/features/itwallet/onboarding/screens/__tests__/WalletCardOnboardingScreen.test.tsx index cd7897bf5ec..22821fcb956 100644 --- a/ts/features/itwallet/onboarding/screens/__tests__/WalletCardOnboardingScreen.test.tsx +++ b/ts/features/itwallet/onboarding/screens/__tests__/WalletCardOnboardingScreen.test.tsx @@ -1,16 +1,9 @@ -import * as pot from "@pagopa/ts-commons/lib/pot"; import * as O from "fp-ts/lib/Option"; import _ from "lodash"; import * as React from "react"; import configureMockStore from "redux-mock-store"; import { ToolEnum } from "../../../../../../definitions/content/AssistanceToolConfig"; import { Config } from "../../../../../../definitions/content/Config"; -import { - SubscriptionState, - SubscriptionStateEnum -} from "../../../../../../definitions/trial_system/SubscriptionState"; -import { TrialId } from "../../../../../../definitions/trial_system/TrialId"; -import { itwTrialId } from "../../../../../config"; import { applicationChangeState } from "../../../../../store/actions/application"; import { appReducer } from "../../../../../store/reducers"; import { RemoteConfigState } from "../../../../../store/reducers/backendStatus/remoteConfig"; @@ -25,7 +18,6 @@ import { WalletCardOnboardingScreen } from "../WalletCardOnboardingScreen"; type RenderOptions = { isIdPayEnabled?: boolean; - itwTrialStatus?: SubscriptionState; isItwEnabled?: boolean; isItwTestEnabled?: boolean; itwLifecycle?: ItwLifecycleState; @@ -55,7 +47,6 @@ describe("WalletCardOnboardingScreen", () => { }); test.each([ - { itwTrialStatus: SubscriptionStateEnum.DISABLED }, { isItwEnabled: false }, { itwLifecycle: ItwLifecycleState.ITW_LIFECYCLE_INSTALLED }, { itwLifecycle: ItwLifecycleState.ITW_LIFECYCLE_DEACTIVATED } @@ -87,7 +78,6 @@ describe("WalletCardOnboardingScreen", () => { const renderComponent = ({ isIdPayEnabled = true, isItwEnabled = true, - itwTrialStatus = SubscriptionStateEnum.ACTIVE, itwLifecycle = ItwLifecycleState.ITW_LIFECYCLE_VALID, remotelyDisabledCredentials }: RenderOptions) => { @@ -105,11 +95,6 @@ const renderComponent = ({ }) } }, - trialSystem: { - [itwTrialId as TrialId]: itwTrialStatus - ? pot.some(itwTrialStatus) - : pot.none - }, persistedPreferences: { isIdPayTestEnabled: isIdPayEnabled }, diff --git a/ts/features/itwallet/playgrounds/components/ItwTrialSystemSection.tsx b/ts/features/itwallet/playgrounds/components/ItwTrialSystemSection.tsx deleted file mode 100644 index 6551b08b015..00000000000 --- a/ts/features/itwallet/playgrounds/components/ItwTrialSystemSection.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { - ButtonSolid, - ListItemHeader, - ListItemInfo, - VSpacer -} from "@pagopa/io-app-design-system"; -import * as React from "react"; -import { SubscriptionStateEnum } from "../../../../../definitions/trial_system/SubscriptionState"; -import I18n from "../../../../i18n"; -import { useIODispatch, useIOSelector } from "../../../../store/hooks"; -import { - trialSystemActivationStatus, - trialSystemActivationStatusReset, - trialSystemActivationStatusUpsert -} from "../../../trialSystem/store/actions"; -import { - isLoadingTrialStatusSelector, - isUpdatingTrialStatusSelector, - trialStatusSelector -} from "../../../trialSystem/store/reducers"; -import { itwTrialId } from "../../../../config"; - -export const ItwTrialSystemSection = () => { - const dispatch = useIODispatch(); - const status = useIOSelector(trialStatusSelector(itwTrialId)); - const isLoading = useIOSelector(isLoadingTrialStatusSelector(itwTrialId)); - const isUpdating = useIOSelector(isUpdatingTrialStatusSelector(itwTrialId)); - - const subscribe = () => { - dispatch(trialSystemActivationStatusUpsert.request(itwTrialId)); - }; - - const refresh = () => { - dispatch(trialSystemActivationStatus.request(itwTrialId)); - }; - - const reset = () => { - dispatch(trialSystemActivationStatusReset(itwTrialId)); - }; - - return ( - <> - - - - - <> - {status === undefined || - status === SubscriptionStateEnum.UNSUBSCRIBED ? ( - - ) : null} - - - - - - - ); -}; diff --git a/ts/features/itwallet/playgrounds/screens/ItwPlayground.tsx b/ts/features/itwallet/playgrounds/screens/ItwPlayground.tsx index b7a3ad7a27f..20c421ff456 100644 --- a/ts/features/itwallet/playgrounds/screens/ItwPlayground.tsx +++ b/ts/features/itwallet/playgrounds/screens/ItwPlayground.tsx @@ -10,13 +10,11 @@ import { useFocusEffect } from "@react-navigation/native"; import * as React from "react"; import { ScrollView } from "react-native-gesture-handler"; import { useHeaderSecondLevel } from "../../../../hooks/useHeaderSecondLevel"; -import { isDevEnv } from "../../../../utils/environment"; import ItwMarkdown from "../../common/components/ItwMarkdown"; import { CredentialType } from "../../common/utils/itwMocksUtils"; import { ItwCredentialIssuanceMachineContext } from "../../machine/provider"; import { ItwLifecycleSection } from "../components/ItwLifecycleSection"; import { ItwSkeumorphicCredentialSection } from "../components/ItwSkeumorphicCredentialSection"; -import { ItwTrialSystemSection } from "../components/ItwTrialSystemSection"; // Sample markdown text const sampleMarkdown = ` @@ -101,15 +99,6 @@ const ItwPlayground = () => { - { - /* F&F Experimentation */ - isDevEnv ? ( - <> - - - - ) : null - } {/* Other Playgrounds */}

{"IT Wallet markdown preview"}

diff --git a/ts/features/itwallet/presentation/components/__tests__/__snapshots__/ItwPresentationClaimsSection.test.tsx.snap b/ts/features/itwallet/presentation/components/__tests__/__snapshots__/ItwPresentationClaimsSection.test.tsx.snap index 9845d694040..29368bd5845 100644 --- a/ts/features/itwallet/presentation/components/__tests__/__snapshots__/ItwPresentationClaimsSection.test.tsx.snap +++ b/ts/features/itwallet/presentation/components/__tests__/__snapshots__/ItwPresentationClaimsSection.test.tsx.snap @@ -204,6 +204,7 @@ exports[`ItwPresentationClaimsSection should match the snapshot when claims are "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2144,6 +2145,7 @@ exports[`ItwPresentationClaimsSection should match the snapshot when claims are "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/itwallet/wallet/components/ItwCredentialWalletCard.tsx b/ts/features/itwallet/wallet/components/ItwCredentialWalletCard.tsx index 37a74b20737..f5f0f82eabf 100644 --- a/ts/features/itwallet/wallet/components/ItwCredentialWalletCard.tsx +++ b/ts/features/itwallet/wallet/components/ItwCredentialWalletCard.tsx @@ -1,7 +1,7 @@ import React from "react"; -import { withWalletCardBaseComponent } from "../../../newWallet/components/WalletCardBaseComponent"; +import { withWalletCardBaseComponent } from "../../../wallet/components/WalletCardBaseComponent"; import { ItwCredentialCard } from "../../common/components/ItwCredentialCard"; -import { WalletCardPressableBase } from "../../../newWallet/components/WalletCardPressableBase"; +import { WalletCardPressableBase } from "../../../wallet/components/WalletCardPressableBase"; import { useIONavigation } from "../../../../navigation/params/AppParamsList"; import { ITW_ROUTES } from "../../navigation/routes"; diff --git a/ts/features/landingScreenMultiBanner/components/__tests__/__snapshots__/LandingScreenBannerPicker.test.tsx.snap b/ts/features/landingScreenMultiBanner/components/__tests__/__snapshots__/LandingScreenBannerPicker.test.tsx.snap index 6d08b6b8991..adf1cf930d3 100644 --- a/ts/features/landingScreenMultiBanner/components/__tests__/__snapshots__/LandingScreenBannerPicker.test.tsx.snap +++ b/ts/features/landingScreenMultiBanner/components/__tests__/__snapshots__/LandingScreenBannerPicker.test.tsx.snap @@ -204,6 +204,7 @@ exports[`LandingBannerPicker should correctly render a banner if passed a valid "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -607,6 +608,7 @@ exports[`LandingBannerPicker should not render a banner if no id is passed: noBa "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/Home/__tests__/__snapshots__/EmptyList.test.tsx.snap b/ts/features/messages/components/Home/__tests__/__snapshots__/EmptyList.test.tsx.snap index 5514818d00e..91a1373e484 100644 --- a/ts/features/messages/components/Home/__tests__/__snapshots__/EmptyList.test.tsx.snap +++ b/ts/features/messages/components/Home/__tests__/__snapshots__/EmptyList.test.tsx.snap @@ -204,6 +204,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.none 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -784,6 +785,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.noneError 1`] = "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1465,6 +1467,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.noneLoading 1`] "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1808,6 +1811,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.noneUpdating 1`] "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2151,6 +2155,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.some, empty data "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2731,6 +2736,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.some, non-empty "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3074,6 +3080,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.someError, empty "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3654,6 +3661,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.someError, non-e "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3997,6 +4005,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.someLoading, emp "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4577,6 +4586,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.someLoading, non "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4920,6 +4930,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.someUpdating, em "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5500,6 +5511,7 @@ exports[`EmptyList should match snapshot, ARCHIVE category, pot.someUpdating, no "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5843,6 +5855,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.none 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -6423,6 +6436,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.noneError 1`] = "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -7104,6 +7118,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.noneLoading 1`] "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -7447,6 +7462,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.noneUpdating 1`] "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -7790,6 +7806,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.some, empty data "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -8370,6 +8387,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.some, non-empty "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -8713,6 +8731,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.someError, empty "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -9293,6 +9312,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.someError, non-e "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -9636,6 +9656,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.someLoading, emp "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -10216,6 +10237,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.someLoading, non "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -10559,6 +10581,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.someUpdating, em "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -11139,6 +11162,7 @@ exports[`EmptyList should match snapshot, INBOX category, pot.someUpdating, no "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/Home/__tests__/__snapshots__/Footer.test.tsx.snap b/ts/features/messages/components/Home/__tests__/__snapshots__/Footer.test.tsx.snap index e64418cf4ab..c5bb279672b 100644 --- a/ts/features/messages/components/Home/__tests__/__snapshots__/Footer.test.tsx.snap +++ b/ts/features/messages/components/Home/__tests__/__snapshots__/Footer.test.tsx.snap @@ -204,6 +204,7 @@ exports[`Footer shoudl match snapshot when output from 'shouldShowFooterListComp "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -547,6 +548,7 @@ exports[`Footer shoudl match snapshot when output from 'shouldShowFooterListComp "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/Home/__tests__/__snapshots__/Preconditions.test.tsx.snap b/ts/features/messages/components/Home/__tests__/__snapshots__/Preconditions.test.tsx.snap index 2a24a3eea20..c29e8dbe434 100644 --- a/ts/features/messages/components/Home/__tests__/__snapshots__/Preconditions.test.tsx.snap +++ b/ts/features/messages/components/Home/__tests__/__snapshots__/Preconditions.test.tsx.snap @@ -204,6 +204,7 @@ exports[`Preconditions should match snapshot with mocked components 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsContent.test.tsx.snap b/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsContent.test.tsx.snap index 93d12fac8a4..117fd3324fa 100644 --- a/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsContent.test.tsx.snap +++ b/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsContent.test.tsx.snap @@ -204,6 +204,7 @@ exports[`PreconditionsContent should match snapshot when content category is 'co "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -555,6 +556,7 @@ exports[`PreconditionsContent should match snapshot when content category is 'co "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -898,6 +900,7 @@ exports[`PreconditionsContent should match snapshot when content category is 'er "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1454,6 +1457,7 @@ exports[`PreconditionsContent should match snapshot when content category is 'lo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2069,6 +2073,7 @@ exports[`PreconditionsContent should match snapshot when content category is 'up "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2655,6 +2660,7 @@ exports[`PreconditionsContent should match snapshot when content category is und "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsFeedback.test.tsx.snap b/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsFeedback.test.tsx.snap index 901abdc4bab..ec5977f5d3c 100644 --- a/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsFeedback.test.tsx.snap +++ b/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsFeedback.test.tsx.snap @@ -204,6 +204,7 @@ exports[`PreconditionsFeedback should match snapshot with title and no subtitle "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -760,6 +761,7 @@ exports[`PreconditionsFeedback should match snapshot with title and subtitle 1`] "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsFooter.test.tsx.snap b/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsFooter.test.tsx.snap index 82f4f44b271..c62a92b6193 100644 --- a/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsFooter.test.tsx.snap +++ b/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsFooter.test.tsx.snap @@ -204,6 +204,7 @@ exports[`PreconditionsFooter should match snapshot for 'content' footer category "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -824,6 +825,7 @@ exports[`PreconditionsFooter should match snapshot for 'undefined' footer catego "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1167,6 +1169,7 @@ exports[`PreconditionsFooter should match snapshot for 'update' footer category "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1787,6 +1790,7 @@ exports[`PreconditionsFooter should match snapshot for 'view' footer category 1` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsTitle.test.tsx.snap b/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsTitle.test.tsx.snap index 444bbd23037..d570e6eb43c 100644 --- a/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsTitle.test.tsx.snap +++ b/ts/features/messages/components/Home/__tests__/__snapshots__/PreconditionsTitle.test.tsx.snap @@ -204,6 +204,7 @@ exports[`PreconditionsTitle should match snapshot when title content is 'empty' "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -549,6 +550,7 @@ exports[`PreconditionsTitle should match snapshot when title content is 'header' "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -921,6 +923,7 @@ exports[`PreconditionsTitle should match snapshot when title content is 'header' "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1264,6 +1267,7 @@ exports[`PreconditionsTitle should match snapshot when title content is 'loading "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1639,6 +1643,7 @@ exports[`PreconditionsTitle should match snapshot when title content is undefine "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/Home/__tests__/__snapshots__/SecuritySuggestions.test.tsx.snap b/ts/features/messages/components/Home/__tests__/__snapshots__/SecuritySuggestions.test.tsx.snap index 7a52544f987..6f339de58f2 100644 --- a/ts/features/messages/components/Home/__tests__/__snapshots__/SecuritySuggestions.test.tsx.snap +++ b/ts/features/messages/components/Home/__tests__/__snapshots__/SecuritySuggestions.test.tsx.snap @@ -204,6 +204,7 @@ exports[`SecuritySuggestions should match snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/Home/__tests__/__snapshots__/TabNavigationContainer.test.tsx.snap b/ts/features/messages/components/Home/__tests__/__snapshots__/TabNavigationContainer.test.tsx.snap index 10afecfc1e9..52ca45c02f2 100644 --- a/ts/features/messages/components/Home/__tests__/__snapshots__/TabNavigationContainer.test.tsx.snap +++ b/ts/features/messages/components/Home/__tests__/__snapshots__/TabNavigationContainer.test.tsx.snap @@ -204,6 +204,7 @@ exports[`TabNavigationContainer should match snapshot when shownCategory is ARCH "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -938,6 +939,7 @@ exports[`TabNavigationContainer should match snapshot when shownCategory is INBO "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/Home/__tests__/__snapshots__/WrappedMessageListItem.test.tsx.snap b/ts/features/messages/components/Home/__tests__/__snapshots__/WrappedMessageListItem.test.tsx.snap index 5bd9cc9aa79..1ca48cf2953 100644 --- a/ts/features/messages/components/Home/__tests__/__snapshots__/WrappedMessageListItem.test.tsx.snap +++ b/ts/features/messages/components/Home/__tests__/__snapshots__/WrappedMessageListItem.test.tsx.snap @@ -204,6 +204,7 @@ exports[`WrappedMessageListItem should match snapshot, from SEND, read message 1 "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1153,6 +1154,7 @@ exports[`WrappedMessageListItem should match snapshot, from SEND, unread message "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2157,6 +2159,7 @@ exports[`WrappedMessageListItem should match snapshot, not from SEND, contains p "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3137,6 +3140,7 @@ exports[`WrappedMessageListItem should match snapshot, not from SEND, contains p "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4172,6 +4176,7 @@ exports[`WrappedMessageListItem should match snapshot, not from SEND, contains u "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5023,6 +5028,7 @@ exports[`WrappedMessageListItem should match snapshot, not from SEND, contains u "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5929,6 +5935,7 @@ exports[`WrappedMessageListItem should match snapshot, not from SEND, not a paym "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -6659,6 +6666,7 @@ exports[`WrappedMessageListItem should match snapshot, not from SEND, not a paym "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsAttachmentItem.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsAttachmentItem.test.tsx.snap index 73556d5c8c4..aadd2c681b6 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsAttachmentItem.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsAttachmentItem.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetailsAttachmentItem Should match snapshot when is fetching the "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -839,6 +840,7 @@ exports[`MessageDetailsAttachmentItem Should match snapshot when the attachment "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1399,6 +1401,7 @@ exports[`MessageDetailsAttachmentItem Should match snapshot with all parameters "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1924,6 +1927,7 @@ exports[`MessageDetailsAttachmentItem Should match snapshot with required parame "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsAttachments.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsAttachments.test.tsx.snap index 518eb3e5288..0e2eb15f587 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsAttachments.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsAttachments.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetailsAttachments Should match snapshot with 1 attachment 1`] = "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -671,6 +672,7 @@ exports[`MessageDetailsAttachments Should match snapshot with 1 attachment that "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1138,6 +1140,7 @@ exports[`MessageDetailsAttachments Should match snapshot with 1 attachment that "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1481,6 +1484,7 @@ exports[`MessageDetailsAttachments Should match snapshot with 5 attachments that "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1824,6 +1828,7 @@ exports[`MessageDetailsAttachments Should match snapshot with 10 attachments 1`] "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2291,6 +2296,7 @@ exports[`MessageDetailsAttachments Should match snapshot with 10 attachments tha "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2758,6 +2764,7 @@ exports[`MessageDetailsAttachments Should match snapshot with no attachments 1`] "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3101,6 +3108,7 @@ exports[`MessageDetailsAttachments Should match snapshot with no attachments and "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3444,6 +3452,7 @@ exports[`MessageDetailsAttachments Should match snapshot with no attachments, wh "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsFooter.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsFooter.test.tsx.snap index 725e6e65cbc..1449cbc1698 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsFooter.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsFooter.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetailsFooter component should match the snapshot, no service's "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -739,6 +740,7 @@ exports[`MessageDetailsFooter component should match the snapshot, no service's "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1274,6 +1276,7 @@ exports[`MessageDetailsFooter component should match the snapshot, no service's "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1809,6 +1812,7 @@ exports[`MessageDetailsFooter component should match the snapshot, no service's "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2344,6 +2348,7 @@ exports[`MessageDetailsFooter component should match the snapshot, with service' "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3046,6 +3051,7 @@ exports[`MessageDetailsFooter component should match the snapshot, with service' "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3748,6 +3754,7 @@ exports[`MessageDetailsFooter component should match the snapshot, with service' "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4450,6 +4457,7 @@ exports[`MessageDetailsFooter component should match the snapshot, with service' "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsHeader.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsHeader.test.tsx.snap index 28df0e87918..8563e8c46b8 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsHeader.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsHeader.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetailsHeader component should match the snapshot with default p "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsPayment.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsPayment.test.tsx.snap index 6ad0cafd5e2..e27bc05ced9 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsPayment.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsPayment.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetailsPayment Should match snapshot for no payment data 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -547,6 +548,7 @@ exports[`MessageDetailsPayment Should match snapshot when there are payment data "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsPaymentButton.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsPaymentButton.test.tsx.snap index 1fdc115eefd..b87c92560e0 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsPaymentButton.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsPaymentButton.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetailsPaymentButton should match snapshot when loading 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -805,6 +806,7 @@ exports[`MessageDetailsPaymentButton should match snapshot when not loading 1`] "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminder.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminder.test.tsx.snap index 216ddd96d77..75a9fd404be 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminder.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminder.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetailsReminder should match snapshot when the due date is missi "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -547,6 +548,7 @@ exports[`MessageDetailsReminder should match snapshot when the reminder is hidde "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -890,6 +892,7 @@ exports[`MessageDetailsReminder should match snapshot when the reminder is loadi "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1269,6 +1272,7 @@ exports[`MessageDetailsReminder should match snapshot when the reminder is visib "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1812,6 +1816,7 @@ exports[`MessageDetailsReminder should match snapshot when the reminder is visib "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminderExpired.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminderExpired.test.tsx.snap index ba8b9a068aa..e710c29352d 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminderExpired.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminderExpired.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetailsReminderExpired should match snapshot when loading 1`] = "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -576,6 +577,7 @@ exports[`MessageDetailsReminderExpired should match snapshot when not loading 1` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminderExpiring.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminderExpiring.test.tsx.snap index 2c819dd5c9c..a13aff6406d 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminderExpiring.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsReminderExpiring.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetailsReminderExpiring should match snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsScrollViewAdditionalSpace.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsScrollViewAdditionalSpace.test.tsx.snap index 04698b1c673..537d04dce2e 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsScrollViewAdditionalSpace.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsScrollViewAdditionalSpace.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetailsScrollViewAdditionalSpace Should match snapshot with butt "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -555,6 +556,7 @@ exports[`MessageDetailsScrollViewAdditionalSpace Should match snapshot with butt "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -906,6 +908,7 @@ exports[`MessageDetailsScrollViewAdditionalSpace Should match snapshot with butt "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1257,6 +1260,7 @@ exports[`MessageDetailsScrollViewAdditionalSpace Should match snapshot with hidd "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1608,6 +1612,7 @@ exports[`MessageDetailsScrollViewAdditionalSpace Should match snapshot with hidd "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1959,6 +1964,7 @@ exports[`MessageDetailsScrollViewAdditionalSpace Should match snapshot with hidd "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsStickyFooter.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsStickyFooter.test.tsx.snap index c3a5e066ec7..259f4df0384 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsStickyFooter.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessageDetailsStickyFooter.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetailsStickyFooter should match snapshot with both CTAs and no "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -802,6 +803,7 @@ exports[`MessageDetailsStickyFooter should match snapshot with both CTAs and vis "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1511,6 +1513,7 @@ exports[`MessageDetailsStickyFooter should match snapshot with no CTA and no pay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1854,6 +1857,7 @@ exports[`MessageDetailsStickyFooter should match snapshot with no CTAs and enabl "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2337,6 +2341,7 @@ exports[`MessageDetailsStickyFooter should match snapshot with no CTAs and hidde "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2680,6 +2685,7 @@ exports[`MessageDetailsStickyFooter should match snapshot with no CTAs and loadi "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3311,6 +3317,7 @@ exports[`MessageDetailsStickyFooter should match snapshot with one CTA and no pa "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3794,6 +3801,7 @@ exports[`MessageDetailsStickyFooter should match snapshot with one CTA and visib "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessagePaymentItem.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessagePaymentItem.test.tsx.snap index 80ec7643f87..478108a124a 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessagePaymentItem.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/MessagePaymentItem.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessagePaymentItem component Should match the snapshot for a loading it "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -677,6 +678,7 @@ exports[`MessagePaymentItem component Should match the snapshot for a payable it "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1245,6 +1247,7 @@ exports[`MessagePaymentItem component Should match the snapshot for a processed "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/OrganizationHeader.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/OrganizationHeader.test.tsx.snap index c0b6ccbb7f4..e091802fc6c 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/OrganizationHeader.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/OrganizationHeader.test.tsx.snap @@ -204,6 +204,7 @@ exports[`OrganizationHeader component should match the snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/RemoteContentBanner.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/RemoteContentBanner.test.tsx.snap index e68454456ca..8eda9bfe4bb 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/RemoteContentBanner.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/RemoteContentBanner.test.tsx.snap @@ -204,6 +204,7 @@ exports[`RemoteContentBanner Should match snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/ShowMoreListItem.test.tsx.snap b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/ShowMoreListItem.test.tsx.snap index b3eba2e4954..b9d5413bf89 100644 --- a/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/ShowMoreListItem.test.tsx.snap +++ b/ts/features/messages/components/MessageDetail/__tests__/__snapshots__/ShowMoreListItem.test.tsx.snap @@ -204,6 +204,7 @@ exports[`ShowMoreListItem should match snapshot, no data 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -760,6 +761,7 @@ exports[`ShowMoreListItem should match snapshot, one section, no items 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1375,6 +1377,7 @@ exports[`ShowMoreListItem should match snapshot, one section, one item, no icon "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2177,6 +2180,7 @@ exports[`ShowMoreListItem should match snapshot, one section, one item, with ico "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3047,6 +3051,7 @@ exports[`ShowMoreListItem should match snapshot, one section, two items, no icon "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4044,6 +4049,7 @@ exports[`ShowMoreListItem should match snapshot, one section, two items, with ic "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5177,6 +5183,7 @@ exports[`ShowMoreListItem should match snapshot, three sections, different item "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -7190,6 +7197,7 @@ exports[`ShowMoreListItem should match snapshot, two sections, different item co "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/screens/__tests__/__snapshots__/MessageAttachment.test.tsx.snap b/ts/features/messages/screens/__tests__/__snapshots__/MessageAttachment.test.tsx.snap index ac344122513..2f8c2c80d9b 100644 --- a/ts/features/messages/screens/__tests__/__snapshots__/MessageAttachment.test.tsx.snap +++ b/ts/features/messages/screens/__tests__/__snapshots__/MessageAttachment.test.tsx.snap @@ -63,6 +63,7 @@ exports[`MessageAttachment Should match the snapshot when everything went fine 1 "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1072,6 +1073,7 @@ exports[`MessageAttachment Should match the snapshot when there is an error 1`] "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/screens/__tests__/__snapshots__/MessageGreenPassScreen.test.tsx.snap b/ts/features/messages/screens/__tests__/__snapshots__/MessageGreenPassScreen.test.tsx.snap index 34e37fc62fa..4bfb9846b9d 100644 --- a/ts/features/messages/screens/__tests__/__snapshots__/MessageGreenPassScreen.test.tsx.snap +++ b/ts/features/messages/screens/__tests__/__snapshots__/MessageGreenPassScreen.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageGreenPassScreen Should match snapshost 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/screens/__tests__/__snapshots__/MessageRouterScreen.test.tsx.snap b/ts/features/messages/screens/__tests__/__snapshots__/MessageRouterScreen.test.tsx.snap index 6df7859dffa..3fd424f54cd 100644 --- a/ts/features/messages/screens/__tests__/__snapshots__/MessageRouterScreen.test.tsx.snap +++ b/ts/features/messages/screens/__tests__/__snapshots__/MessageRouterScreen.test.tsx.snap @@ -63,6 +63,7 @@ exports[`MessageRouterScreen should match snapshot before starting to retrieve m "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -918,6 +919,7 @@ exports[`MessageRouterScreen should match snapshot if message data retrieval was "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1773,6 +1775,7 @@ exports[`MessageRouterScreen should match snapshot on message data retrieval fai "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2842,6 +2845,7 @@ exports[`MessageRouterScreen should match snapshot on message data retrieval suc "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3697,6 +3701,7 @@ exports[`MessageRouterScreen should match snapshot while retrieving message data "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/messages/screens/__tests__/__snapshots__/MessagesHomeScreen.test.tsx.snap b/ts/features/messages/screens/__tests__/__snapshots__/MessagesHomeScreen.test.tsx.snap index e1506c1dc74..83cfe9988c2 100644 --- a/ts/features/messages/screens/__tests__/__snapshots__/MessagesHomeScreen.test.tsx.snap +++ b/ts/features/messages/screens/__tests__/__snapshots__/MessagesHomeScreen.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessagesHomeScreen should match snapshot (with mocked components 1`] = "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/newWallet/store/reducers/___tests___/cards.test.ts b/ts/features/newWallet/store/reducers/___tests___/cards.test.ts deleted file mode 100644 index c091d7cbbc0..00000000000 --- a/ts/features/newWallet/store/reducers/___tests___/cards.test.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { createStore } from "redux"; -import { applicationChangeState } from "../../../../../store/actions/application"; -import { appReducer } from "../../../../../store/reducers"; -import { WalletCard } from "../../../types"; -import { - walletAddCards, - walletRemoveCards, - walletRemoveCardsByType, - walletUpsertCard -} from "../../actions/cards"; -import { walletResetPlaceholders } from "../../actions/placeholders"; - -const mockCard: WalletCard = { - key: "1", - type: "payment", - category: "payment", - walletId: "12345" -}; - -describe("cards reducer", () => { - it("should handle walletUpsertCard", () => { - const globalState = appReducer(undefined, applicationChangeState("active")); - const store = createStore(appReducer, globalState as any); - store.dispatch(walletUpsertCard(mockCard)); - - expect(store.getState().features.wallet.cards).toEqual({ - "1": mockCard - }); - }); - - it("should handle walletAddCards", () => { - const globalState = appReducer(undefined, applicationChangeState("active")); - const store = createStore(appReducer, globalState as any); - store.dispatch( - walletAddCards([ - mockCard, - { - ...mockCard, - key: "2", - category: "bonus", - walletId: "12" - } - ]) - ); - expect(store.getState().features.wallet.cards).toEqual({ - "1": mockCard, - "2": { - key: "2", - type: "payment", - category: "bonus", - walletId: "12" - } - }); - }); - - it("should handle walletRemoveCards", () => { - const globalState = appReducer(undefined, applicationChangeState("active")); - const store = createStore(appReducer, globalState as any); - store.dispatch( - walletAddCards([ - mockCard, - { - key: "2", - type: "payment", - category: "bonus", - walletId: "12345" - } - ]) - ); - store.dispatch(walletRemoveCards(["1"])); - expect(store.getState().features.wallet.cards).toEqual({ - "2": { - key: "2", - type: "payment", - category: "bonus", - walletId: "12345" - } - }); - }); - - it("should handle walletResetPlaceholders", () => { - const globalState = appReducer(undefined, applicationChangeState("active")); - const store = createStore(appReducer, globalState as any); - store.dispatch( - walletResetPlaceholders([{ ...mockCard, type: "placeholder" }]) - ); - expect(store.getState().features.wallet.cards).toEqual({}); - }); - - it("should handle walletRemoveCardsByType", () => { - const globalState = appReducer(undefined, applicationChangeState("active")); - const store = createStore(appReducer, globalState as any); - store.dispatch( - walletAddCards([ - mockCard, - { - ...mockCard, - key: "2" - }, - { - ...mockCard, - key: "3" - }, - { - ...mockCard, - key: "4" - } - ]) - ); - store.dispatch(walletRemoveCardsByType("payment")); - expect(store.getState().features.wallet.cards).toEqual({}); - }); -}); diff --git a/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionCartList.tsx b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionCartList.tsx index bf0d8961660..cf0c2b4af29 100644 --- a/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionCartList.tsx +++ b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionCartList.tsx @@ -53,7 +53,10 @@ export const PaymentsBizEventsTransactionCartList = ({ }; const SkeletonTransactionDetailsList = () => ( - + diff --git a/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionFeeAmountSection.tsx b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionFeeAmountSection.tsx new file mode 100644 index 00000000000..de54aa98a38 --- /dev/null +++ b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionFeeAmountSection.tsx @@ -0,0 +1,57 @@ +import { Body, IOStyles, VSpacer } from "@pagopa/io-app-design-system"; +import React from "react"; +import { View } from "react-native"; +import Placeholder from "rn-placeholder"; +import I18n from "../../../../i18n"; +import { InfoNotice } from "../../../../../definitions/pagopa/biz-events/InfoNotice"; +import { formatAmountText, isValidPspName } from "../utils"; + +type Props = { + loading: boolean; + transactionInfo?: InfoNotice; +}; + +const PaymentsBizEventsTransactionFeeAmountSection = (props: Props) => { + const { loading, transactionInfo } = props; + + if (loading) { + return ( + + + + + + + ); + } + + const pspName = transactionInfo?.pspName; + + if (transactionInfo?.fee !== undefined) { + const formattedFee = formatAmountText(transactionInfo.fee); + return ( + + {I18n.t("transaction.details.totalFee")}{" "} + {formattedFee}{" "} + {isValidPspName(pspName) + ? // we want to make sure no empty string is passed either + I18n.t("transaction.details.totalFeePsp", { + pspName + }) + : I18n.t("transaction.details.totalFeeNoPsp")} + + ); + } + + return ( + + {isValidPspName(pspName) + ? I18n.t("features.payments.transactions.details.totalFeeUnknown", { + pspName + }) + : I18n.t("features.payments.transactions.details.totalFeeUnknownPsp")} + + ); +}; + +export default PaymentsBizEventsTransactionFeeAmountSection; diff --git a/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionHeadingSection.tsx b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionHeadingSection.tsx index 29e82cf3b56..93f7d048d8e 100644 --- a/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionHeadingSection.tsx +++ b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionHeadingSection.tsx @@ -1,24 +1,20 @@ -import _ from "lodash"; import { - Body, IOColors, IOStyles, useIOTheme, - VSpacer, VStack } from "@pagopa/io-app-design-system"; import { useNavigation } from "@react-navigation/native"; import React from "react"; import { View } from "react-native"; -import Placeholder from "rn-placeholder"; import { CartItem } from "../../../../../definitions/pagopa/biz-events/CartItem"; -import I18n from "../../../../i18n"; +import { NoticeDetailResponse } from "../../../../../definitions/pagopa/biz-events/NoticeDetailResponse"; import { Psp } from "../../../../types/pagopa"; -import { calculateTotalAmount, formatAmountText } from "../utils"; import { PaymentsTransactionBizEventsStackNavigation } from "../navigation/navigator"; import { PaymentsTransactionBizEventsRoutes } from "../navigation/routes"; -import { NoticeDetailResponse } from "../../../../../definitions/pagopa/biz-events/NoticeDetailResponse"; +import { calculateTotalAmount } from "../utils"; import { PaymentsBizEventsTransactionCartList } from "./PaymentsBizEventsTransactionCartList"; +import PaymentsBizEventsTransactionFeeAmountSection from "./PaymentsBizEventsTransactionFeeAmountSection"; import { PaymentsBizEventsTransactionTotalAmount } from "./PaymentsBizEventsTransactionTotalAmount"; type Props = { @@ -50,44 +46,6 @@ export const PaymentsBizEventsTransactionHeadingSection = ({ } }; - const FeeAmountSection = () => { - if (isLoading) { - return ( - - - - - - - ); - } - const pspName = transactionInfo?.pspName; - if (transactionInfo?.fee !== undefined) { - const formattedFee = formatAmountText(transactionInfo.fee); - return ( - - {I18n.t("transaction.details.totalFee")}{" "} - {formattedFee}{" "} - {pspName - ? // we want to make sure no empty string is passed either - I18n.t("transaction.details.totalFeePsp", { - pspName - }) - : I18n.t("transaction.details.totalFeeNoPsp")} - - ); - } - return ( - - {pspName - ? I18n.t("features.payments.transactions.details.totalFeeUnknown", { - pspName - }) - : I18n.t("features.payments.transactions.details.totalFeeUnknownPsp")} - - ); - }; - const totalAmount = calculateTotalAmount(transactionInfo); return ( @@ -104,7 +62,10 @@ export const PaymentsBizEventsTransactionHeadingSection = ({ totalAmount={totalAmount} /> )} - + ); diff --git a/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionInfoSection.tsx b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionInfoSection.tsx index fb193ca0d20..d4f537cbc5e 100644 --- a/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionInfoSection.tsx +++ b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionInfoSection.tsx @@ -25,7 +25,7 @@ import { clipboardSetStringWithFeedback } from "../../../../utils/clipboard"; import { format } from "../../../../utils/dates"; import { capitalizeTextName } from "../../../../utils/strings"; import { WalletTransactionReceiptDivider } from "../../transaction/components/WalletTransactionReceiptDivider"; -import { getPayerInfoLabel, removeAsterisks } from "../utils"; +import { getPayerInfoLabel, isValidPspName, removeAsterisks } from "../utils"; type PaymentsBizEventsTransactionInfoSectionProps = { transaction?: NoticeDetailResponse; @@ -83,6 +83,7 @@ const PaymentsBizEventsTransactionInfoSection = ({ {transactionInfo.payer && ( <> @@ -110,15 +111,16 @@ const PaymentsBizEventsTransactionInfoSection = ({ )} - {transactionInfo.pspName && ( - <> - - - - )} + {transactionInfo.pspName && + isValidPspName(transactionInfo.pspName) && ( + <> + + + + )} {transactionInfo.noticeDate && ( <> { }; const SkeletonItem = () => ( - + diff --git a/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionLoadingList.tsx b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionLoadingList.tsx index 918c4fa933b..d3e332557b0 100644 --- a/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionLoadingList.tsx +++ b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionLoadingList.tsx @@ -1,5 +1,6 @@ import { ListItemTransaction, VSpacer } from "@pagopa/io-app-design-system"; import * as React from "react"; +import { View } from "react-native"; import Placeholder from "rn-placeholder"; import { PaymentsBizEventsFadeInOutAnimationView } from "./PaymentsBizEventsFadeInOutAnimationView"; @@ -12,11 +13,11 @@ export const PaymentsBizEventsTransactionLoadingList = ({ }: PaymentsBizEventsTransactionLoadingListProps) => ( <> {showSectionTitleSkeleton && ( - <> + - + )} {Array.from({ length: 5 }).map((_, index) => ( diff --git a/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionTotalAmount.tsx b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionTotalAmount.tsx index 326f5ae7d53..513a3636693 100644 --- a/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionTotalAmount.tsx +++ b/ts/features/payments/bizEventsTransaction/components/PaymentsBizEventsTransactionTotalAmount.tsx @@ -24,11 +24,13 @@ export const PaymentsBizEventsTransactionTotalAmount = ({ {I18n.t("transaction.details.totalAmount")} {loading && ( - + )} - {!loading && totalAmount &&

{formatAmountText(totalAmount)}

} + {!loading && totalAmount && ( +

{formatAmountText(totalAmount)}

+ )}
); }; diff --git a/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsFilterTabs.test.tsx b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsFilterTabs.test.tsx new file mode 100644 index 00000000000..2cbd43abbc6 --- /dev/null +++ b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsFilterTabs.test.tsx @@ -0,0 +1,61 @@ +import { fireEvent, render } from "@testing-library/react-native"; +import React from "react"; +import { + PaymentBizEventsCategoryFilter, + paymentsBizEventsCategoryFilters +} from "../../types"; +import { PaymentsBizEventsFilterTabs } from "../PaymentsBizEventsFilterTabs"; + +describe("PaymentsBizEventsFilterTabs", () => { + const mockOnCategorySelected = jest.fn(); + + const renderComponent = (selectedCategory: PaymentBizEventsCategoryFilter) => + render( + + ); + + beforeEach(() => { + mockOnCategorySelected.mockClear(); + }); + + it("should render all category tabs", () => { + const { getByTestId } = renderComponent( + paymentsBizEventsCategoryFilters[0] + ); + + paymentsBizEventsCategoryFilters.forEach(category => { + expect(getByTestId(`CategoryTabTestID-${category}`)).toBeTruthy(); + }); + }); + + it("should call onCategorySelected with the correct category when a tab is pressed", () => { + const { getByTestId } = renderComponent( + paymentsBizEventsCategoryFilters[0] + ); + + const newCategory = paymentsBizEventsCategoryFilters[1]; + fireEvent.press(getByTestId(`CategoryTabTestID-${newCategory}`)); + + expect(mockOnCategorySelected).toHaveBeenCalledWith(newCategory); + }); + + it("should not call onCategorySelected if the selected tab is pressed again", () => { + const selectedCategory = paymentsBizEventsCategoryFilters[0]; + const { getByTestId } = renderComponent(selectedCategory); + + fireEvent.press(getByTestId(`CategoryTabTestID-${selectedCategory}`)); + + expect(mockOnCategorySelected).not.toHaveBeenCalled(); + }); + + it("should highlight the selected category tab", () => { + const selectedCategory = paymentsBizEventsCategoryFilters[1]; + const { getByTestId } = renderComponent(selectedCategory); + + const selectedTab = getByTestId(`CategoryTabTestID-${selectedCategory}`); + expect(selectedTab.props.accessibilityState.selected).toBe(true); + }); +}); diff --git a/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionCartList.test.tsx b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionCartList.test.tsx new file mode 100644 index 00000000000..6dc4c3f4f21 --- /dev/null +++ b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionCartList.test.tsx @@ -0,0 +1,75 @@ +import React from "react"; +import { render, fireEvent } from "@testing-library/react-native"; +import { PaymentsBizEventsTransactionCartList } from "../PaymentsBizEventsTransactionCartList"; +import { CartItem } from "../../../../../../definitions/pagopa/biz-events/CartItem"; + +describe("PaymentsBizEventsTransactionCartList", () => { + const mockOnPress = jest.fn(); + const cartItems: ReadonlyArray = [ + { + refNumberValue: "123", + subject: "Test Subject 1", + refNumberType: "Test Ref Number Type 1", + debtor: { name: "Test Debtor 1", taxCode: "Test Tax Code 1" }, + amount: "1000" + }, + { + refNumberValue: "456", + subject: "Test Subject 2", + refNumberType: "Test Ref Number Type 2", + debtor: { name: "Test Debtor 2", taxCode: "Test Tax Code 2" }, + amount: "2000" + } + ]; + + it("should render loading state", () => { + const { getByTestId } = render( + + ); + expect(getByTestId("skeleton-transaction-details-list")).toBeTruthy(); + }); + + it("should render cart items", () => { + const { getByText } = render( + + ); + + expect(getByText("Test Subject 1")).toBeTruthy(); + expect(getByText("Test Subject 2")).toBeTruthy(); + }); + + it("should call onPress when a cart item is pressed", () => { + const { getByText } = render( + + ); + + fireEvent.press(getByText("Test Subject 1")); + expect(mockOnPress).toHaveBeenCalledWith(cartItems[0]); + + fireEvent.press(getByText("Test Subject 2")); + expect(mockOnPress).toHaveBeenCalledWith(cartItems[1]); + }); + + it("should render null when carts are not provided", () => { + const { queryByText } = render( + + ); + + expect(queryByText("Test Subject 1")).toBeNull(); + expect(queryByText("Test Subject 2")).toBeNull(); + }); +}); diff --git a/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionFeeAmountSection.test.tsx b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionFeeAmountSection.test.tsx new file mode 100644 index 00000000000..aacf69d9f3b --- /dev/null +++ b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionFeeAmountSection.test.tsx @@ -0,0 +1,52 @@ +import { render } from "@testing-library/react-native"; +import * as React from "react"; +import { + InfoNotice, + OriginEnum +} from "../../../../../../definitions/pagopa/biz-events/InfoNotice"; +import I18n from "../../../../../i18n"; +import PaymentsBizEventsTransactionFeeAmountSection from "../PaymentsBizEventsTransactionFeeAmountSection"; + +describe("PaymentsBizEventsTransactionFeeAmountSection", () => { + it("renders loading state correctly", () => { + const { getByTestId } = render( + + ); + expect(getByTestId("loading-placeholder")).toBeTruthy(); + }); + + it("renders unknown fee message when fee is not provided", () => { + const transactionInfo: InfoNotice = { + pspName: "Test PSP", + eventId: "123", + noticeDate: "2021-01-01", + rrn: "123", + amount: "100", + origin: OriginEnum.UNKNOWN + }; + const { getByText } = render( + + ); + expect( + getByText( + I18n.t("features.payments.transactions.details.totalFeeUnknown", { + pspName: "Test PSP" + }) + ) + ).toBeTruthy(); + }); + + it("renders unknown fee message when fee and pspName are not provided", () => { + const { getByText } = render( + + ); + expect( + getByText( + I18n.t("features.payments.transactions.details.totalFeeUnknownPsp") + ) + ).toBeTruthy(); + }); +}); diff --git a/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionHeadingSection.test.tsx b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionHeadingSection.test.tsx new file mode 100644 index 00000000000..ec3abe72c37 --- /dev/null +++ b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionHeadingSection.test.tsx @@ -0,0 +1,53 @@ +import React from "react"; +import { createStore } from "redux"; +import { OriginEnum } from "../../../../../../definitions/pagopa/biz-events/InfoNotice"; +import { NoticeDetailResponse } from "../../../../../../definitions/pagopa/biz-events/NoticeDetailResponse"; +import { applicationChangeState } from "../../../../../store/actions/application"; +import { appReducer } from "../../../../../store/reducers"; +import { renderScreenWithNavigationStoreContext } from "../../../../../utils/testWrapper"; +import { PaymentsTransactionBizEventsRoutes } from "../../navigation/routes"; +import { PaymentsBizEventsTransactionHeadingSection } from "../PaymentsBizEventsTransactionHeadingSection"; + +const renderComponent = ( + isLoading: boolean, + transaction?: NoticeDetailResponse +) => { + const initialState = appReducer(undefined, applicationChangeState("active")); + const store = createStore(appReducer, initialState as any); + + return renderScreenWithNavigationStoreContext( + () => ( + + ), + PaymentsTransactionBizEventsRoutes.PAYMENT_TRANSACTION_BIZ_EVENTS_DETAILS, + {}, + store + ); +}; + +describe("PaymentsBizEventsTransactionHeadingSection", () => { + it("Should show total amount if transaction is provided", () => { + const transaction: NoticeDetailResponse = { + infoNotice: { + fee: "100", + eventId: "eventId", + rrn: "rrn", + noticeDate: "noticeDate", + pspName: "pspName", + amount: "100", + origin: OriginEnum.INTERNAL + } + }; + + const { getByTestId } = renderComponent(false, transaction); + expect(getByTestId("total-amount")).toBeTruthy(); + }); + + it("Should not show total amount if transaction is not provided", () => { + const { queryByTestId } = renderComponent(false); + expect(queryByTestId("total-amount")).toBeNull(); + }); +}); diff --git a/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionInfoSection.test.tsx b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionInfoSection.test.tsx new file mode 100644 index 00000000000..32be043a47b --- /dev/null +++ b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionInfoSection.test.tsx @@ -0,0 +1,131 @@ +import Clipboard from "@react-native-clipboard/clipboard"; +import { fireEvent, render } from "@testing-library/react-native"; +import React from "react"; +import { + OriginEnum, + PaymentMethodEnum +} from "../../../../../../definitions/pagopa/biz-events/InfoNotice"; +import { NoticeDetailResponse } from "../../../../../../definitions/pagopa/biz-events/NoticeDetailResponse"; +import I18n from "../../../../../i18n"; +import PaymentsBizEventsTransactionInfoSection from "../PaymentsBizEventsTransactionInfoSection"; + +const mockTransaction: NoticeDetailResponse = { + infoNotice: { + payer: { + name: "John Doe", + taxCode: "ABCDEF12G" + }, + paymentMethod: PaymentMethodEnum.AD, + walletInfo: { + blurredNumber: "**** **** **** 1234", + brand: "Visa", + maskedEmail: "john.doe@example.com", + accountHolder: "John Doe" + }, + pspName: "Test PSP", + noticeDate: "2023-10-01T12:00:00Z", + rrn: "123456789", + authCode: "987654", + eventId: "event123", + origin: OriginEnum.PM, + amount: "100.00" + } +}; + +describe("PaymentsBizEventsTransactionInfoSection", () => { + it("renders loading skeletons when loading is true", () => { + const { getAllByTestId } = render( + + ); + expect(getAllByTestId("skeleton-item").length).toBeGreaterThan(0); + }); + + it("renders transaction information correctly when transaction data is provided", () => { + const { getByText } = render( + + ); + + // Payer Info + expect( + getByText(I18n.t("transaction.details.info.executedBy")) + ).toBeTruthy(); + + // Payment Method + expect( + getByText(I18n.t("transaction.details.info.paymentMethod")) + ).toBeTruthy(); + expect(getByText("Visa •••• 1234")).toBeTruthy(); + + // PSP Name + expect(getByText(I18n.t("transaction.details.info.pspName"))).toBeTruthy(); + expect(getByText("Test PSP")).toBeTruthy(); + + // Date and Hour + expect( + getByText(I18n.t("transaction.details.info.dateAndHour")) + ).toBeTruthy(); + + // RRN with Copy Button + const rrnElement = getByText("123456789"); + expect(rrnElement).toBeTruthy(); + fireEvent.press(rrnElement); + + // Auth Code + expect(getByText(I18n.t("transaction.details.info.authCode"))).toBeTruthy(); + expect(getByText("987654")).toBeTruthy(); + + // Event ID with Copy Button + const eventIdElement = getByText("event123"); + fireEvent.press(eventIdElement); + + expect(Clipboard.setString).toHaveBeenCalledWith( + mockTransaction.infoNotice?.rrn + ); + + // Alert for Imported Transactions + expect( + getByText(I18n.t("transaction.details.bannerImported.content")) + ).toBeTruthy(); + }); + + it("does not render sections if transaction data is missing", () => { + const { queryByText } = render( + + ); + expect( + queryByText(I18n.t("transaction.details.info.executedBy")) + ).toBeNull(); + }); + + it("renders PayPal instead of credit card if only maskedEmail is provided", () => { + const paypalTransaction: NoticeDetailResponse = { + ...mockTransaction, + infoNotice: { + ...mockTransaction.infoNotice, + walletInfo: { + maskedEmail: "john.doe@example.com" + }, + pspName: "Test PSP", + noticeDate: "2023-10-01T12:00:00Z", + rrn: "123456789", + eventId: "event123", + origin: OriginEnum.PM, + amount: "100.00" + } + }; + const { getByText } = render( + + ); + + expect( + getByText(I18n.t("transaction.details.info.paymentMethod")) + ).toBeTruthy(); + expect(getByText("PayPal")).toBeTruthy(); + }); +}); diff --git a/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionLoadingList.test.tsx b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionLoadingList.test.tsx new file mode 100644 index 00000000000..9e431c96f26 --- /dev/null +++ b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionLoadingList.test.tsx @@ -0,0 +1,25 @@ +import { render } from "@testing-library/react-native"; +import * as React from "react"; +import { PaymentsBizEventsTransactionLoadingList } from "../PaymentsBizEventsTransactionLoadingList"; + +describe("PaymentsBizEventsTransactionLoadingList", () => { + it("should render section title skeleton when showSectionTitleSkeleton is true", () => { + const { getByTestId } = render( + + ); + + expect(getByTestId("section-title-skeleton")).toBeTruthy(); + }); + + it("should not render section title skeleton when showSectionTitleSkeleton is false", () => { + const { queryByTestId } = render( + + ); + + expect(queryByTestId("section-title-skeleton")).toBeNull(); + }); +}); diff --git a/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionTotalAmount.test.tsx b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionTotalAmount.test.tsx new file mode 100644 index 00000000000..b8920e836b7 --- /dev/null +++ b/ts/features/payments/bizEventsTransaction/components/___tests___/PaymentsBizEventsTransactionTotalAmount.test.tsx @@ -0,0 +1,45 @@ +import { render } from "@testing-library/react-native"; +import React from "react"; +import I18n from "../../../../../i18n"; +import { PaymentsBizEventsTransactionTotalAmount } from "../PaymentsBizEventsTransactionTotalAmount"; +import { formatAmountText } from "../../utils"; +describe("PaymentsBizEventsTransactionTotalAmount", () => { + it("should render loading placeholder when loading is true", () => { + const { getByTestId } = render( + + ); + + expect(getByTestId("loader")).toBeTruthy(); + }); + + it("should render total amount when loading is false and totalAmount is provided", () => { + const { getByText } = render( + + ); + expect(getByText(I18n.t("transaction.details.totalAmount"))).toBeTruthy(); + + expect(getByText(formatAmountText("100"))).toBeTruthy(); + }); + + it("should not render total amount when loading is true", () => { + const { queryByText } = render( + + ); + + expect(queryByText("€100")).toBeNull(); + }); + + it("should not render total amount when totalAmount is not provided", () => { + const { queryByText } = render( + + ); + + expect(queryByText("€")).toBeNull(); + }); +}); diff --git a/ts/features/payments/bizEventsTransaction/utils/__tests__/index.test.ts b/ts/features/payments/bizEventsTransaction/utils/__tests__/index.test.ts index 3f582787c01..9fa9b808714 100644 --- a/ts/features/payments/bizEventsTransaction/utils/__tests__/index.test.ts +++ b/ts/features/payments/bizEventsTransaction/utils/__tests__/index.test.ts @@ -5,6 +5,8 @@ import { formatAmountText, getPayerInfoLabel, getTransactionByIndex, + isValidPspName, + removeAsterisks, restoreTransactionAtIndex } from ".."; import { InfoNotice } from "../../../../../../definitions/pagopa/biz-events/InfoNotice"; @@ -349,3 +351,39 @@ describe("restoreTransactionAtIndex", () => { expect(restoredTransactions).toEqual([restoreItem]); }); }); + +describe("removeAsterisks", () => { + it("should remove all asterisks from the input string", () => { + expect(removeAsterisks("abc*def*ghi")).toBe("abcdefghi"); + }); + + it("should return an empty string if the input is an asterisk", () => { + expect(removeAsterisks("*")).toBe(""); + }); + + it("should return an empty string if the input is an empty string", () => { + expect(removeAsterisks("")).toBe(""); + }); + + it("should return the input string if there are no asterisks", () => { + expect(removeAsterisks("abcdefghi")).toBe("abcdefghi"); + }); + + it("should return the input string if there are no characters", () => { + expect(removeAsterisks("")).toBe(""); + }); +}); + +describe("isValidPspName", () => { + it("should return false if the name is undefined", () => { + expect(isValidPspName(undefined)).toBe(false); + }); + + it('should return false if the name is "-"', () => { + expect(isValidPspName("-")).toBe(false); + }); + + it("should return true if the name is not undefined and not equal to '-'", () => { + expect(isValidPspName("Test PSP")).toBe(true); + }); +}); diff --git a/ts/features/payments/bizEventsTransaction/utils/index.ts b/ts/features/payments/bizEventsTransaction/utils/index.ts index 22922dba7d6..7cefeb9970d 100644 --- a/ts/features/payments/bizEventsTransaction/utils/index.ts +++ b/ts/features/payments/bizEventsTransaction/utils/index.ts @@ -1,4 +1,6 @@ import * as pot from "@pagopa/ts-commons/lib/pot"; +import { pipe } from "fp-ts/lib/function"; +import * as O from "fp-ts/lib/Option"; import { SectionListData } from "react-native"; import { InfoNotice } from "../../../../../definitions/pagopa/biz-events/InfoNotice"; import { NoticeListItem } from "../../../../../definitions/pagopa/biz-events/NoticeListItem"; @@ -144,3 +146,11 @@ export const restoreTransactionAtIndex = ( export const removeAsterisks = (text: string): string => text.replace(/\*/g, ""); + +export const isValidPspName = (pspName: string | undefined): boolean => + pipe( + pspName, + O.fromNullable, + O.map(name => name !== "-"), + O.getOrElse(() => false) + ); diff --git a/ts/features/payments/checkout/screens/WalletPaymentOutcomeScreen.tsx b/ts/features/payments/checkout/screens/WalletPaymentOutcomeScreen.tsx index 060a67a6ae6..e005da7d6ed 100644 --- a/ts/features/payments/checkout/screens/WalletPaymentOutcomeScreen.tsx +++ b/ts/features/payments/checkout/screens/WalletPaymentOutcomeScreen.tsx @@ -129,11 +129,11 @@ const WalletPaymentOutcomeScreen = () => { }; const handleClose = () => { + dispatch(getPaymentsLatestBizEventsTransactionsAction.request()); if ( onSuccessAction === "showHome" || onSuccessAction === "showTransaction" ) { - dispatch(getPaymentsLatestBizEventsTransactionsAction.request()); // Currently we do support only navigation to the wallet // TODO navigate to the transaction details if payment outcome is success navigation.popToTop(); @@ -153,7 +153,8 @@ const WalletPaymentOutcomeScreen = () => { const closeSuccessAction: OperationResultScreenContentProps["action"] = { label: I18n.t("wallet.payment.outcome.SUCCESS.button"), accessibilityLabel: I18n.t("wallet.payment.outcome.SUCCESS.button"), - onPress: handleClose + onPress: handleClose, + testID: "wallet-payment-outcome-success-button" }; const closeFailureAction: OperationResultScreenContentProps["action"] = { diff --git a/ts/features/payments/checkout/screens/___tests___/WalletPaymentOutcomeScreen.test.tsx b/ts/features/payments/checkout/screens/___tests___/WalletPaymentOutcomeScreen.test.tsx index 5ce4dc5ba04..74a5619e232 100644 --- a/ts/features/payments/checkout/screens/___tests___/WalletPaymentOutcomeScreen.test.tsx +++ b/ts/features/payments/checkout/screens/___tests___/WalletPaymentOutcomeScreen.test.tsx @@ -1,3 +1,4 @@ +import { fireEvent } from "@testing-library/react-native"; import { default as configureMockStore } from "redux-mock-store"; import { applicationChangeState } from "../../../../../store/actions/application"; import { appReducer } from "../../../../../store/reducers"; @@ -6,6 +7,8 @@ import { renderScreenWithNavigationStoreContext } from "../../../../../utils/tes import { PaymentsCheckoutRoutes } from "../../navigation/routes"; import { WalletPaymentOutcomeScreen } from "../WalletPaymentOutcomeScreen"; import { WalletPaymentOutcomeEnum } from "../../types/PaymentOutcomeEnum"; +import { getPaymentsLatestBizEventsTransactionsAction } from "../../../bizEventsTransaction/store/actions"; +import * as useIO from "../../../../../store/hooks"; const renderComponent = (outcome: WalletPaymentOutcomeEnum) => { const globalState = appReducer(undefined, applicationChangeState("active")); @@ -23,6 +26,7 @@ const renderComponent = (outcome: WalletPaymentOutcomeEnum) => { store ); }; + describe("WalletPaymentOutcomeScreen for all outcomes", () => { Object.values(WalletPaymentOutcomeEnum).forEach(outcome => { it(`should render the WalletPaymentOutcomeScreen for outcome: ${outcome}`, () => { @@ -30,4 +34,14 @@ describe("WalletPaymentOutcomeScreen for all outcomes", () => { expect(renderedComponent.toJSON()).toMatchSnapshot(); }); }); + it(`should fetch the latest transaction when closing the thank you page after a success outcome`, () => { + const mockedDispatch = jest.fn(); + jest.spyOn(useIO, "useIODispatch").mockImplementation(() => mockedDispatch); + + const { getByTestId } = renderComponent(WalletPaymentOutcomeEnum.SUCCESS); + fireEvent.press(getByTestId("wallet-payment-outcome-success-button")); + expect(mockedDispatch).toHaveBeenCalledWith( + getPaymentsLatestBizEventsTransactionsAction.request() + ); + }); }); diff --git a/ts/features/payments/checkout/screens/___tests___/__snapshots__/WalletPaymentOutcomeScreen.test.tsx.snap b/ts/features/payments/checkout/screens/___tests___/__snapshots__/WalletPaymentOutcomeScreen.test.tsx.snap index 779d13f2191..2b865bed3fe 100644 --- a/ts/features/payments/checkout/screens/___tests___/__snapshots__/WalletPaymentOutcomeScreen.test.tsx.snap +++ b/ts/features/payments/checkout/screens/___tests___/__snapshots__/WalletPaymentOutcomeScreen.test.tsx.snap @@ -63,6 +63,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -475,6 +476,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "alignSelf": "flex-start", } } + testID="wallet-payment-outcome-success-button" > @@ -4311,6 +4314,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -6440,6 +6444,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -8554,6 +8559,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -10682,6 +10688,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -12881,6 +12888,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -15052,6 +15060,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -17166,6 +17175,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -19230,6 +19240,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -21378,6 +21389,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -23506,6 +23518,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -25654,6 +25667,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -27853,6 +27867,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -30001,6 +30016,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -32149,6 +32165,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -34305,6 +34322,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -36433,6 +36451,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -38634,6 +38653,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -40762,6 +40782,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -43128,6 +43149,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -45298,6 +45320,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -47500,6 +47523,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -49763,6 +49787,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -50105,7 +50130,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay ] } > - Il saldo è insufficiente + Il saldo della tua carta è insufficiente @@ -54033,6 +54059,7 @@ exports[`WalletPaymentOutcomeScreen for all outcomes should render the WalletPay "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/payments/common/components/PaymentCardSmall.tsx b/ts/features/payments/common/components/PaymentCardSmall.tsx index 575936823c5..a7956fb7f30 100644 --- a/ts/features/payments/common/components/PaymentCardSmall.tsx +++ b/ts/features/payments/common/components/PaymentCardSmall.tsx @@ -10,7 +10,7 @@ import { StyleSheet, View } from "react-native"; import Placeholder from "rn-placeholder"; import { LogoPaymentWithFallback } from "../../../../components/ui/utils/components/LogoPaymentWithFallback"; import { WithTestID } from "../../../../types/WithTestID"; -import { WalletCardPressableBase } from "../../../newWallet/components/WalletCardPressableBase"; +import { WalletCardPressableBase } from "../../../wallet/components/WalletCardPressableBase"; import { PaymentCardProps } from "./PaymentCard"; export type PaymentCardSmallProps = WithTestID< diff --git a/ts/features/payments/common/components/__tests__/__snapshots__/PaymentCardBig.test.tsx.snap b/ts/features/payments/common/components/__tests__/__snapshots__/PaymentCardBig.test.tsx.snap index 4ac4cb61a26..59fb0b9eab9 100644 --- a/ts/features/payments/common/components/__tests__/__snapshots__/PaymentCardBig.test.tsx.snap +++ b/ts/features/payments/common/components/__tests__/__snapshots__/PaymentCardBig.test.tsx.snap @@ -204,6 +204,7 @@ exports[`PaymentCardBig component matches snapshot for loading 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -676,6 +677,7 @@ exports[`PaymentCardBig component matches snapshot for paypal 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/payments/common/components/__tests__/__snapshots__/PaymentCardSmall.test.tsx.snap b/ts/features/payments/common/components/__tests__/__snapshots__/PaymentCardSmall.test.tsx.snap index 7e661f94783..772e70b1544 100644 --- a/ts/features/payments/common/components/__tests__/__snapshots__/PaymentCardSmall.test.tsx.snap +++ b/ts/features/payments/common/components/__tests__/__snapshots__/PaymentCardSmall.test.tsx.snap @@ -204,6 +204,7 @@ exports[`PaymentCardSmall should match the snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/payments/common/utils/index.ts b/ts/features/payments/common/utils/index.ts index 00b9a395ac4..a2b1a36fe6c 100644 --- a/ts/features/payments/common/utils/index.ts +++ b/ts/features/payments/common/utils/index.ts @@ -17,7 +17,7 @@ import { PaymentCardProps } from "../components/PaymentCard"; import { UIWalletInfoDetails } from "../types/UIWalletInfoDetails"; import { NoticeListItem } from "../../../../../definitions/pagopa/biz-events/NoticeListItem"; import { findFirstCaseInsensitive } from "../../../../utils/object"; -import { WalletCard } from "../../../newWallet/types"; +import { WalletCard } from "../../../wallet/types"; import { contentRepoUrl } from "../../../../config"; import { LevelEnum } from "../../../../../definitions/content/SectionStatus"; import { AlertVariant, ListItemTransactionStatus } from "./types"; diff --git a/ts/features/payments/details/saga/handleGetWalletDetails.ts b/ts/features/payments/details/saga/handleGetWalletDetails.ts index 2215bc57822..da608445c40 100644 --- a/ts/features/payments/details/saga/handleGetWalletDetails.ts +++ b/ts/features/payments/details/saga/handleGetWalletDetails.ts @@ -5,7 +5,7 @@ import { paymentsGetMethodDetailsAction } from "../store/actions"; import { readablePrivacyReport } from "../../../../utils/reporters"; import { getGenericError, getNetworkError } from "../../../../utils/errors"; import { WalletClient } from "../../common/api/client"; -import { walletAddCards } from "../../../newWallet/store/actions/cards"; +import { walletAddCards } from "../../../wallet/store/actions/cards"; import { mapWalletsToCards } from "../../common/utils"; import { withPaymentsSessionToken } from "../../common/utils/withPaymentsSessionToken"; diff --git a/ts/features/payments/wallet/components/PaymentWalletCard.tsx b/ts/features/payments/wallet/components/PaymentWalletCard.tsx index 82e415e953a..628cf93f797 100644 --- a/ts/features/payments/wallet/components/PaymentWalletCard.tsx +++ b/ts/features/payments/wallet/components/PaymentWalletCard.tsx @@ -1,11 +1,11 @@ import React from "react"; import { useIONavigation } from "../../../../navigation/params/AppParamsList"; -import { withWalletCardBaseComponent } from "../../../newWallet/components/WalletCardBaseComponent"; +import { withWalletCardBaseComponent } from "../../../wallet/components/WalletCardBaseComponent"; import { PaymentCard, PaymentCardProps } from "../../common/components/PaymentCard"; -import { WalletCardPressableBase } from "../../../newWallet/components/WalletCardPressableBase"; +import { WalletCardPressableBase } from "../../../wallet/components/WalletCardPressableBase"; import { PaymentsMethodDetailsRoutes } from "../../details/navigation/routes"; export type PaymentWalletCardProps = PaymentCardProps & { diff --git a/ts/features/payments/wallet/saga/__tests__/handleGetPaymentsWalletUserMethods.test.ts b/ts/features/payments/wallet/saga/__tests__/handleGetPaymentsWalletUserMethods.test.ts index 7f79c2091f6..d4f617dc7c7 100644 --- a/ts/features/payments/wallet/saga/__tests__/handleGetPaymentsWalletUserMethods.test.ts +++ b/ts/features/payments/wallet/saga/__tests__/handleGetPaymentsWalletUserMethods.test.ts @@ -5,8 +5,8 @@ import { WalletStatusEnum } from "../../../../../../definitions/pagopa/walletv3/ import { Wallets } from "../../../../../../definitions/pagopa/walletv3/Wallets"; import { getPaymentsWalletUserMethods } from "../../store/actions"; import { handleGetPaymentsWalletUserMethods } from "../handleGetPaymentsWalletUserMethods"; -import { WalletCard } from "../../../../newWallet/types"; -import { walletAddCards } from "../../../../newWallet/store/actions/cards"; +import { WalletCard } from "../../../../wallet/types"; +import { walletAddCards } from "../../../../wallet/store/actions/cards"; import { getGenericError } from "../../../../../utils/errors"; import { readablePrivacyReport } from "../../../../../utils/reporters"; import { getDateFromExpiryDate } from "../../../../../utils/dates"; diff --git a/ts/features/payments/wallet/saga/handleGetPaymentsWalletUserMethods.ts b/ts/features/payments/wallet/saga/handleGetPaymentsWalletUserMethods.ts index 233e10e876c..280db6ce94f 100644 --- a/ts/features/payments/wallet/saga/handleGetPaymentsWalletUserMethods.ts +++ b/ts/features/payments/wallet/saga/handleGetPaymentsWalletUserMethods.ts @@ -4,7 +4,7 @@ import { put } from "typed-redux-saga/macro"; import { ActionType } from "typesafe-actions"; import { getGenericError, getNetworkError } from "../../../../utils/errors"; import { readablePrivacyReport } from "../../../../utils/reporters"; -import { walletAddCards } from "../../../newWallet/store/actions/cards"; +import { walletAddCards } from "../../../wallet/store/actions/cards"; import { WalletClient } from "../../common/api/client"; import { mapWalletsToCards } from "../../common/utils"; import { getPaymentsWalletUserMethods } from "../store/actions"; diff --git a/ts/features/pn/components/__test__/__snapshots__/F24ListBottomSheetLink.test.tsx.snap b/ts/features/pn/components/__test__/__snapshots__/F24ListBottomSheetLink.test.tsx.snap index 0557b20d323..6ca5415a53f 100644 --- a/ts/features/pn/components/__test__/__snapshots__/F24ListBottomSheetLink.test.tsx.snap +++ b/ts/features/pn/components/__test__/__snapshots__/F24ListBottomSheetLink.test.tsx.snap @@ -204,6 +204,7 @@ exports[`F24ListBottomSheetLink should be snapshot for a 10 items F24 list 1`] = "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2924,6 +2925,7 @@ exports[`F24ListBottomSheetLink should be snapshot for an 0 items F24 list 1`] = "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3420,6 +3422,7 @@ exports[`F24ListBottomSheetLink should be snapshot for an 1 item F24 list 1`] = "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pn/components/__test__/__snapshots__/F24Section.test.tsx.snap b/ts/features/pn/components/__test__/__snapshots__/F24Section.test.tsx.snap index 7426ecc0b0b..a7a4fec7001 100644 --- a/ts/features/pn/components/__test__/__snapshots__/F24Section.test.tsx.snap +++ b/ts/features/pn/components/__test__/__snapshots__/F24Section.test.tsx.snap @@ -204,6 +204,7 @@ exports[`F24Section should match snapshot when there are more than one F24 1`] = "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1300,6 +1301,7 @@ exports[`F24Section should match snapshot when there are more than one F24 and t "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1643,6 +1645,7 @@ exports[`F24Section should match snapshot when there are no F24 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1986,6 +1989,7 @@ exports[`F24Section should match snapshot when there are no F24 and the message "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2329,6 +2333,7 @@ exports[`F24Section should match snapshot when there is a single F24 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3049,6 +3054,7 @@ exports[`F24Section should match snapshot when there is a single F24 and the mes "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pn/components/__test__/__snapshots__/MessageBottomMenu.test.tsx.snap b/ts/features/pn/components/__test__/__snapshots__/MessageBottomMenu.test.tsx.snap index aa395aa2b56..f1bb980dcda 100644 --- a/ts/features/pn/components/__test__/__snapshots__/MessageBottomMenu.test.tsx.snap +++ b/ts/features/pn/components/__test__/__snapshots__/MessageBottomMenu.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3361,6 +3362,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -6831,6 +6833,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -9988,6 +9991,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -13145,6 +13149,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -16302,6 +16307,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -19459,6 +19465,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -22616,6 +22623,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -25773,6 +25781,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -28930,6 +28939,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -32087,6 +32097,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -35557,6 +35568,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -38714,6 +38726,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -43599,6 +43612,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -48484,6 +48498,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -53369,6 +53384,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -58254,6 +58270,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -63139,6 +63156,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -68024,6 +68042,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -71181,6 +71200,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -74651,6 +74671,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -77808,6 +77829,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -81541,6 +81563,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -85274,6 +85297,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -89007,6 +89031,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -92740,6 +92765,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -96473,6 +96499,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -100206,6 +100233,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -103363,6 +103391,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -106833,6 +106862,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -109990,6 +110020,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -113147,6 +113178,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -116304,6 +116336,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -119461,6 +119494,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -122618,6 +122652,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -125775,6 +125810,7 @@ exports[`MessageBottomMenu should match snapshot, all handled-status items histo "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -128932,6 +128968,7 @@ exports[`MessageBottomMenu should match snapshot, no history, empty payments, ca "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -130334,6 +130371,7 @@ exports[`MessageBottomMenu should match snapshot, no history, empty payments, ca "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -132049,6 +132087,7 @@ exports[`MessageBottomMenu should match snapshot, no history, empty payments, ca "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -133451,6 +133490,7 @@ exports[`MessageBottomMenu should match snapshot, no history, empty payments, no "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -134853,6 +134893,7 @@ exports[`MessageBottomMenu should match snapshot, no history, empty payments, no "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -136255,6 +136296,7 @@ exports[`MessageBottomMenu should match snapshot, no history, empty payments, no "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -137657,6 +137699,7 @@ exports[`MessageBottomMenu should match snapshot, no history, empty payments, un "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -139059,6 +139102,7 @@ exports[`MessageBottomMenu should match snapshot, no history, empty payments, un "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -140461,6 +140505,7 @@ exports[`MessageBottomMenu should match snapshot, no history, empty payments, un "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -141863,6 +141908,7 @@ exports[`MessageBottomMenu should match snapshot, no history, multiple payments, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -143265,6 +143311,7 @@ exports[`MessageBottomMenu should match snapshot, no history, multiple payments, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -144980,6 +145027,7 @@ exports[`MessageBottomMenu should match snapshot, no history, multiple payments, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -146382,6 +146430,7 @@ exports[`MessageBottomMenu should match snapshot, no history, multiple payments, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -149512,6 +149561,7 @@ exports[`MessageBottomMenu should match snapshot, no history, multiple payments, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -152642,6 +152692,7 @@ exports[`MessageBottomMenu should match snapshot, no history, multiple payments, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -155772,6 +155823,7 @@ exports[`MessageBottomMenu should match snapshot, no history, multiple payments, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -158902,6 +158954,7 @@ exports[`MessageBottomMenu should match snapshot, no history, multiple payments, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -162032,6 +162085,7 @@ exports[`MessageBottomMenu should match snapshot, no history, multiple payments, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -165162,6 +165216,7 @@ exports[`MessageBottomMenu should match snapshot, no history, one payment, cance "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -166564,6 +166619,7 @@ exports[`MessageBottomMenu should match snapshot, no history, one payment, cance "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -168279,6 +168335,7 @@ exports[`MessageBottomMenu should match snapshot, no history, one payment, cance "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -169681,6 +169738,7 @@ exports[`MessageBottomMenu should match snapshot, no history, one payment, not c "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -171659,6 +171717,7 @@ exports[`MessageBottomMenu should match snapshot, no history, one payment, not c "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -173637,6 +173696,7 @@ exports[`MessageBottomMenu should match snapshot, no history, one payment, not c "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -175615,6 +175675,7 @@ exports[`MessageBottomMenu should match snapshot, no history, one payment, undef "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -177593,6 +177654,7 @@ exports[`MessageBottomMenu should match snapshot, no history, one payment, undef "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -179571,6 +179633,7 @@ exports[`MessageBottomMenu should match snapshot, no history, one payment, undef "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -181549,6 +181612,7 @@ exports[`MessageBottomMenu should match snapshot, no history, undefined payments "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -182951,6 +183015,7 @@ exports[`MessageBottomMenu should match snapshot, no history, undefined payments "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -184666,6 +184731,7 @@ exports[`MessageBottomMenu should match snapshot, no history, undefined payments "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -186068,6 +186134,7 @@ exports[`MessageBottomMenu should match snapshot, no history, undefined payments "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -187470,6 +187537,7 @@ exports[`MessageBottomMenu should match snapshot, no history, undefined payments "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -188872,6 +188940,7 @@ exports[`MessageBottomMenu should match snapshot, no history, undefined payments "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -190274,6 +190343,7 @@ exports[`MessageBottomMenu should match snapshot, no history, undefined payments "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -191676,6 +191746,7 @@ exports[`MessageBottomMenu should match snapshot, no history, undefined payments "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -193078,6 +193149,7 @@ exports[`MessageBottomMenu should match snapshot, no history, undefined payments "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pn/components/__test__/__snapshots__/MessageCancelledContent.test.tsx.snap b/ts/features/pn/components/__test__/__snapshots__/MessageCancelledContent.test.tsx.snap index 11577ff8241..52bfcbbfa9b 100644 --- a/ts/features/pn/components/__test__/__snapshots__/MessageCancelledContent.test.tsx.snap +++ b/ts/features/pn/components/__test__/__snapshots__/MessageCancelledContent.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageCancelledContent Should match snapshot, cancelled, empty paid no "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -679,6 +680,7 @@ exports[`MessageCancelledContent Should match snapshot, cancelled, empty paid no "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1154,6 +1156,7 @@ exports[`MessageCancelledContent Should match snapshot, cancelled, empty paid no "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1629,6 +1632,7 @@ exports[`MessageCancelledContent Should match snapshot, cancelled, non-empty pai "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2104,6 +2108,7 @@ exports[`MessageCancelledContent Should match snapshot, cancelled, non-empty pai "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2579,6 +2584,7 @@ exports[`MessageCancelledContent Should match snapshot, cancelled, non-empty pai "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3054,6 +3060,7 @@ exports[`MessageCancelledContent Should match snapshot, cancelled, undefined pai "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3529,6 +3536,7 @@ exports[`MessageCancelledContent Should match snapshot, cancelled, undefined pai "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4004,6 +4012,7 @@ exports[`MessageCancelledContent Should match snapshot, cancelled, undefined pai "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4479,6 +4488,7 @@ exports[`MessageCancelledContent Should match snapshot, not cancelled, empty pai "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4822,6 +4832,7 @@ exports[`MessageCancelledContent Should match snapshot, not cancelled, empty pai "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5165,6 +5176,7 @@ exports[`MessageCancelledContent Should match snapshot, not cancelled, empty pai "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5508,6 +5520,7 @@ exports[`MessageCancelledContent Should match snapshot, not cancelled, non-empty "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5851,6 +5864,7 @@ exports[`MessageCancelledContent Should match snapshot, not cancelled, non-empty "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -6194,6 +6208,7 @@ exports[`MessageCancelledContent Should match snapshot, not cancelled, non-empty "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -6537,6 +6552,7 @@ exports[`MessageCancelledContent Should match snapshot, not cancelled, undefined "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -6880,6 +6896,7 @@ exports[`MessageCancelledContent Should match snapshot, not cancelled, undefined "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -7223,6 +7240,7 @@ exports[`MessageCancelledContent Should match snapshot, not cancelled, undefined "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -7566,6 +7584,7 @@ exports[`MessageCancelledContent Should match snapshot, undefined cancelled, emp "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -7909,6 +7928,7 @@ exports[`MessageCancelledContent Should match snapshot, undefined cancelled, emp "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -8252,6 +8272,7 @@ exports[`MessageCancelledContent Should match snapshot, undefined cancelled, emp "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -8595,6 +8616,7 @@ exports[`MessageCancelledContent Should match snapshot, undefined cancelled, non "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -8938,6 +8960,7 @@ exports[`MessageCancelledContent Should match snapshot, undefined cancelled, non "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -9281,6 +9304,7 @@ exports[`MessageCancelledContent Should match snapshot, undefined cancelled, non "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -9624,6 +9648,7 @@ exports[`MessageCancelledContent Should match snapshot, undefined cancelled, und "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -9967,6 +9992,7 @@ exports[`MessageCancelledContent Should match snapshot, undefined cancelled, und "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -10310,6 +10336,7 @@ exports[`MessageCancelledContent Should match snapshot, undefined cancelled, und "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pn/components/__test__/__snapshots__/MessageDetails.test.tsx.snap b/ts/features/pn/components/__test__/__snapshots__/MessageDetails.test.tsx.snap index ebfc3766c02..71fa5a9a78f 100644 --- a/ts/features/pn/components/__test__/__snapshots__/MessageDetails.test.tsx.snap +++ b/ts/features/pn/components/__test__/__snapshots__/MessageDetails.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageDetails component should match the snapshot with default props 1 "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pn/components/__test__/__snapshots__/MessageFooter.test.tsx.snap b/ts/features/pn/components/__test__/__snapshots__/MessageFooter.test.tsx.snap index a438572bb1c..0901943d526 100644 --- a/ts/features/pn/components/__test__/__snapshots__/MessageFooter.test.tsx.snap +++ b/ts/features/pn/components/__test__/__snapshots__/MessageFooter.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessageFooter should match snapshot for cancelled PN notification 1`] = "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -547,6 +548,7 @@ exports[`MessageFooter should match snapshot for hidden button 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -890,6 +892,7 @@ exports[`MessageFooter should match snapshot for visibleEnabled button 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1367,6 +1370,7 @@ exports[`MessageFooter should match snapshot for visibleLoading button 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pn/components/__test__/__snapshots__/MessagePaymentBottomSheet.test.tsx.snap b/ts/features/pn/components/__test__/__snapshots__/MessagePaymentBottomSheet.test.tsx.snap index b6e73bf335d..87a1ddfe002 100644 --- a/ts/features/pn/components/__test__/__snapshots__/MessagePaymentBottomSheet.test.tsx.snap +++ b/ts/features/pn/components/__test__/__snapshots__/MessagePaymentBottomSheet.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessagePaymentBottomSheet should match snapshot, no payments 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -589,6 +590,7 @@ exports[`MessagePaymentBottomSheet should match snapshot, six payments 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pn/components/__test__/__snapshots__/MessagePayments.test.tsx.snap b/ts/features/pn/components/__test__/__snapshots__/MessagePayments.test.tsx.snap index 8e26ce58091..63843ab5bb4 100644 --- a/ts/features/pn/components/__test__/__snapshots__/MessagePayments.test.tsx.snap +++ b/ts/features/pn/components/__test__/__snapshots__/MessagePayments.test.tsx.snap @@ -204,6 +204,7 @@ exports[`MessagePayments should match snapshot when cancelled with payments with "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -547,6 +548,7 @@ exports[`MessagePayments should match snapshot when cancelled, with payments, wi "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2777,6 +2779,7 @@ exports[`MessagePayments should match snapshot when cancelled, without payments, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5007,6 +5010,7 @@ exports[`MessagePayments should match snapshot when cancelled, without payments, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5350,6 +5354,7 @@ exports[`MessagePayments should match snapshot when not cancelled, with five (ma "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -7043,6 +7048,7 @@ exports[`MessagePayments should match snapshot when not cancelled, with five (ma "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -8736,6 +8742,7 @@ exports[`MessagePayments should match snapshot when not cancelled, with more-tha "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -10549,6 +10556,7 @@ exports[`MessagePayments should match snapshot when not cancelled, with more-tha "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -12362,6 +12370,7 @@ exports[`MessagePayments should match snapshot when not cancelled, with one paya "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -13059,6 +13068,7 @@ exports[`MessagePayments should match snapshot when not cancelled, with one paya "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -13756,6 +13766,7 @@ exports[`MessagePayments should match snapshot when not cancelled, without payme "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -14099,6 +14110,7 @@ exports[`MessagePayments should match snapshot when not cancelled, without payme "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pn/components/__test__/__snapshots__/Timeline.test.tsx.snap b/ts/features/pn/components/__test__/__snapshots__/Timeline.test.tsx.snap index ce3ee40cae9..9a111115696 100644 --- a/ts/features/pn/components/__test__/__snapshots__/Timeline.test.tsx.snap +++ b/ts/features/pn/components/__test__/__snapshots__/Timeline.test.tsx.snap @@ -204,6 +204,7 @@ exports[`Timeline component should match the snapshot, default data 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2652,6 +2653,7 @@ exports[`Timeline component should match the snapshot, empty data 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pn/components/__test__/__snapshots__/TimelineListItem.test.tsx.snap b/ts/features/pn/components/__test__/__snapshots__/TimelineListItem.test.tsx.snap index 18dba4ed7d9..babcaf2c7cd 100644 --- a/ts/features/pn/components/__test__/__snapshots__/TimelineListItem.test.tsx.snap +++ b/ts/features/pn/components/__test__/__snapshots__/TimelineListItem.test.tsx.snap @@ -204,6 +204,7 @@ exports[`TimelineListItem Should match snapshot, all handled-status items histor "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2510,6 +2511,7 @@ exports[`TimelineListItem Should match snapshot, all handled-status items histor "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4816,6 +4818,7 @@ exports[`TimelineListItem Should match snapshot, no history, no link 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5367,6 +5370,7 @@ exports[`TimelineListItem Should match snapshot, no history, with link 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pn/screens/__test__/__snapshots__/MessageDetailsScreen.test.tsx.snap b/ts/features/pn/screens/__test__/__snapshots__/MessageDetailsScreen.test.tsx.snap index ed01cc95cb0..8304b100d9a 100644 --- a/ts/features/pn/screens/__test__/__snapshots__/MessageDetailsScreen.test.tsx.snap +++ b/ts/features/pn/screens/__test__/__snapshots__/MessageDetailsScreen.test.tsx.snap @@ -63,6 +63,7 @@ exports[`MessageDetailsScreen should match the snapshot when everything went fin "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2740,6 +2741,7 @@ exports[`MessageDetailsScreen should match the snapshot when there is an error 1 "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pn/screens/__test__/__snapshots__/PaidPaymentScreen.test.tsx.snap b/ts/features/pn/screens/__test__/__snapshots__/PaidPaymentScreen.test.tsx.snap index 476f6ff73de..ab4182bf16e 100644 --- a/ts/features/pn/screens/__test__/__snapshots__/PaidPaymentScreen.test.tsx.snap +++ b/ts/features/pn/screens/__test__/__snapshots__/PaidPaymentScreen.test.tsx.snap @@ -63,6 +63,7 @@ exports[`PaidPaymentScreen should match snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pushNotifications/components/__tests__/__snapshots__/NotificationPreviewSample.test.tsx.snap b/ts/features/pushNotifications/components/__tests__/__snapshots__/NotificationPreviewSample.test.tsx.snap index 63b1f65deed..4d4da10aaf1 100644 --- a/ts/features/pushNotifications/components/__tests__/__snapshots__/NotificationPreviewSample.test.tsx.snap +++ b/ts/features/pushNotifications/components/__tests__/__snapshots__/NotificationPreviewSample.test.tsx.snap @@ -204,6 +204,7 @@ exports[`NotificationPreviewSample should match snapshot, preview off, reminder "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -744,6 +745,7 @@ exports[`NotificationPreviewSample should match snapshot, preview off, reminder "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1284,6 +1286,7 @@ exports[`NotificationPreviewSample should match snapshot, preview on, reminder o "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1824,6 +1827,7 @@ exports[`NotificationPreviewSample should match snapshot, preview on, reminder o "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pushNotifications/components/__tests__/__snapshots__/NotificationsPreferencesPreview.test.tsx.snap b/ts/features/pushNotifications/components/__tests__/__snapshots__/NotificationsPreferencesPreview.test.tsx.snap index b9d1e2ea7d5..ba35466fa16 100644 --- a/ts/features/pushNotifications/components/__tests__/__snapshots__/NotificationsPreferencesPreview.test.tsx.snap +++ b/ts/features/pushNotifications/components/__tests__/__snapshots__/NotificationsPreferencesPreview.test.tsx.snap @@ -204,6 +204,7 @@ exports[`NotificationsPreferencesPreview should match snapshot, preview off, rem "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -778,6 +779,7 @@ exports[`NotificationsPreferencesPreview should match snapshot, preview off, rem "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1352,6 +1354,7 @@ exports[`NotificationsPreferencesPreview should match snapshot, preview on, remi "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1926,6 +1929,7 @@ exports[`NotificationsPreferencesPreview should match snapshot, preview on, remi "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pushNotifications/components/__tests__/__snapshots__/ProfileNotificationsSettings.test.tsx.snap b/ts/features/pushNotifications/components/__tests__/__snapshots__/ProfileNotificationsSettings.test.tsx.snap index 379c9f95057..892d3334467 100644 --- a/ts/features/pushNotifications/components/__tests__/__snapshots__/ProfileNotificationsSettings.test.tsx.snap +++ b/ts/features/pushNotifications/components/__tests__/__snapshots__/ProfileNotificationsSettings.test.tsx.snap @@ -204,6 +204,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1202,6 +1203,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2356,6 +2358,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -3354,6 +3357,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4508,6 +4512,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5652,6 +5657,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -6952,6 +6958,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -8096,6 +8103,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -9396,6 +9404,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -10394,6 +10403,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -11548,6 +11558,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -12546,6 +12557,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -13700,6 +13712,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -14844,6 +14857,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -16144,6 +16158,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -17288,6 +17303,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -18588,6 +18604,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -19586,6 +19603,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -20740,6 +20758,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -21738,6 +21757,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -22892,6 +22912,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -24036,6 +24057,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -25336,6 +25358,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -26480,6 +26503,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -27780,6 +27804,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -28778,6 +28803,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -29932,6 +29958,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -30930,6 +30957,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -32084,6 +32112,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -33228,6 +33257,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -34528,6 +34558,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -35672,6 +35703,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -36972,6 +37004,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -38116,6 +38149,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -39416,6 +39450,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -40560,6 +40595,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -41860,6 +41896,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -43150,6 +43187,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -44596,6 +44634,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -45886,6 +45925,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -47332,6 +47372,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -48476,6 +48517,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -49776,6 +49818,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -50920,6 +50963,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -52220,6 +52264,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -53510,6 +53555,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -54956,6 +55002,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -56246,6 +56293,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -57692,6 +57740,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -58836,6 +58885,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -60136,6 +60186,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -61280,6 +61331,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -62580,6 +62632,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -63870,6 +63923,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -65316,6 +65370,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -66606,6 +66661,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -68052,6 +68108,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -69196,6 +69253,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -70496,6 +70554,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -71640,6 +71699,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -72940,6 +73000,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -74230,6 +74291,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -75676,6 +75738,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -76966,6 +77029,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview disabled, pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -78412,6 +78476,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -79410,6 +79475,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -80564,6 +80630,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -81562,6 +81629,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -82716,6 +82784,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -83860,6 +83929,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -85160,6 +85230,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -86304,6 +86375,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -87604,6 +87676,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -88602,6 +88675,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -89756,6 +89830,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -90754,6 +90829,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -91908,6 +91984,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -93052,6 +93129,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -94352,6 +94430,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -95496,6 +95575,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -96796,6 +96876,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -97794,6 +97875,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -98948,6 +99030,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -99946,6 +100029,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -101100,6 +101184,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -102244,6 +102329,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -103544,6 +103630,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -104688,6 +104775,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -105988,6 +106076,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -106986,6 +107075,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -108140,6 +108230,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -109138,6 +109229,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -110292,6 +110384,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -111436,6 +111529,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -112736,6 +112830,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -113880,6 +113975,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -115180,6 +115276,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -116324,6 +116421,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -117624,6 +117722,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -118768,6 +118867,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -120068,6 +120168,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -121358,6 +121459,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -122804,6 +122906,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -124094,6 +124197,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -125540,6 +125644,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -126684,6 +126789,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -127984,6 +128090,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -129128,6 +129235,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -130428,6 +130536,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -131718,6 +131827,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -133164,6 +133274,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -134454,6 +134565,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -135900,6 +136012,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -137044,6 +137157,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -138344,6 +138458,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -139488,6 +139603,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -140788,6 +140904,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -142078,6 +142195,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -143524,6 +143642,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -144814,6 +144933,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -146260,6 +146380,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -147404,6 +147525,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -148704,6 +148826,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -149848,6 +149971,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -151148,6 +151272,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -152438,6 +152563,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -153884,6 +154010,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -155174,6 +155301,7 @@ exports[`ProfileNotificationSettings should match snapshot, preview enabled , pr "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pushNotifications/screens/__tests__/__snapshots__/OnboardingNotificationsInfoScreenConsent.test.tsx.snap b/ts/features/pushNotifications/screens/__tests__/__snapshots__/OnboardingNotificationsInfoScreenConsent.test.tsx.snap index 749cc7c3820..d9d375b2cf4 100644 --- a/ts/features/pushNotifications/screens/__tests__/__snapshots__/OnboardingNotificationsInfoScreenConsent.test.tsx.snap +++ b/ts/features/pushNotifications/screens/__tests__/__snapshots__/OnboardingNotificationsInfoScreenConsent.test.tsx.snap @@ -204,6 +204,7 @@ exports[`OnboardingNotificationsInfoScreenConsent should match snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pushNotifications/screens/__tests__/__snapshots__/OnboardingNotificationsPreferencesScreen.test.tsx.snap b/ts/features/pushNotifications/screens/__tests__/__snapshots__/OnboardingNotificationsPreferencesScreen.test.tsx.snap index c104efca248..9e16dab4044 100644 --- a/ts/features/pushNotifications/screens/__tests__/__snapshots__/OnboardingNotificationsPreferencesScreen.test.tsx.snap +++ b/ts/features/pushNotifications/screens/__tests__/__snapshots__/OnboardingNotificationsPreferencesScreen.test.tsx.snap @@ -63,6 +63,7 @@ exports[`OnboardingNotificationsPreferencesScreen should match snapshot when not "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1524,6 +1525,7 @@ exports[`OnboardingNotificationsPreferencesScreen should match snapshot when not "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2986,6 +2988,7 @@ exports[`OnboardingNotificationsPreferencesScreen should match snapshot when not "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4448,6 +4451,7 @@ exports[`OnboardingNotificationsPreferencesScreen should match snapshot when not "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5910,6 +5914,7 @@ exports[`OnboardingNotificationsPreferencesScreen should match snapshot when upd "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/pushNotifications/screens/__tests__/__snapshots__/SystemNotificationPermissionsScreen.test.tsx.snap b/ts/features/pushNotifications/screens/__tests__/__snapshots__/SystemNotificationPermissionsScreen.test.tsx.snap index c480608ff32..f21dd7216db 100644 --- a/ts/features/pushNotifications/screens/__tests__/__snapshots__/SystemNotificationPermissionsScreen.test.tsx.snap +++ b/ts/features/pushNotifications/screens/__tests__/__snapshots__/SystemNotificationPermissionsScreen.test.tsx.snap @@ -204,6 +204,7 @@ exports[`SystemNotificationPermissionsScreen Should match snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/services/home/components/__tests__/__snapshots__/FeaturedInstitutionCard.test.tsx.snap b/ts/features/services/home/components/__tests__/__snapshots__/FeaturedInstitutionCard.test.tsx.snap index 40fbdb2ca88..332b3e9a6e5 100644 --- a/ts/features/services/home/components/__tests__/__snapshots__/FeaturedInstitutionCard.test.tsx.snap +++ b/ts/features/services/home/components/__tests__/__snapshots__/FeaturedInstitutionCard.test.tsx.snap @@ -204,6 +204,7 @@ exports[`FeaturedInstitutionCard should match the snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -726,6 +727,7 @@ exports[`FeaturedInstitutionCard should match the snapshot when isNew is true 1` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/services/home/components/__tests__/__snapshots__/FeaturedServiceCard.test.tsx.snap b/ts/features/services/home/components/__tests__/__snapshots__/FeaturedServiceCard.test.tsx.snap index f78fb75c92e..12fe7a35c4b 100644 --- a/ts/features/services/home/components/__tests__/__snapshots__/FeaturedServiceCard.test.tsx.snap +++ b/ts/features/services/home/components/__tests__/__snapshots__/FeaturedServiceCard.test.tsx.snap @@ -204,6 +204,7 @@ exports[`FeaturedServiceCard should match the snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -721,6 +722,7 @@ exports[`FeaturedServiceCard should match the snapshot when isNew is true 1`] = "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/trialSystem/store/reducers/index.ts b/ts/features/trialSystem/store/reducers/index.ts index 1372f4e330b..8b0fe110545 100644 --- a/ts/features/trialSystem/store/reducers/index.ts +++ b/ts/features/trialSystem/store/reducers/index.ts @@ -1,21 +1,20 @@ import * as pot from "@pagopa/ts-commons/lib/pot"; -import { getType } from "typesafe-actions"; import { pipe } from "fp-ts/lib/function"; import { createSelector } from "reselect"; -import { TrialId } from "../../../../../definitions/trial_system/TrialId"; +import { getType } from "typesafe-actions"; import { SubscriptionState, SubscriptionStateEnum } from "../../../../../definitions/trial_system/SubscriptionState"; +import { TrialId } from "../../../../../definitions/trial_system/TrialId"; import { Action } from "../../../../store/actions/types"; +import { GlobalState } from "../../../../store/reducers/types"; +import { TrialSystemError } from "../../utils/error"; import { trialSystemActivationStatus, trialSystemActivationStatusReset, trialSystemActivationStatusUpsert } from "../actions"; -import { GlobalState } from "../../../../store/reducers/types"; -import { itwTrialId } from "../../../../config"; -import { TrialSystemError } from "../../utils/error"; export type TrialSystemState = Record< TrialId, @@ -130,8 +129,3 @@ export const isTrialActiveSelector = (id: TrialId) => trialStatusSelector(id), status => status === SubscriptionStateEnum.ACTIVE ); - -/** - * Allows to know if the user has the acces to the IT Wallet features - */ -export const isItwTrialActiveSelector = isTrialActiveSelector(itwTrialId); diff --git a/ts/features/newWallet/components/WalletCardBaseComponent.tsx b/ts/features/wallet/components/WalletCardBaseComponent.tsx similarity index 100% rename from ts/features/newWallet/components/WalletCardBaseComponent.tsx rename to ts/features/wallet/components/WalletCardBaseComponent.tsx diff --git a/ts/features/newWallet/components/WalletCardPressableBase.tsx b/ts/features/wallet/components/WalletCardPressableBase.tsx similarity index 100% rename from ts/features/newWallet/components/WalletCardPressableBase.tsx rename to ts/features/wallet/components/WalletCardPressableBase.tsx diff --git a/ts/features/newWallet/components/WalletCardSkeleton.tsx b/ts/features/wallet/components/WalletCardSkeleton.tsx similarity index 100% rename from ts/features/newWallet/components/WalletCardSkeleton.tsx rename to ts/features/wallet/components/WalletCardSkeleton.tsx diff --git a/ts/features/newWallet/components/WalletCardsCategoryContainer.tsx b/ts/features/wallet/components/WalletCardsCategoryContainer.tsx similarity index 100% rename from ts/features/newWallet/components/WalletCardsCategoryContainer.tsx rename to ts/features/wallet/components/WalletCardsCategoryContainer.tsx diff --git a/ts/features/newWallet/components/WalletCardsCategoryRetryErrorBanner.tsx b/ts/features/wallet/components/WalletCardsCategoryRetryErrorBanner.tsx similarity index 100% rename from ts/features/newWallet/components/WalletCardsCategoryRetryErrorBanner.tsx rename to ts/features/wallet/components/WalletCardsCategoryRetryErrorBanner.tsx diff --git a/ts/features/newWallet/components/WalletCardsContainer.tsx b/ts/features/wallet/components/WalletCardsContainer.tsx similarity index 90% rename from ts/features/newWallet/components/WalletCardsContainer.tsx rename to ts/features/wallet/components/WalletCardsContainer.tsx index 8ff18fc5f2b..a4f2578c3d0 100644 --- a/ts/features/newWallet/components/WalletCardsContainer.tsx +++ b/ts/features/wallet/components/WalletCardsContainer.tsx @@ -20,11 +20,9 @@ import { } from "../../itwallet/common/components/ItwEidInfoBottomSheetContent"; import { ItwEidLifecycleAlert } from "../../itwallet/common/components/ItwEidLifecycleAlert"; import { ItwFeedbackBanner } from "../../itwallet/common/components/ItwFeedbackBanner"; -import { ItwUpcomingWalletBanner } from "../../itwallet/common/components/ItwUpcomingWalletBanner"; import { ItwWalletReadyBanner } from "../../itwallet/common/components/ItwWalletReadyBanner"; import { itwCredentialsEidStatusSelector } from "../../itwallet/credentials/store/selectors"; import { itwLifecycleIsValidSelector } from "../../itwallet/lifecycle/store/selectors"; -import { isItwTrialActiveSelector } from "../../trialSystem/store/reducers"; import { selectIsWalletCardsLoading, selectSortedWalletCards, @@ -67,7 +65,7 @@ const WalletCardsContainer = () => { // the wallet is not in a loading state anymore return ( - + ); @@ -82,7 +80,7 @@ const WalletCardsContainer = () => { layout={LinearTransition.duration(200)} > - + {shouldRender("itw") && } {shouldRender("other") && } @@ -93,7 +91,6 @@ const WalletCardsContainer = () => { const ItwCardsContainer = () => { const navigation = useIONavigation(); const cards = useIOSelector(selectWalletItwCards); - const isItwTrialEnabled = useIOSelector(isItwTrialActiveSelector); const isItwValid = useIOSelector(itwLifecycleIsValidSelector); const isItwEnabled = useIOSelector(isItwEnabledSelector); const eidStatus = useIOSelector(itwCredentialsEidStatusSelector); @@ -117,7 +114,7 @@ const ItwCardsContainer = () => { ) ); - if (!isItwTrialEnabled || !isItwEnabled) { + if (!isItwEnabled) { return null; } @@ -166,11 +163,10 @@ const ItwCardsContainer = () => { const OtherCardsContainer = () => { const cards = useIOSelector(selectWalletOtherCards); - const isItwTrialEnabled = useIOSelector(isItwTrialActiveSelector); const isItwEnabled = useIOSelector(isItwEnabledSelector); const isItwValid = useIOSelector(itwLifecycleIsValidSelector); - const displayHeader = isItwTrialEnabled && isItwEnabled && isItwValid; + const displayHeader = isItwEnabled && isItwValid; return ( { ); }; -/** - * Wrapper components for ITW banners. - */ -const ItwBanners = () => ( - <> - - - -); - export { WalletCardsContainer }; diff --git a/ts/features/newWallet/components/WalletCategoryFilterTabs.tsx b/ts/features/wallet/components/WalletCategoryFilterTabs.tsx similarity index 100% rename from ts/features/newWallet/components/WalletCategoryFilterTabs.tsx rename to ts/features/wallet/components/WalletCategoryFilterTabs.tsx diff --git a/ts/features/newWallet/components/WalletEmptyScreenContent.tsx b/ts/features/wallet/components/WalletEmptyScreenContent.tsx similarity index 100% rename from ts/features/newWallet/components/WalletEmptyScreenContent.tsx rename to ts/features/wallet/components/WalletEmptyScreenContent.tsx diff --git a/ts/features/newWallet/components/__tests__/WalletCardBaseComponent.test.tsx b/ts/features/wallet/components/__tests__/WalletCardBaseComponent.test.tsx similarity index 100% rename from ts/features/newWallet/components/__tests__/WalletCardBaseComponent.test.tsx rename to ts/features/wallet/components/__tests__/WalletCardBaseComponent.test.tsx diff --git a/ts/features/newWallet/components/__tests__/WalletCardsCategoryContainer.test.tsx b/ts/features/wallet/components/__tests__/WalletCardsCategoryContainer.test.tsx similarity index 100% rename from ts/features/newWallet/components/__tests__/WalletCardsCategoryContainer.test.tsx rename to ts/features/wallet/components/__tests__/WalletCardsCategoryContainer.test.tsx diff --git a/ts/features/newWallet/components/__tests__/WalletCardsContainer.test.tsx b/ts/features/wallet/components/__tests__/WalletCardsContainer.test.tsx similarity index 84% rename from ts/features/newWallet/components/__tests__/WalletCardsContainer.test.tsx rename to ts/features/wallet/components/__tests__/WalletCardsContainer.test.tsx index 5a2169e7637..9ecb08d55d9 100644 --- a/ts/features/newWallet/components/__tests__/WalletCardsContainer.test.tsx +++ b/ts/features/wallet/components/__tests__/WalletCardsContainer.test.tsx @@ -1,11 +1,9 @@ -import * as pot from "@pagopa/ts-commons/lib/pot"; import * as O from "fp-ts/lib/Option"; import _ from "lodash"; import * as React from "react"; import configureMockStore from "redux-mock-store"; import { ToolEnum } from "../../../../../definitions/content/AssistanceToolConfig"; import { Config } from "../../../../../definitions/content/Config"; -import { SubscriptionStateEnum } from "../../../../../definitions/trial_system/SubscriptionState"; import ROUTES from "../../../../navigation/routes"; import { applicationChangeState } from "../../../../store/actions/application"; import { appReducer } from "../../../../store/reducers"; @@ -18,12 +16,10 @@ import { WalletCardsState } from "../../store/reducers/cards"; import { WalletPlaceholdersState } from "../../store/reducers/placeholders"; import { WalletCard } from "../../types"; import { WalletCardsContainer } from "../WalletCardsContainer"; -import { itwTrialId } from "../../../../config"; type RenderOptions = { cards?: WalletCardsState; isLoading?: WalletPlaceholdersState["isLoading"]; - isItwTrial?: boolean; isItwEnabled?: boolean; isItwValid?: boolean; isWalletEmpty?: boolean; @@ -143,29 +139,21 @@ describe("WalletCardsContainer", () => { expect(queryByTestId(`walletCardTestID_itw_placeholder_4`)).not.toBeNull(); }); - test.each([ - { isItwEnabled: false }, - { isItwTrial: false } - ] as ReadonlyArray)( - "should not render ITW section if %p", - options => { - const { queryByTestId } = renderComponent({ - ...options, - cards: T_CARDS - }); + it("should not render ITW section if ITW is disabled", () => { + const { queryByTestId } = renderComponent({ + isItwEnabled: false, + cards: T_CARDS + }); - expect(queryByTestId("walletCardSkeletonTestID")).toBeNull(); - expect(queryByTestId(`walletCardsCategoryTestID_itw`)).toBeNull(); - expect(queryByTestId(`walletCardsCategoryTestID_other`)).not.toBeNull(); + expect(queryByTestId("walletCardSkeletonTestID")).toBeNull(); + expect(queryByTestId(`walletCardsCategoryTestID_itw`)).toBeNull(); + expect(queryByTestId(`walletCardsCategoryTestID_other`)).not.toBeNull(); - expect( - queryByTestId(`walletCardTestID_payment_payment_1`) - ).not.toBeNull(); - expect(queryByTestId(`walletCardTestID_bonus_idPay_2`)).not.toBeNull(); - expect(queryByTestId(`walletCardTestID_cgn_cgn_3`)).not.toBeNull(); - expect(queryByTestId(`walletCardTestID_itw_itw_4`)).toBeNull(); - } - ); + expect(queryByTestId(`walletCardTestID_payment_payment_1`)).not.toBeNull(); + expect(queryByTestId(`walletCardTestID_bonus_idPay_2`)).not.toBeNull(); + expect(queryByTestId(`walletCardTestID_cgn_cgn_3`)).not.toBeNull(); + expect(queryByTestId(`walletCardTestID_itw_itw_4`)).toBeNull(); + }); it("should render the wallet ready banner when the wallet instance is valid and the wallet is empty", () => { const { queryByTestId } = renderComponent({ @@ -193,7 +181,6 @@ describe("WalletCardsContainer", () => { const renderComponent = ({ cards = {}, isItwEnabled = true, - isItwTrial = true, isItwValid = true, isLoading = false, isWalletEmpty = true @@ -203,11 +190,6 @@ const renderComponent = ({ const mockStore = configureMockStore(); const store: ReturnType = mockStore( _.merge(undefined, globalState, { - trialSystem: isItwTrial - ? { - [itwTrialId]: pot.some(SubscriptionStateEnum.ACTIVE) - } - : {}, features: { wallet: { cards, diff --git a/ts/features/newWallet/components/__tests__/WalletCategoryFilterTabs.test.tsx b/ts/features/wallet/components/__tests__/WalletCategoryFilterTabs.test.tsx similarity index 100% rename from ts/features/newWallet/components/__tests__/WalletCategoryFilterTabs.test.tsx rename to ts/features/wallet/components/__tests__/WalletCategoryFilterTabs.test.tsx diff --git a/ts/features/newWallet/components/__tests__/WalletEmptyScreenContent.test.tsx b/ts/features/wallet/components/__tests__/WalletEmptyScreenContent.test.tsx similarity index 100% rename from ts/features/newWallet/components/__tests__/WalletEmptyScreenContent.test.tsx rename to ts/features/wallet/components/__tests__/WalletEmptyScreenContent.test.tsx diff --git a/ts/features/newWallet/components/__tests__/__snapshots__/WalletEmptyScreenContent.test.tsx.snap b/ts/features/wallet/components/__tests__/__snapshots__/WalletEmptyScreenContent.test.tsx.snap similarity index 99% rename from ts/features/newWallet/components/__tests__/__snapshots__/WalletEmptyScreenContent.test.tsx.snap rename to ts/features/wallet/components/__tests__/__snapshots__/WalletEmptyScreenContent.test.tsx.snap index 5ef74ad306b..775c7f07271 100644 --- a/ts/features/newWallet/components/__tests__/__snapshots__/WalletEmptyScreenContent.test.tsx.snap +++ b/ts/features/wallet/components/__tests__/__snapshots__/WalletEmptyScreenContent.test.tsx.snap @@ -204,6 +204,7 @@ exports[`WalletEmptyScreenContent should match the snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/features/newWallet/saga/__tests__/handleWalletLoadingPlaceholdersTimeout.test.ts b/ts/features/wallet/saga/__tests__/handleWalletLoadingPlaceholdersTimeout.test.ts similarity index 100% rename from ts/features/newWallet/saga/__tests__/handleWalletLoadingPlaceholdersTimeout.test.ts rename to ts/features/wallet/saga/__tests__/handleWalletLoadingPlaceholdersTimeout.test.ts diff --git a/ts/features/newWallet/saga/__tests__/handleWalletLoadingStateSaga.test.ts b/ts/features/wallet/saga/__tests__/handleWalletLoadingStateSaga.test.ts similarity index 100% rename from ts/features/newWallet/saga/__tests__/handleWalletLoadingStateSaga.test.ts rename to ts/features/wallet/saga/__tests__/handleWalletLoadingStateSaga.test.ts diff --git a/ts/features/newWallet/saga/handleWalletLoadingPlaceholdersTimeout.ts b/ts/features/wallet/saga/handleWalletLoadingPlaceholdersTimeout.ts similarity index 100% rename from ts/features/newWallet/saga/handleWalletLoadingPlaceholdersTimeout.ts rename to ts/features/wallet/saga/handleWalletLoadingPlaceholdersTimeout.ts diff --git a/ts/features/newWallet/saga/handleWalletLoadingStateSaga.ts b/ts/features/wallet/saga/handleWalletLoadingStateSaga.ts similarity index 100% rename from ts/features/newWallet/saga/handleWalletLoadingStateSaga.ts rename to ts/features/wallet/saga/handleWalletLoadingStateSaga.ts diff --git a/ts/features/newWallet/saga/index.ts b/ts/features/wallet/saga/index.ts similarity index 100% rename from ts/features/newWallet/saga/index.ts rename to ts/features/wallet/saga/index.ts diff --git a/ts/features/newWallet/screens/WalletHomeScreen.tsx b/ts/features/wallet/screens/WalletHomeScreen.tsx similarity index 86% rename from ts/features/newWallet/screens/WalletHomeScreen.tsx rename to ts/features/wallet/screens/WalletHomeScreen.tsx index d0a37967967..c19d144060b 100644 --- a/ts/features/newWallet/screens/WalletHomeScreen.tsx +++ b/ts/features/wallet/screens/WalletHomeScreen.tsx @@ -1,8 +1,9 @@ import { IOStyles, IOToast } from "@pagopa/io-app-design-system"; import { useFocusEffect } from "@react-navigation/native"; import React from "react"; -import { ScrollView } from "react-native"; +import Animated, { useAnimatedRef } from "react-native-reanimated"; import { IOScrollView } from "../../../components/ui/IOScrollView"; +import { useTabItemPressWhenScreenActive } from "../../../hooks/useTabItemPressWhenScreenActive"; import I18n from "../../../i18n"; import { IOStackNavigationRouteProps, @@ -10,19 +11,19 @@ import { } from "../../../navigation/params/AppParamsList"; import { MainTabParamsList } from "../../../navigation/params/MainTabParamsList"; import { useIODispatch, useIOSelector } from "../../../store/hooks"; +import { useOnFirstRender } from "../../../utils/hooks/useOnFirstRender"; import { cgnDetails } from "../../bonus/cgn/store/actions/details"; import { idPayWalletGet } from "../../idpay/wallet/store/actions"; +import { + trackOpenWalletScreen, + trackWalletAdd +} from "../../itwallet/analytics"; import { ITW_ROUTES } from "../../itwallet/navigation/routes"; import { getPaymentsWalletUserMethods } from "../../payments/wallet/store/actions"; import { WalletCardsContainer } from "../components/WalletCardsContainer"; import { WalletCategoryFilterTabs } from "../components/WalletCategoryFilterTabs"; import { walletToggleLoadingState } from "../store/actions/placeholders"; import { selectWalletCards } from "../store/selectors"; -import { - trackOpenWalletScreen, - trackWalletAdd -} from "../../itwallet/analytics"; -import { useOnFirstRender } from "../../../utils/hooks/useOnFirstRender"; export type WalletHomeNavigationParams = Readonly<{ newMethodAdded: boolean; @@ -70,6 +71,7 @@ const WalletHomeScreen = ({ route }: Props) => { }; const WalletScrollView = ({ children }: React.PropsWithChildren) => { + const animatedScrollViewRef = useAnimatedRef(); const navigation = useIONavigation(); const cards = useIOSelector(selectWalletCards); @@ -80,21 +82,30 @@ const WalletScrollView = ({ children }: React.PropsWithChildren) => { }); }; + useTabItemPressWhenScreenActive( + React.useCallback(() => { + animatedScrollViewRef.current?.scrollTo({ y: 0, animated: true }); + }, [animatedScrollViewRef]), + false + ); + if (cards.length === 0) { return ( - {children} - + ); } return ( = { [LevelEnum.normal]: "info", @@ -11,6 +16,16 @@ const statusVariantMap: Record = { [LevelEnum.warning]: "warning" }; +type AlertActionProps = + | { + action?: string; + onPress: (event: GestureResponderEvent) => void; + } + | { + action?: never; + onPress?: never; + }; + export const useStatusAlertProps = ( routeName?: string ): AlertEdgeToEdgeProps | undefined => { @@ -25,9 +40,23 @@ export const useStatusAlertProps = ( } // If there is at least one status-message to display, extract its content and variant (using memoization to avoid re-renderings, since we are creating a new instance) const firstAlert = currentStatusMessage[0]; + + const statusAction: AlertActionProps = pipe( + firstAlert.web_url, + O.fromNullable, + O.fold( + () => ({}), + url => ({ + action: I18n.t("global.sectionStatus.moreInfo"), + onPress: () => openWebUrl(url[locale]) + }) + ) + ); + return { content: firstAlert.message[locale], - variant: statusVariantMap[firstAlert.level] + variant: statusVariantMap[firstAlert.level], + ...statusAction }; }, [currentStatusMessage, locale]); }; diff --git a/ts/mixpanelConfig/mixpanelPropertyUtils.ts b/ts/mixpanelConfig/mixpanelPropertyUtils.ts index 476a733bb47..1d0617f2898 100644 --- a/ts/mixpanelConfig/mixpanelPropertyUtils.ts +++ b/ts/mixpanelConfig/mixpanelPropertyUtils.ts @@ -7,8 +7,8 @@ import { fastLoginOptInSelector } from "../features/fastLogin/store/selectors"; import { selectBonusCards, selectWalletCgnCard -} from "../features/newWallet/store/selectors"; -import { WalletCardBonus } from "../features/newWallet/types"; +} from "../features/wallet/store/selectors"; +import { WalletCardBonus } from "../features/wallet/types"; import { paymentsWalletUserMethodsSelector } from "../features/payments/wallet/store/selectors"; import { NotificationPreferenceConfiguration, diff --git a/ts/navigation/TabNavigator.tsx b/ts/navigation/TabNavigator.tsx index d6062d60b91..253c6c5fadd 100644 --- a/ts/navigation/TabNavigator.tsx +++ b/ts/navigation/TabNavigator.tsx @@ -6,7 +6,7 @@ import { makeFontStyleObject } from "../components/core/fonts"; import { TabIconComponent } from "../components/ui/TabIconComponent"; import { MESSAGES_ROUTES } from "../features/messages/navigation/routes"; import { MessagesHomeScreen } from "../features/messages/screens/MessagesHomeScreen"; -import { WalletHomeScreen as NewWalletHomeScreen } from "../features/newWallet/screens/WalletHomeScreen"; +import { WalletHomeScreen } from "../features/wallet/screens/WalletHomeScreen"; import { PaymentsHomeScreen } from "../features/payments/home/screens/PaymentsHomeScreen"; import { SERVICES_ROUTES } from "../features/services/common/navigation/routes"; import { ServicesHomeScreen } from "../features/services/home/screens/ServicesHomeScreen"; @@ -91,7 +91,7 @@ export const MainTabNavigator = () => { /> ( diff --git a/ts/navigation/params/MainTabParamsList.ts b/ts/navigation/params/MainTabParamsList.ts index f78c1568f80..8e99cf79fb4 100644 --- a/ts/navigation/params/MainTabParamsList.ts +++ b/ts/navigation/params/MainTabParamsList.ts @@ -1,7 +1,7 @@ import ROUTES from "../routes"; import { MESSAGES_ROUTES } from "../../features/messages/navigation/routes"; import { SERVICES_ROUTES } from "../../features/services/common/navigation/routes"; -import { WalletHomeNavigationParams } from "../../features/newWallet/screens/WalletHomeScreen"; +import { WalletHomeNavigationParams } from "../../features/wallet/screens/WalletHomeScreen"; export type MainTabParamsList = { [MESSAGES_ROUTES.MESSAGES_HOME]: undefined; diff --git a/ts/sagas/startup.ts b/ts/sagas/startup.ts index 9eec137ee96..02a7962c6fb 100644 --- a/ts/sagas/startup.ts +++ b/ts/sagas/startup.ts @@ -101,7 +101,7 @@ import { watchFimsSaga } from "../features/fims/common/saga"; import { deletePin, getPin } from "../utils/keychain"; import { watchEmailValidationSaga } from "../store/sagas/emailValidationPollingSaga"; import { handleIsKeyStrongboxBacked } from "../features/lollipop/utils/crypto"; -import { watchWalletSaga as watchNewWalletSaga } from "../features/newWallet/saga"; +import { watchWalletSaga } from "../features/wallet/saga"; import { watchServicesSaga } from "../features/services/common/saga"; import { watchItwSaga } from "../features/itwallet/common/saga"; import { watchTrialSystemSaga } from "../features/trialSystem/store/sagas/watchTrialSystemSaga"; @@ -561,7 +561,7 @@ export function* initializeApplicationSaga( // // Start wathing new wallet sagas - yield* fork(watchNewWalletSaga); + yield* fork(watchWalletSaga); // Here we can be sure that the session information is loaded and valid const bpdToken = maybeSessionInformation.value.bpdToken as string; diff --git a/ts/screens/authentication/__tests__/__snapshots__/LandingScreen.test.tsx.snap b/ts/screens/authentication/__tests__/__snapshots__/LandingScreen.test.tsx.snap index ec6d6fbb13a..7cb822c0182 100644 --- a/ts/screens/authentication/__tests__/__snapshots__/LandingScreen.test.tsx.snap +++ b/ts/screens/authentication/__tests__/__snapshots__/LandingScreen.test.tsx.snap @@ -63,6 +63,7 @@ exports[`LandingScreen with CieID FF enabled Should match the snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2914,6 +2915,7 @@ exports[`LandingScreen with both local and remote CieID FF disabled Should match "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/screens/authentication/__tests__/cie/__snapshots__/ActivateNfcScreen.test.tsx.snap b/ts/screens/authentication/__tests__/cie/__snapshots__/ActivateNfcScreen.test.tsx.snap index 20a7b78e291..1799c1c5e9f 100644 --- a/ts/screens/authentication/__tests__/cie/__snapshots__/ActivateNfcScreen.test.tsx.snap +++ b/ts/screens/authentication/__tests__/cie/__snapshots__/ActivateNfcScreen.test.tsx.snap @@ -204,6 +204,7 @@ exports[`ActivateNfcScreen UI Rendering renders the screen with header, title, s "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/screens/authentication/analytics/index.ts b/ts/screens/authentication/analytics/index.ts index 5bc22d9b5b9..87970c5f103 100644 --- a/ts/screens/authentication/analytics/index.ts +++ b/ts/screens/authentication/analytics/index.ts @@ -23,26 +23,26 @@ export async function trackCieLoginSelected() { mixpanelTrack("LOGIN_CIE_SELECTED", buildEventProperties("UX", "action")); } export async function trackCiePinLoginSelected(state: GlobalState) { + mixpanelTrack("LOGIN_CIE_PIN_SELECTED", buildEventProperties("UX", "action")); await updateMixpanelProfileProperties(state, { property: "LOGIN_METHOD", value: IdpCIE.id }); - mixpanelTrack("LOGIN_CIE_PIN_SELECTED", buildEventProperties("UX", "action")); } export async function trackCieIDLoginSelected( state: GlobalState, spidLevel: SpidLevel ) { - await updateMixpanelProfileProperties(state, { - property: "LOGIN_METHOD", - value: IdpCIE_ID.id - }); mixpanelTrack( "LOGIN_CIEID_SELECTED", buildEventProperties("UX", "action", { security_level: SECURITY_LEVEL_MAP[spidLevel] }) ); + await updateMixpanelProfileProperties(state, { + property: "LOGIN_METHOD", + value: IdpCIE_ID.id + }); } export async function trackCieBottomSheetScreenView() { mixpanelTrack( diff --git a/ts/screens/profile/DeveloperModeSection.tsx b/ts/screens/profile/DeveloperModeSection.tsx index e77452c4674..264f606d550 100644 --- a/ts/screens/profile/DeveloperModeSection.tsx +++ b/ts/screens/profile/DeveloperModeSection.tsx @@ -54,6 +54,7 @@ import { isDevEnv } from "../../utils/environment"; import { ITW_ROUTES } from "../../features/itwallet/navigation/routes"; import { isCieIDLocalFeatureEnabledSelector } from "../../features/cieLogin/store/selectors"; import { cieIDFeatureSetEnabled } from "../../features/cieLogin/store/actions"; +import { requestAppReview } from "../../utils/storeReview"; import DSEnableSwitch from "./components/DSEnableSwitch"; type PlaygroundsNavListItem = { @@ -158,6 +159,12 @@ const DeveloperActionsSection = () => { color: "primary", label: I18n.t("profile.main.sentryTestEvent"), onPress: sendSentryTestEvent + }, + { + condition: true, + color: "primary", + label: I18n.t("profile.main.storeReview"), + onPress: requestAppReview } ]; diff --git a/ts/screens/profile/__test__/__snapshots__/LanguagesPreferencesScreen.test.tsx.snap b/ts/screens/profile/__test__/__snapshots__/LanguagesPreferencesScreen.test.tsx.snap index 7e419bdb308..153611c92db 100644 --- a/ts/screens/profile/__test__/__snapshots__/LanguagesPreferencesScreen.test.tsx.snap +++ b/ts/screens/profile/__test__/__snapshots__/LanguagesPreferencesScreen.test.tsx.snap @@ -63,6 +63,7 @@ exports[`LanguagesPreferencesScreen UI Rendering renders the screen with, title, "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/screens/profile/__test__/__snapshots__/NotificationsPreferencesScreen.test.tsx.snap b/ts/screens/profile/__test__/__snapshots__/NotificationsPreferencesScreen.test.tsx.snap index dd6ca6cbd85..05c774c810b 100644 --- a/ts/screens/profile/__test__/__snapshots__/NotificationsPreferencesScreen.test.tsx.snap +++ b/ts/screens/profile/__test__/__snapshots__/NotificationsPreferencesScreen.test.tsx.snap @@ -63,6 +63,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, disabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -1397,6 +1398,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, disabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -2731,6 +2733,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, disabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -4065,6 +4068,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, disabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -5399,6 +5403,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, disabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -6733,6 +6738,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, disabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -8067,6 +8073,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, enabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -9401,6 +9408,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, enabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -10735,6 +10743,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, enabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -12069,6 +12078,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, enabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -13403,6 +13413,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, enabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -14737,6 +14748,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, enabled preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -16071,6 +16083,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, undefined preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -17405,6 +17418,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, undefined preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -18739,6 +18753,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, undefined preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -20073,6 +20088,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, undefined preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -21407,6 +21423,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, undefined preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > @@ -22741,6 +22758,7 @@ exports[`NotificationsPreferencesScreen should match snapshot, undefined preview "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/screens/profile/__test__/__snapshots__/SecurityScreen.test.tsx.snap b/ts/screens/profile/__test__/__snapshots__/SecurityScreen.test.tsx.snap index 38143b4a87c..f6210b1cdff 100644 --- a/ts/screens/profile/__test__/__snapshots__/SecurityScreen.test.tsx.snap +++ b/ts/screens/profile/__test__/__snapshots__/SecurityScreen.test.tsx.snap @@ -204,6 +204,7 @@ exports[`Test SecurityScreen should match snapshot when 'fimsIsHistoryEnabledSel "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/screens/profile/components/__test__/__snapshots__/SettingsDiscoveryBanner.test.tsx.snap b/ts/screens/profile/components/__test__/__snapshots__/SettingsDiscoveryBanner.test.tsx.snap index b93b502d6bf..18f28ac2fa1 100644 --- a/ts/screens/profile/components/__test__/__snapshots__/SettingsDiscoveryBanner.test.tsx.snap +++ b/ts/screens/profile/components/__test__/__snapshots__/SettingsDiscoveryBanner.test.tsx.snap @@ -204,6 +204,7 @@ exports[`settingsDiscoveryBanner should match snapshot 1`] = ` "position": "absolute", "right": 0, "top": 0, + "zIndex": undefined, } } > diff --git a/ts/store/actions/types.ts b/ts/store/actions/types.ts index 39274c8f6c5..83ff7012be7 100644 --- a/ts/store/actions/types.ts +++ b/ts/store/actions/types.ts @@ -14,7 +14,7 @@ import { FciActions } from "../../features/fci/store/actions"; import { IdPayActions } from "../../features/idpay/common/store/actions"; import { LollipopActions } from "../../features/lollipop/store/actions/lollipop"; import { MessagesActions } from "../../features/messages/store/actions"; -import { WalletActions as NewWalletActions } from "../../features/newWallet/store/actions"; +import { WalletActions } from "../../features/wallet/store/actions"; import { PaymentsActions as PaymentsFeatureActions } from "../../features/payments/common/store/actions"; import { PnActions } from "../../features/pn/store/actions"; import { ServicesActions } from "../../features/services/common/store/actions"; @@ -97,7 +97,7 @@ export type Action = | FastLoginActions | WhatsNewActions | PaymentsFeatureActions - | NewWalletActions + | WalletActions | CieLoginConfigActions | FimsActions | ItwActions diff --git a/ts/utils/storeReview.ts b/ts/utils/storeReview.ts new file mode 100644 index 00000000000..1a815d5e350 --- /dev/null +++ b/ts/utils/storeReview.ts @@ -0,0 +1,3 @@ +import * as StoreReview from "react-native-store-review"; + +export const requestAppReview = () => StoreReview.requestReview(); diff --git a/yarn.lock b/yarn.lock index 967f304dfb7..07e3d3f26ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2681,6 +2681,11 @@ resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.3.21.tgz#debac6becc6b6692da09ec30e705e476a780dfe1" integrity sha512-eyS2C6McNR8ihUoYfc166O1D8VYVh9KIl0UQPI8/ZJVsStlfSTgeEEh+WXge6+7SFPnZ4ewzEJdSAHH+jzcEfg== +"@react-navigation/elements@^1.3.31": + version "1.3.31" + resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.3.31.tgz#28dd802a0787bb03fc0e5be296daf1804dbebbcf" + integrity sha512-bUzP4Awlljx5RKEExw8WYtif8EuQni2glDaieYROKTnaxsu9kEIA515sXQgUDZU4Ob12VoL7+z70uO3qrlfXcQ== + "@react-navigation/material-top-tabs@6.6.5": version "6.6.5" resolved "https://registry.yarnpkg.com/@react-navigation/material-top-tabs/-/material-top-tabs-6.6.5.tgz#5cfc33e0d02f2dcd1a0654284704f4eef1d16697" @@ -2689,6 +2694,14 @@ color "^4.2.3" warn-once "^0.1.0" +"@react-navigation/native-stack@^6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-6.11.0.tgz#a33f92cbd55dfe28fb0ba67df99aaa95240eb87c" + integrity sha512-U5EcUB9Q2NQspCFwYGGNJm0h6wBCOv7T30QjndmvlawLkNt7S7KWbpWyxS9XBHSIKF57RgWjfxuJNTgTstpXxw== + dependencies: + "@react-navigation/elements" "^1.3.31" + warn-once "^0.1.0" + "@react-navigation/native@6.1.9": version "6.1.9" resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-6.1.9.tgz#8ef87095cd9c2ed094308c726157c7f6fc28796e" @@ -13791,10 +13804,10 @@ react-native-screen-brightness@^2.0.0-alpha: resolved "https://registry.yarnpkg.com/react-native-screen-brightness/-/react-native-screen-brightness-2.0.0-alpha.tgz#2fc30cf711cfafa5e0aec685f0fce51ce65e0052" integrity sha512-NdJPptcWiFwG9aypm0awYv9d/aoZSJetXPFkx6w/UuNX9SRr5YTKXMSND/2lwuSOw6uGU9mQ0f4dBuGZSNgzow== -react-native-screens@^3.31.1: - version "3.31.1" - resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.31.1.tgz#909a890f669e32b0fb1b1410278b71ad2f8238f6" - integrity sha512-8fRW362pfZ9y4rS8KY5P3DFScrmwo/vu1RrRMMx0PNHbeC9TLq0Kw1ubD83591yz64gLNHFLTVkTJmWeWCXKtQ== +react-native-screens@^3.35.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.35.0.tgz#4acf4c7d331d47d33d0214d415779540b7664e0e" + integrity sha512-rmkqb/M/SQIrXwygk6pXcOhgHltYAhidf1WceO7ujAxkr6XtwmgFyd1HIztsrJa568GrAuwPdQ11I7TpVk+XsA== dependencies: react-freeze "^1.0.0" warn-once "^0.1.0" @@ -13809,6 +13822,11 @@ react-native-splash-screen@^3.2.0: resolved "https://registry.yarnpkg.com/react-native-splash-screen/-/react-native-splash-screen-3.2.0.tgz#d47ec8557b1ba988ee3ea98d01463081b60fff45" integrity sha512-Ls9qiNZzW/OLFoI25wfjjAcrf2DZ975hn2vr6U9gyuxi2nooVbzQeFoQS5vQcbCt9QX5NY8ASEEAtlLdIa6KVg== +react-native-store-review@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/react-native-store-review/-/react-native-store-review-0.4.3.tgz#a524374b1a897b1de1b05d6257640296f1693e3c" + integrity sha512-RSQ6vx2j4p41GwTqNv2VV7yold62j5qDbGEBAjFi6gkXMrMpxFMg+82FPjbh6012tqv6Ebzwfqw6S4m4d7sddw== + react-native-svg-transformer@^0.14.3: version "0.14.3" resolved "https://registry.yarnpkg.com/react-native-svg-transformer/-/react-native-svg-transformer-0.14.3.tgz#43c8e176f5a11f16f39b87a64018e0ac090ffbdb"