import Select from '@components/forms/Select' import { useWallet } from '@solana/wallet-adapter-react' import { PublicKey } from '@solana/web3.js' import GovernanceStore from '@store/governanceStore' import useLocalStorageState from 'hooks/useLocalStorageState' import { useEffect } from 'react' import { abbreviateAddress } from 'utils/formatting' import { GOVERNANCE_DELEGATE_KEY } from 'utils/governance/constants' import { useTranslation } from 'next-i18next' const GovernanceDelegate = () => { const { t } = useTranslation('governance') const { publicKey } = useWallet() const delegates = GovernanceStore((s) => s.delegates) const connectionContext = GovernanceStore((s) => s.connectionContext) const vsrClient = GovernanceStore((s) => s.vsrClient) const getCurrentVotingPower = GovernanceStore((s) => s.getCurrentVotingPower) const [selectedDelegatePk, setSelectedDelegatePk] = useLocalStorageState( `${publicKey?.toBase58()}${GOVERNANCE_DELEGATE_KEY}`, ) const currentDelegate = delegates .find((x) => x.pubkey.toBase58() === selectedDelegatePk) ?.account.governingTokenOwner.toBase58() useEffect(() => { if ( publicKey?.toBase58() && connectionContext?.endpoint && vsrClient?.program.programId.toBase58() ) { getCurrentVotingPower(publicKey, vsrClient, connectionContext) } }, [selectedDelegatePk]) return delegates.length ? (

{t('delegate')}

) : null } export default GovernanceDelegate