Skip to content

feat(ui): Migrate old Identifier Details page into Profile Details #1270

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: VT20-1965-profile-details-view
Choose a base branch
from

Conversation

Sotatek-DukeVu
Copy link
Collaborator

@Sotatek-DukeVu Sotatek-DukeVu commented Jul 17, 2025

Description

Migrate old Identifier Details page into Profile Details

Checklist before requesting a review

Issue ticket number and link

  • This PR has a valid ticket number or issue: VT20-1994

Testing & Validation

  • This PR has been tested/validated in iOS, Android and browser.
  • Added new unit tests, if relevant.

Design Review

  • In case this PR contains changes to the UI, add some screenshots and/or videos to show the changes on relevant devices.
Set recent profile as default profile when user delete default profile
Screen.Recording.2025-07-21.at.16.12.24.mov

IOS

Screen.Recording.2025-07-21.at.16.02.11.mov

Android

Screen.Recording.2025-07-21.at.17.28.58.mov

@Sotatek-DukeVu Sotatek-DukeVu removed the request for review from sdisalvo-crd July 17, 2025 11:25
@Sotatek-DukeVu Sotatek-DukeVu marked this pull request as draft July 17, 2025 11:25
@Sotatek-DukeVu Sotatek-DukeVu self-assigned this Jul 17, 2025
@Sotatek-DukeVu Sotatek-DukeVu marked this pull request as ready for review July 18, 2025 03:06
@Sotatek-DukeVu Sotatek-DukeVu force-pushed the VT20-1994-migrate-old-identifier-details-page-into-profile-details branch from bb4f0c2 to e5d2f9c Compare July 18, 2025 07:45
"color": "Choose card colour"
}
},
"clouderror": "We couldn’t locate this identifier in the cloud. It might become available again soon, but some information could be lost.\n\nIf you no longer require this identifier, tap “Delete identifier” to remove.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update message

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Contributor

@sdisalvo-crd sdisalvo-crd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few more comments on some naming issues and a reminder about what we talked about in DM for sorting profiles alphabetically and setting up a history of default profiles so we can fall back on the most recently used when deleting one in use.

}
},
"rotatekeys": {
"message": "After rotating your keys, you may experience some delays when using this identifier for a short period.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update message

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dibe

"title": "Advanced details",
"propexplain": {
"title": "About advanced details",
"content": "Provides additional details on this identifier for users interested in more technical insights."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update message and check space below the header and between elements as they seem very close to each other (but I might be wrong).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -24,7 +24,7 @@ import {
} from "../../CardDetails";
import { CardTheme } from "../../CardTheme";
import { FallbackIcon } from "../../FallbackIcon";
import { IdentifierDetailModal } from "../../IdentifierDetailModule";
import { ProfileDetailModal } from "../../ProfileDetailModal";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should rename all Detail to Details just to be correct.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -0,0 +1,257 @@
.identifier-details-module {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All ProfileDetailModal files should be renamed to include s in Details

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

ProfileDetailModalProps,
} from "./ProfileDetailModal.types";

const ProfileDetailModule = ({
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as mentioned before, add missing s in the name.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

"title": "Signing threshold",
"propexplain": {
"title": "About signing threshold",
"content": "Minimum number of signing keys required to approve a transaction or event within the identifier."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please check this design update to see new updated messages for profiles: https://www.figma.com/design/xDtjsTapugXYhlUvwdCq49/Veridian-App?node-id=7514-27000&t=estZuNZWzhzD0C9W-1

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -1,18 +1,17 @@
import { HardwareBackButtonConfig } from "../PageHeader/PageHeader.types";

interface IdentifierDetailModuleProps {
interface ProfileDetailModalProps {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change to ProfileDetailsModalProps

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

<span>
{i18n.t("tabs.identifiers.details.detailmodal.you")}
</span>
<span>{i18n.t("profiledetails.detailmodal.you")}</span>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change to detailsmodal

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

}
},
"clouderror": "We couldn’t locate this identifier in the cloud. It might become available again soon, but some information could be lost.\n\nIf you no longer require this identifier, tap “Delete identifier” to remove.",
"detailmodal": {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change to detailsmodal (missing s).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Comment on lines 3 to 13
interface IdentifierContentProps {
oobi: string;
cardData: IdentifierDetails;
onRotateKey: () => void;
setCardData: (value: IdentifierDetails) => void;
}

interface ProfileInformationProps {
value: string;
text: string;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like we're now mixing Identifier and Profile. Maybe we rename all components that use Identifier as name to Profile just to be consistent? It's ok to leave identifier in core data though, just UI components.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

iFergal and others added 4 commits July 18, 2025 11:16
…perly (develop) (#1273)

* fix(core): ipex agree filtering for connection history

* refactor: save exchangepresentcredential later to minimize race conditions
@Sotatek-DukeVu Sotatek-DukeVu force-pushed the VT20-1994-migrate-old-identifier-details-page-into-profile-details branch 2 times, most recently from 2e443d5 to 2884666 Compare July 21, 2025 04:17
@Sotatek-DukeVu Sotatek-DukeVu force-pushed the VT20-1994-migrate-old-identifier-details-page-into-profile-details branch from 5bfa14b to 9de652e Compare July 21, 2025 10:20
@jorgenavben jorgenavben requested a review from jimcase July 22, 2025 09:23
.nsprc Outdated
},
"1106462": {
"active": true,
"notes": "Appium server responses when e2e testing is unlikely to impact the wallet."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. Please check.

@@ -324,35 +261,6 @@ describe("get identifier Cache", () => {
expect(identifiersCache).toEqual(state.identifiersCache.identifiers);
});

test("should return the favourites cache from RootState", () => {
Copy link
Contributor

@jimcase jimcase Jul 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we have a test for return the favourites for creds

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

const favouriteIndex = isIdentifier
? identifierFavouriteIndex
: credFavouriteIndex;
const favouriteIndex = credFavouriteIndex;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can use credFavouriteIndex directly

@@ -48,7 +50,7 @@ Object.defineProperty(window, "matchMedia", {
})),
});

const path = TabsRoutePath.IDENTIFIERS + "/" + identifierFix[0].id;
const path = TabsRoutePath.CREDENTIALS + "/" + identifierFix[0].id;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can use string interpolation here:

${TabsRoutePath.CREDENTIALS}/${identifierFix[0].id}

return true;
}

const identifies = Object.values(identifierMap)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: identifiers

@Sotatek-DukeVu Sotatek-DukeVu requested a review from jimcase July 23, 2025 03:12
@Sotatek-DukeVu Sotatek-DukeVu requested a review from obstar July 23, 2025 08:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants