From 05e5d4d512394866e43b91658e5b80832e324583 Mon Sep 17 00:00:00 2001 From: Thibaut Sardan <33178835+Tbaut@users.noreply.github.com> Date: Wed, 27 Jan 2021 18:33:01 +0100 Subject: [PATCH] fix renaming position, enter and error background (#634) --- .../src/Popup/Accounts/Account.tsx | 40 +++++++++++++------ .../src/components/ValidatedInput.tsx | 6 +-- packages/extension-ui/src/partials/Name.tsx | 3 +- 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/packages/extension-ui/src/Popup/Accounts/Account.tsx b/packages/extension-ui/src/Popup/Accounts/Account.tsx index 13466726..29dcf10e 100644 --- a/packages/extension-ui/src/Popup/Accounts/Account.tsx +++ b/packages/extension-ui/src/Popup/Accounts/Account.tsx @@ -3,12 +3,13 @@ import type { AccountJson } from '@polkadot/extension-base/background/types'; -import React, { useCallback, useContext, useMemo, useState } from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; import styled from 'styled-components'; import { canDerive } from '@polkadot/extension-base/utils'; +import { ThemeProps } from '@polkadot/extension-ui/types'; -import { ActionContext, Address, Dropdown, Link, MenuDivider } from '../../components'; +import { Address, Dropdown, Link, MenuDivider } from '../../components'; import useGenesisHashOptions from '../../hooks/useGenesisHashOptions'; import useTranslation from '../../hooks/useTranslation'; import { editAccount, tieAccount } from '../../messaging'; @@ -24,11 +25,10 @@ interface EditState { toggleActions: number; } -function Account ({ address, className, genesisHash, isExternal, isHardware, isHidden, parentName, suri, type }: Props): React.ReactElement { +function Account ({ address, className, genesisHash, isExternal, isHardware, isHidden, name, parentName, suri, type }: Props): React.ReactElement { const { t } = useTranslation(); - const onAction = useContext(ActionContext); const [{ isEditing, toggleActions }, setEditing] = useState({ isEditing: false, toggleActions: 0 }); - const [editedName, setName] = useState(null); + const [editedName, setName] = useState(name); const genesisOptions = useGenesisHashOptions(); const _onChangeGenesis = useCallback( @@ -48,12 +48,11 @@ function Account ({ address, className, genesisHash, isExternal, isHardware, isH (): void => { editedName && editAccount(address, editedName) - .then(() => onAction()) .catch(console.error); _toggleEdit(); }, - [editedName, address, _toggleEdit, onAction] + [editedName, address, _toggleEdit] ); const _actions = useMemo(() => ( @@ -123,7 +122,7 @@ function Account ({ address, className, genesisHash, isExternal, isHardware, isH {isEditing && ( ` .address { margin-bottom: 8px; } @@ -143,9 +142,24 @@ export default styled(Account)` .editName { position: absolute; flex: 1; - left: 80px; - top: 6px; - width: 315px; + left: 70px; + top: 10px; + width: 350px; + + .danger { + background-color: ${theme.bodyColor}; + margin-top: -13px; + width: 330px; + } + + input { + height : 30px; + width: 350px; + } + + &.withParent { + top: 16px + } } .menuItem { @@ -161,4 +175,4 @@ export default styled(Account)` margin: 0; } } -`; +`); diff --git a/packages/extension-ui/src/components/ValidatedInput.tsx b/packages/extension-ui/src/components/ValidatedInput.tsx index a414ee9f..4629a7f5 100644 --- a/packages/extension-ui/src/components/ValidatedInput.tsx +++ b/packages/extension-ui/src/components/ValidatedInput.tsx @@ -9,16 +9,16 @@ import Warning from './Warning'; interface BasicProps { isError?: boolean; - value?: string; + value?: string | null; onChange?: (value: string) => void; } type Props = T & { className?: string; - validator: Validator; component: React.ComponentType; - onValidatedChange: (value: string | null) => void; defaultValue?: string; + onValidatedChange: (value: string | null) => void; + validator: Validator; } function ValidatedInput> ({ className, component: Input, defaultValue, onValidatedChange, validator, ...props }: Props): React.ReactElement> { diff --git a/packages/extension-ui/src/partials/Name.tsx b/packages/extension-ui/src/partials/Name.tsx index f826c765..12d6ed37 100644 --- a/packages/extension-ui/src/partials/Name.tsx +++ b/packages/extension-ui/src/partials/Name.tsx @@ -14,7 +14,7 @@ interface Props { label?: string; onBlur?: () => void; onChange: (name: string | null) => void; - value?: string; + value?: string | null; } export default function Name ({ address, className, isFocused, label, onBlur, onChange, value }: Props): React.ReactElement { @@ -34,6 +34,7 @@ export default function Name ({ address, className, isFocused, label, onBlur, on isFocused={isFocused} label={label || t('A descriptive name for your account')} onBlur={onBlur} + onEnter={onBlur} onValidatedChange={onChange} type='text' validator={isNameValid}