// Copyright 2017-2020 @polkadot/app-js authors & contributors // This software may be modified and distributed under the terms // of the Apache-2.0 license. See the LICENSE file for details. import React, { useEffect, useState } from 'react'; import { AddressMini, Icon, InputAddress, Labelled, TxButton } from '@polkadot/react-components'; import styled from 'styled-components'; import { useTranslation } from './translate'; interface Props { allAccounts: string[]; className?: string; isMine?: boolean; sudoKey?: string; } function SetKey ({ allAccounts, className = '', isMine, sudoKey }: Props): React.ReactElement { const { t } = useTranslation(); const [selected, setSelected] = useState(null); useEffect((): void => { sudoKey && !selected && setSelected(sudoKey); }, [selected, sudoKey]); const willLose = isMine && !!selected && selected !== sudoKey && allAccounts.some((s): boolean => s === selected); return (
{isMine ? ( <> ('sudo key')} onChange={setSelected} type='all' value={selected} /> ('Reassign')} params={[selected]} tx='sudo.setKey' /> ) : ( ('sudo key')} withLabel > ) }
{willLose && (
{t('You will no longer have sudo access')}
)}
); } export default React.memo(styled(SetKey)` align-items: flex-end; justify-content: center; .summary { text-align: center; } .sudoInputAddress { margin: -0.25rem 0.5rem -0.25rem 0; } .sudoLabelled { align-items: center; } `);