/* * Copyright (c) 2022 @automata-network/wallet-sdk authors and contributors. * This software may be modified and distributed under the terms of UNLICENSED * license. Refer to the LICENSE file for details. */ import React, { KeyboardEvent, useCallback, useState } from 'react' import { AccountAvatar, AccountModal } from '../' import { useWallet } from '../../store/wallet' import { truncateString } from '../../utils' type Props = { account: string avatarPosition?: 'left' | 'right' className?: string withAvatar?: boolean } export const Account: React.FC = ({ account, avatarPosition, className, withAvatar = true }) => { const [isAccountModalOpen, setAccountModalOpen] = useState(false) const { prefixCls } = useWallet() const openAccountModal = useCallback(() => setAccountModalOpen(true), []) const closeAccountModal = useCallback(() => setAccountModalOpen(false), []) const onAccountEnterDown = useCallback( (e: KeyboardEvent) => { const key = e.key.toLowerCase() if (key === 'enter') { openAccountModal() } }, [openAccountModal] ) return ( <>
{withAvatar && } {truncateString(account)}
) }