From aad46dcb58c8a6a0244ec545155a917c771538d9 Mon Sep 17 00:00:00 2001 From: Jaco Date: Sun, 15 Jan 2023 09:35:56 +0200 Subject: [PATCH] Adjust styled injection for signer (#8802) --- packages/react-components/src/Modal/Actions.tsx | 10 ++++++---- packages/react-components/src/Modal/Base.tsx | 10 ++++++---- packages/react-components/src/Modal/Columns.tsx | 10 ++++++---- packages/react-components/src/Modal/Content.tsx | 10 ++++++---- packages/react-components/src/Modal/Header.tsx | 10 ++++++---- packages/react-signer/src/Address.tsx | 14 +++++++------- packages/react-signer/src/Password.tsx | 13 +++++++------ packages/react-signer/src/Qr.tsx | 11 ++++++----- packages/react-signer/src/Transaction.tsx | 10 ++++++---- packages/react-signer/src/TxSigned.tsx | 12 +++++++----- packages/react-signer/src/index.tsx | 10 ++++++---- 11 files changed, 69 insertions(+), 51 deletions(-) diff --git a/packages/react-components/src/Modal/Actions.tsx b/packages/react-components/src/Modal/Actions.tsx index 43f1e9e2bd..db43499a25 100644 --- a/packages/react-components/src/Modal/Actions.tsx +++ b/packages/react-components/src/Modal/Actions.tsx @@ -10,19 +10,21 @@ import Button from '../Button'; function Actions ({ children, className = '' }: ActionsProps) { return ( -
+ {children} -
+ ); } -export default React.memo(styled(Actions)` +const StyledDiv = styled.div` background-color: var(--bg-input); border-radius: 0 0 4px 4px; .ui--Button-Group { margin: 1rem 1rem; } -`); +`; + +export default React.memo(Actions); diff --git a/packages/react-components/src/Modal/Base.tsx b/packages/react-components/src/Modal/Base.tsx index 027371c09e..251b1afcad 100644 --- a/packages/react-components/src/Modal/Base.tsx +++ b/packages/react-components/src/Modal/Base.tsx @@ -31,7 +31,7 @@ function Base (props: ModalProps): React.ReactElement { }, [listenKeyboard]); return createPortal( -
@@ -47,7 +47,7 @@ function Base (props: ModalProps): React.ReactElement { /> {children}
- , + , document.body ); } @@ -58,7 +58,7 @@ const DisableGlobalScroll = createGlobalStyle` } `; -export default React.memo(styled(Base)` +const StyledDiv = styled.div` position: fixed; top: 0; left: 0; @@ -104,4 +104,6 @@ export default React.memo(styled(Base)` &.largeSize .ui--Modal__body { max-width: 1080px; } -`); +`; + +export default React.memo(Base); diff --git a/packages/react-components/src/Modal/Columns.tsx b/packages/react-components/src/Modal/Columns.tsx index 3894a518d7..73d3e1fbdc 100644 --- a/packages/react-components/src/Modal/Columns.tsx +++ b/packages/react-components/src/Modal/Columns.tsx @@ -8,16 +8,16 @@ import styled from 'styled-components'; function Columns ({ children, className = '', hint }: ColumnsProps): React.ReactElement { return ( -
+
{children}
{hint && (
{hint}
)} -
+ ); } -export default React.memo(styled(Columns)` +const StyledDiv = styled.div` align-items: center; display: flex; justify-content: space-between; @@ -56,4 +56,6 @@ export default React.memo(styled(Columns)` } } } -`); +`; + +export default React.memo(Columns); diff --git a/packages/react-components/src/Modal/Content.tsx b/packages/react-components/src/Modal/Content.tsx index ce508926f2..f74a511a63 100644 --- a/packages/react-components/src/Modal/Content.tsx +++ b/packages/react-components/src/Modal/Content.tsx @@ -8,12 +8,14 @@ import styled from 'styled-components'; function Content ({ children, className = '' }: ContentProps) { return ( -
+ {children} -
+ ); } -export default React.memo(styled(Content)` +const StyledDiv = styled.div` padding: 1.5rem; -`); +`; + +export default React.memo(Content); diff --git a/packages/react-components/src/Modal/Header.tsx b/packages/react-components/src/Modal/Header.tsx index d10d4ffb18..82e30c8582 100644 --- a/packages/react-components/src/Modal/Header.tsx +++ b/packages/react-components/src/Modal/Header.tsx @@ -10,7 +10,7 @@ import Button from '../Button'; function Header ({ className = '', header, onClose }: HeaderProps) { return ( -
+ {header && (

{header}

)} @@ -19,12 +19,14 @@ function Header ({ className = '', header, onClose }: HeaderProps) { icon='times' onClick={onClose} /> -
+ ); } -export default React.memo(styled(Header)` +const StyledDiv = styled.div` display: flex; justify-content: space-between; padding: 0.75rem 1.5rem 0; -`); +`; + +export default React.memo(Header); diff --git a/packages/react-signer/src/Address.tsx b/packages/react-signer/src/Address.tsx index b2b42db690..d9d6cfec51 100644 --- a/packages/react-signer/src/Address.tsx +++ b/packages/react-signer/src/Address.tsx @@ -27,11 +27,11 @@ interface Props { onChange: (address: AddressProxy) => void; onEnter?: () => void; passwordError: string | null; - requestAddress: string; + requestAddress: string | null; } interface MultiState { - address: string; + address: string | null; isMultiCall: boolean; who: string[]; whoFilter: string[]; @@ -43,7 +43,7 @@ interface PasswordState { } interface ProxyState { - address: string; + address: string | null; isProxied: boolean; proxies: [string, BN, KitchensinkRuntimeProxyType][]; proxiesFilter: string[]; @@ -136,13 +136,13 @@ function filterProxies (allAccounts: string[], tx: Call | SubmittableExtrinsic<' .map(([address]) => address); } -async function queryForMultisig (api: ApiPromise, requestAddress: string, proxyAddress: string | null, tx: SubmittableExtrinsic<'promise'>): Promise { +async function queryForMultisig (api: ApiPromise, requestAddress: string | null, proxyAddress: string | null, tx: SubmittableExtrinsic<'promise'>): Promise { const multiModule = api.tx.multisig ? 'multisig' : 'utility'; if (isFunction(api.query[multiModule]?.multisigs)) { const address = proxyAddress || requestAddress; const { threshold, who } = extractExternal(address); - const hash = (proxyAddress ? api.tx.proxy.proxy(requestAddress, null, tx) : tx).method.hash; + const hash = (proxyAddress ? api.tx.proxy.proxy(requestAddress || '', null, tx) : tx).method.hash; const optMulti = await api.query[multiModule].multisigs>(address, hash); const multi = optMulti.unwrapOr(null); @@ -164,7 +164,7 @@ async function queryForMultisig (api: ApiPromise, requestAddress: string, proxyA return null; } -async function queryForProxy (api: ApiPromise, allAccounts: string[], address: string, tx: SubmittableExtrinsic<'promise'>): Promise { +async function queryForProxy (api: ApiPromise, allAccounts: string[], address: string | null, tx: SubmittableExtrinsic<'promise'>): Promise { if (isFunction(api.query.proxy?.proxies)) { const { isProxied } = extractExternal(address); const [_proxies] = await api.query.proxy.proxies | PalletProxyProxyDefinition>, BalanceOf]>>(address); @@ -195,7 +195,7 @@ function Address ({ currentItem, onChange, onEnter, passwordError, requestAddres const [{ isUnlockCached, signPassword }, setSignPassword] = useState(() => ({ isUnlockCached: false, signPassword: '' })); const [signAddress, flags] = useMemo( - (): [string, AddressFlags] => { + (): [string | null, AddressFlags] => { const signAddress = (multiInfo && multiAddress) || (isProxyActive && proxyInfo && proxyAddress) || requestAddress; diff --git a/packages/react-signer/src/Password.tsx b/packages/react-signer/src/Password.tsx index 07fba7ea58..60bd7354d8 100644 --- a/packages/react-signer/src/Password.tsx +++ b/packages/react-signer/src/Password.tsx @@ -15,10 +15,9 @@ import { UNLOCK_MINS } from './util'; interface Props { address: string; className?: string; - error?: string; + error?: string | null; onChange: (password: string, isUnlockCached: boolean) => void; onEnter?: () => void; - password: string; tabIndex?: number; } @@ -49,7 +48,7 @@ function Unlock ({ address, className, error, onChange, onEnter, tabIndex }: Pro } return ( - @@ -69,11 +68,11 @@ function Unlock ({ address, className, error, onChange, onEnter, tabIndex }: Pro value={isUnlockCached} /> - + ); } -export default React.memo(styled(Unlock)` +const StyledModalColumns = styled(Modal.Columns)` .errorLabel { margin-right: 1rem; color: #9f3a38 !important; @@ -82,4 +81,6 @@ export default React.memo(styled(Unlock)` .ui--Toggle { bottom: 1.1rem; } -`); +`; + +export default React.memo(Unlock); diff --git a/packages/react-signer/src/Qr.tsx b/packages/react-signer/src/Qr.tsx index 03ad3915fe..5151fcbc86 100644 --- a/packages/react-signer/src/Qr.tsx +++ b/packages/react-signer/src/Qr.tsx @@ -18,7 +18,6 @@ interface Props { className?: string; genesisHash: Uint8Array; isHashed: boolean; - isScanning: boolean; onSignature: (data: SigData) => void; payload: Uint8Array; } @@ -57,7 +56,7 @@ function Qr ({ address, className, genesisHash, isHashed, onSignature, payload } return ( <> - +
-
+ {sigError && ( ('The details of the transaction including the type, the description (as available from the chain metadata) as well as any parameters and fee estimations (as available) for the specific type of call.')} > @@ -46,12 +46,14 @@ function Transaction ({ accountId, className, currentItem: { extrinsic, isUnsign tip={tip} /> )} - + ); } -export default React.memo(styled(Transaction)` +const StyledModalColumns = styled(Modal.Columns)` .paymentInfo { margin-top: 0.5rem; } -`); +`; + +export default React.memo(Transaction); diff --git a/packages/react-signer/src/TxSigned.tsx b/packages/react-signer/src/TxSigned.tsx index 050d53a286..77dc44bfb4 100644 --- a/packages/react-signer/src/TxSigned.tsx +++ b/packages/react-signer/src/TxSigned.tsx @@ -35,7 +35,7 @@ import { cacheUnlock, extractExternal, handleTxResults } from './util'; interface Props { className?: string; currentItem: QueueTx; - requestAddress: string; + requestAddress: string | null; } interface InnerTx { @@ -346,7 +346,7 @@ function TxSigned ({ className, currentItem, requestAddress }: Props): React.Rea return ( <> - + - +