Skip to content

feat(IT-Wallet): [SIW-4382] Saved approvals management section update#8337

Open
riccardosacco99 wants to merge 11 commits into
masterfrom
SIW-4382-approvals-section-nfc
Open

feat(IT-Wallet): [SIW-4382] Saved approvals management section update#8337
riccardosacco99 wants to merge 11 commits into
masterfrom
SIW-4382-approvals-section-nfc

Conversation

@riccardosacco99

Copy link
Copy Markdown
Collaborator

Short description

Adds management of consents saved during NFC proximity presentations. Users can review and revoke consents associated with a credential directly from its details screen.

List of changes proposed in this pull request

  • Add the Manage consents action to credential details when at least one consent has been saved.
  • Add saved-consent list, detail and empty-state screens.
  • Display the relying party, save date, involved credentials and shared claims.
  • Add consent revocation with confirmation alert and success toast.
  • Keep consent management available after revoking all consents.
  • Persist the relying-party display name and consent creation date.
  • Add migration support for previously saved consents.
  • Clear consent data when the related credential is removed or replaced.
  • Add typed navigation and standard headers with back navigation.
  • Add Mixpanel analytics events for the complete management flow.
  • Add Italian and English translations.
  • Add tests for UI components, navigation behavior, store, migrations, selectors and analytics.

How to test

Manual testing

  1. Open a credential that supports NFC proximity presentation.
  2. Complete an NFC presentation and choose to save the consent.
  3. Return to the credential details screen.
  4. Verify that the Manage consents action is visible.
  5. Open consent management and verify:
    • the standard header and back button are visible;
    • the relying party and save date are correct;
    • each saved consent is displayed separately.
  6. Open a consent and verify that all involved credentials and claims are shown.
  7. Select Revoke consent.
  8. Verify that the confirmation alert is displayed.
  9. Confirm the revocation and verify that:
    • the success toast is shown;
    • the consent is removed from the list.
  10. Revoke all consents and verify that the empty state is displayed.
  11. Return to credential details and verify that Manage consents remains available.
scrcpy_2026-07-20.mp4

@github-actions

Copy link
Copy Markdown
Contributor

PR Title Validation for conventional commit type

All good! PR title follows the conventional commit type.

@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Jira Pull Request Link

This Pull Request refers to Jira issues:

Comment thread apps/main-app/ts/features/itwallet/presentation/proximity/store/reducers/index.ts Outdated
Comment thread apps/main-app/ts/features/itwallet/presentation/proximity/store/actions/index.ts Outdated
@mastro993

Copy link
Copy Markdown
Contributor

Could we avoid introducing another nested sub-feature for consent management? We’re already three levels deep 😁

I think it would be reasonable to keep these two or three screens outside a dedicated feature.
We can think about refactoring them later.

…ers and migration logic

- Removed `consentManagementCredentialTypes` from state and related logic in actions, reducers, and tests.
- Updated selectors to reflect the removal of consent management markers.
- Refactored consent management components to handle the absence of consent markers.
- Added new components for displaying consent claims and empty states.
- Implemented detailed consent management screen with revoke functionality.
- Updated tests to cover new behavior and ensure proper functionality without consent markers.
@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.90909% with 12 lines in your changes missing coverage. Please review.
✅ Project coverage is 63.22%. Comparing base (70a2285) to head (4b30cee).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
...presentation/proximity/store/selectors/consents.ts 80.00% 3 Missing and 1 partial ⚠️
...imity/screens/ItwConsentManagementDetailScreen.tsx 91.42% 2 Missing and 1 partial ⚠️
...entation/proximity/components/ItwConsentClaims.tsx 87.50% 1 Missing and 1 partial ⚠️
...ximity/components/ItwConsentManagementListItem.tsx 81.81% 0 Missing and 2 partials ⚠️
...n/proximity/screens/ItwConsentManagementScreen.tsx 94.73% 0 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #8337      +/-   ##
==========================================
+ Coverage   63.12%   63.22%   +0.09%     
==========================================
  Files        1959     1964       +5     
  Lines       37127    37291     +164     
  Branches     6238     6273      +35     
==========================================
+ Hits        23438    23576     +138     
- Misses      12320    12339      +19     
- Partials     1369     1376       +7     
Files with missing lines Coverage Δ
...features/itwallet/navigation/ItwStackNavigator.tsx 29.41% <ø> (ø)
...main-app/ts/features/itwallet/navigation/routes.ts 100.00% <ø> (ø)
...etails/components/ItwPresentationDetailsFooter.tsx 93.75% <100.00%> (+1.75%) ⬆️
...itwallet/presentation/proximity/analytics/index.ts 72.58% <100.00%> (+6.58%) ⬆️
...mity/components/ItwConsentManagementEmptyState.tsx 100.00% <100.00%> (ø)
...let/presentation/proximity/store/reducers/index.ts 100.00% <100.00%> (ø)
...res/itwallet/presentation/proximity/store/utils.ts 100.00% <100.00%> (ø)
...allet/presentation/proximity/utils/presentation.ts 72.54% <100.00%> (+1.71%) ⬆️
...n/proximity/screens/ItwConsentManagementScreen.tsx 94.73% <94.73%> (ø)
...entation/proximity/components/ItwConsentClaims.tsx 87.50% <87.50%> (ø)
... and 3 more

... and 18 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 70a2285...4b30cee. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants