diff --git a/lib/dashboard/home/tab_bar/credentials/widgets/credential_widget/email_pass_widget.dart b/lib/dashboard/home/tab_bar/credentials/widgets/credential_widget/email_pass_widget.dart index d786a014d..c3b5cc19a 100644 --- a/lib/dashboard/home/tab_bar/credentials/widgets/credential_widget/email_pass_widget.dart +++ b/lib/dashboard/home/tab_bar/credentials/widgets/credential_widget/email_pass_widget.dart @@ -1,6 +1,10 @@ import 'package:altme/app/app.dart'; import 'package:altme/dashboard/dashboard.dart'; +import 'package:altme/lang/lang.dart'; +import 'package:altme/selective_disclosure/selective_disclosure.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:oidc4vc/oidc4vc.dart'; class EmailPassWidget extends StatelessWidget { const EmailPassWidget({super.key, required this.credentialModel}); @@ -11,11 +15,38 @@ class EmailPassWidget extends StatelessWidget { Widget build(BuildContext context) { final emailPassModel = credentialModel .credentialPreview.credentialSubjectModel as EmailPassModel; + + var emailAddress = emailPassModel.email; + + if (credentialModel.getFormat == VCFormatType.vcSdJWT.vcValue && + (emailAddress == null || emailAddress.isEmpty)) { + final languageCode = context.read().state.locale.languageCode; + final mapToDisplay = SelectiveDisclosureDisplayMap( + credentialModel: credentialModel, + claims: null, + isPresentation: false, + languageCode: languageCode, + limitDisclosure: '', + filters: {}, + isDeveloperMode: + context.read().state.model.isDeveloperMode, + selectedClaimsKeyIds: [], + onPressed: null, + ).buildMap; + + final email = mapToDisplay['Email']; + if (email != null && email is Map) { + final value = email['value']; + + if (value != null) emailAddress = value.toString(); + } + } + return CredentialBaseWidget( cardBackgroundImagePath: ImageStrings.emailProof, issuerName: credentialModel .credentialPreview.credentialSubjectModel.issuedBy?.name, - value: emailPassModel.email, + value: emailAddress, issuanceDate: UiDate.formatDateForCredentialCard( credentialModel.credentialPreview.issuanceDate, ), diff --git a/lib/selective_disclosure/selective_disclosure.dart b/lib/selective_disclosure/selective_disclosure.dart index 577f06c08..14987b783 100644 --- a/lib/selective_disclosure/selective_disclosure.dart +++ b/lib/selective_disclosure/selective_disclosure.dart @@ -6,6 +6,8 @@ import 'package:altme/selective_disclosure/selective_disclosure.dart'; import 'package:json_path/json_path.dart'; import 'package:jwt_decode/jwt_decode.dart'; import 'package:oidc4vc/oidc4vc.dart'; + +export 'helper_functions/selective_disclosure_display_map.dart'; export 'model/model.dart'; class SelectiveDisclosure {