diff --git a/src/renderer/entities/wallet/ui/Cards/DerivedAccount.tsx b/src/renderer/entities/wallet/ui/Cards/DerivedAccount.tsx index fecc4003b9..cde50d4e4a 100644 --- a/src/renderer/entities/wallet/ui/Cards/DerivedAccount.tsx +++ b/src/renderer/entities/wallet/ui/Cards/DerivedAccount.tsx @@ -1,29 +1,26 @@ -import { type MouseEvent } from 'react'; +import { type MouseEvent, type PropsWithChildren } from 'react'; import { type VaultChainAccount, type VaultShardAccount } from '@/shared/core'; import { SS58_PUBLIC_KEY_PREFIX, cnTw, toAddress } from '@/shared/lib/utils'; -import { BodyText, CaptionText, FootnoteText, HelpText, Icon, IconButton, Identicon } from '@/shared/ui'; +import { BodyText, CaptionText, FootnoteText, HelpText, Icon, Identicon } from '@/shared/ui'; import { accountUtils } from '../../lib/account-utils'; import { KeyIcon } from '../../lib/constants'; -type Props = { +type Props = PropsWithChildren<{ account: VaultChainAccount | VaultShardAccount[]; addressPrefix?: number; - showInfoButton?: boolean; showSuffix?: boolean; className?: string; onClick?: () => void; - onInfoClick?: () => void; -}; +}>; export const DerivedAccount = ({ account, addressPrefix = SS58_PUBLIC_KEY_PREFIX, - showInfoButton = true, showSuffix, className, + children, onClick, - onInfoClick, }: Props) => { const isShardedAccount = accountUtils.isAccountWithShards(account); const chainWithAccountId = !isShardedAccount && account.accountId; @@ -93,16 +90,16 @@ export const DerivedAccount = ({
- {showInfoButton && ( - + > + {children} +
)}
void; -}; +}>; -export const RootAccountLg = ({ name, accountId, className, onInfoClick }: Props) => { +export const RootAccountLg = ({ name, accountId, className, children }: Props) => { const handleClick = (event: MouseEvent) => { event.stopPropagation(); }; @@ -29,7 +28,7 @@ export const RootAccountLg = ({ name, accountId, className, onInfoClick }: Props {name}
- + {children ?
{children}
: null} ); }; diff --git a/src/renderer/entities/wallet/ui/VaultAccountsList/VaultAccountsList.tsx b/src/renderer/entities/wallet/ui/VaultAccountsList/VaultAccountsList.tsx index 69d6d5e2a1..219397caa6 100644 --- a/src/renderer/entities/wallet/ui/VaultAccountsList/VaultAccountsList.tsx +++ b/src/renderer/entities/wallet/ui/VaultAccountsList/VaultAccountsList.tsx @@ -1,11 +1,11 @@ import { type Chain, type ChainId, type VaultChainAccount, type VaultShardAccount } from '@/shared/core'; import { useI18n } from '@/shared/i18n'; import { cnTw } from '@/shared/lib/utils'; -import { Accordion, FootnoteText, HelpText } from '@/shared/ui'; +import { FootnoteText, HelpText, IconButton } from '@/shared/ui'; +import { Accordion, Box, Popover } from '@/shared/ui-kit'; import { ChainTitle } from '@/entities/chain'; import { accountUtils } from '../../lib/account-utils'; import { DerivedAccount } from '../Cards/DerivedAccount'; -import { ExplorersPopover } from '../ExplorersPopover/ExplorersPopover'; type Props = { chains: Chain[]; @@ -19,51 +19,57 @@ export const VaultAccountsList = ({ chains, accountsMap, className, onShardClick return (
- {t('accountList.addressColumn')} + {t('accountList.addressColumn')} {chains.map((chain) => { if (!accountsMap[chain.chainId]) return; return ( - - -
- +
+ + + + + {accountsMap[chain.chainId].length} -
- - - {accountsMap[chain.chainId].map((account) => { - const isSharded = accountUtils.isAccountWithShards(account); + + +
    + {accountsMap[chain.chainId].map((account) => { + const isSharded = accountUtils.isAccountWithShards(account); - return ( -
  • - onShardClick?.(account) : undefined} - /> - } - > - - - {accountUtils.getDerivationPath(account)} - - - -
  • - ); - })} + > + + + + + + + + {t('general.explorers.derivationTitle')} + + + {accountUtils.getDerivationPath(account)} + + + + + + + ); + })} +
-
-
- +
+
+ +
); })}
diff --git a/src/renderer/features/wallet-details/ui/wallets/VaultWalletDetails.tsx b/src/renderer/features/wallet-details/ui/wallets/VaultWalletDetails.tsx index c8db5eaa33..33aa8b49a1 100644 --- a/src/renderer/features/wallet-details/ui/wallets/VaultWalletDetails.tsx +++ b/src/renderer/features/wallet-details/ui/wallets/VaultWalletDetails.tsx @@ -13,9 +13,10 @@ import { KeyType } from '@/shared/core'; import { useI18n } from '@/shared/i18n'; import { useModalClose, useToggle } from '@/shared/lib/hooks'; import { copyToClipboard, nullable, toAddress } from '@/shared/lib/utils'; -import { ContextMenu, HelpText, Icon, IconButton, StatusModal } from '@/shared/ui'; +import { FootnoteText, HelpText, Icon, IconButton, StatusModal } from '@/shared/ui'; import { type IconNames } from '@/shared/ui/Icon/data'; -import { Box, Dropdown, Modal, ScrollArea, Tabs } from '@/shared/ui-kit'; +import { Hash } from '@/shared/ui-entities'; +import { Box, Dropdown, Modal, Popover, ScrollArea, Tabs } from '@/shared/ui-kit'; import { networkModel } from '@/entities/network'; import { RootAccountLg, VaultAccountsList, WalletCardLg, accountUtils, permissionUtils } from '@/entities/wallet'; import { proxyAddFeature } from '@/features/proxy-add'; @@ -199,24 +200,33 @@ export const VaultWalletDetails = ({ wallet, onClose }: Props) => { - }> - -
- - {toAddress(root.accountId, { prefix: 1 })} - - copyToClipboard(root.accountId)} - /> -
-
-
+ + + + + + + + + {t('general.explorers.publicKeyTitle')} + + + + + + copyToClipboard(root.accountId)} + /> + + + + + { {hasProxies ? ( - + ) : (
- +