From 9bf928e537c369dcffeeeef70c3b84df4f23fbd9 Mon Sep 17 00:00:00 2001 From: IvanMahda Date: Sat, 1 Feb 2025 13:17:37 +0200 Subject: [PATCH] BW hotfix Credentials with address undefined --- packages/browser-wallet/CHANGELOG.md | 6 ++++++ packages/browser-wallet/package.json | 2 +- .../Header/components/AccountSelector.tsx | 14 ++++++++------ .../src/popup/popupX/pages/Accounts/Accounts.tsx | 7 +++++-- .../prompts/ConnectAccount/ConnectAccount.tsx | 14 ++++++++------ 5 files changed, 28 insertions(+), 15 deletions(-) diff --git a/packages/browser-wallet/CHANGELOG.md b/packages/browser-wallet/CHANGELOG.md index 83b6a357..1ab12c52 100644 --- a/packages/browser-wallet/CHANGELOG.md +++ b/packages/browser-wallet/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2.0.2 + +### Fixed + +- Fixed credentials with address undefined + ## 2.0.1 ### Fixed diff --git a/packages/browser-wallet/package.json b/packages/browser-wallet/package.json index 36417f9c..49d9503e 100644 --- a/packages/browser-wallet/package.json +++ b/packages/browser-wallet/package.json @@ -1,7 +1,7 @@ { "name": "@concordium/browser-wallet", "private": true, - "version": "2.0.1", + "version": "2.0.2", "description": "Browser extension wallet for the Concordium blockchain", "author": "Concordium Software", "license": "Apache-2.0", diff --git a/packages/browser-wallet/src/popup/popupX/page-layouts/MainLayout/Header/components/AccountSelector.tsx b/packages/browser-wallet/src/popup/popupX/page-layouts/MainLayout/Header/components/AccountSelector.tsx index 50f41f47..c8ebf536 100644 --- a/packages/browser-wallet/src/popup/popupX/page-layouts/MainLayout/Header/components/AccountSelector.tsx +++ b/packages/browser-wallet/src/popup/popupX/page-layouts/MainLayout/Header/components/AccountSelector.tsx @@ -54,7 +54,7 @@ function compareAsc(left: WalletCredential, right: WalletCredential): number { if (right.credName === '' && left.credName !== '') { return -1; } - return left.credName.localeCompare(right.credName) || left.address.localeCompare(right.address); + return left.credName?.localeCompare(right.credName) || left.address?.localeCompare(right.address); } function compareDesc(left: WalletCredential, right: WalletCredential): number { @@ -83,11 +83,13 @@ export default function AccountSelector({ showAccountSelector, onUpdateSelectedA const credentials = credentialsLoading.value ?? []; const filtered = useMemo( () => - credentials.filter( - (credential) => - credential.credName?.toLowerCase().includes(search.toLowerCase()) || - credential.address?.toLowerCase().includes(search.toLowerCase()) - ), + credentials + .filter((c) => c.address) + .filter( + (credential) => + credential.credName?.toLowerCase().includes(search.toLowerCase()) || + credential.address?.toLowerCase().includes(search.toLowerCase()) + ), [search, credentials] ); const sorted = useMemo(() => filtered.sort(ascSort ? compareAsc : compareDesc), [filtered, ascSort]); diff --git a/packages/browser-wallet/src/popup/popupX/pages/Accounts/Accounts.tsx b/packages/browser-wallet/src/popup/popupX/pages/Accounts/Accounts.tsx index 75a8b4c7..466269ab 100644 --- a/packages/browser-wallet/src/popup/popupX/pages/Accounts/Accounts.tsx +++ b/packages/browser-wallet/src/popup/popupX/pages/Accounts/Accounts.tsx @@ -29,7 +29,7 @@ function compareAsc(left: WalletCredential, right: WalletCredential): number { if (right.credName === '' && left.credName !== '') { return -1; } - return left.credName.localeCompare(right.credName) || left.address.localeCompare(right.address); + return left.credName?.localeCompare(right.credName) || left.address?.localeCompare(right.address); } function compareDesc(left: WalletCredential, right: WalletCredential): number { @@ -129,7 +129,10 @@ export default function Accounts() { const accounts = useAtomValue(credentialsAtom); const nav = useNavigate(); const navToCreateAccount = useCallback(() => nav(absoluteRoutes.settings.createAccount.path), []); - const sorted = useMemo(() => accounts.sort(ascSort ? compareAsc : compareDesc), [accounts, ascSort]); + const sorted = useMemo( + () => accounts.filter((c) => c.address).sort(ascSort ? compareAsc : compareDesc), + [accounts, ascSort] + ); return ( diff --git a/packages/browser-wallet/src/popup/popupX/pages/prompts/ConnectAccount/ConnectAccount.tsx b/packages/browser-wallet/src/popup/popupX/pages/prompts/ConnectAccount/ConnectAccount.tsx index 4f2cb58e..f9b4ada6 100644 --- a/packages/browser-wallet/src/popup/popupX/pages/prompts/ConnectAccount/ConnectAccount.tsx +++ b/packages/browser-wallet/src/popup/popupX/pages/prompts/ConnectAccount/ConnectAccount.tsx @@ -22,7 +22,7 @@ function compareAsc(left: WalletCredential, right: WalletCredential): number { if (right.credName === '' && left.credName !== '') { return -1; } - return left.credName.localeCompare(right.credName) || left.address.localeCompare(right.address); + return left.credName?.localeCompare(right.credName) || left.address?.localeCompare(right.address); } function compareDesc(left: WalletCredential, right: WalletCredential): number { @@ -102,11 +102,13 @@ export default function ConnectAccount({ onAllow, onReject }: Props) { const credentials = credentialsLoading.value ?? []; const filtered = useMemo( () => - credentials.filter( - (credential) => - credential.credName?.toLowerCase().includes(search.toLowerCase()) || - credential.address?.toLowerCase().includes(search.toLowerCase()) - ), + credentials + .filter((c) => c.address) + .filter( + (credential) => + credential.credName?.toLowerCase().includes(search.toLowerCase()) || + credential.address?.toLowerCase().includes(search.toLowerCase()) + ), [search, credentials] ); const sorted = useMemo(() => filtered.sort(ascSort ? compareAsc : compareDesc), [filtered, ascSort]);