diff --git a/packages/extension-ui/src/Popup/ImportQr.tsx b/packages/extension-ui/src/Popup/ImportQr.tsx index 2b0c65eed42..18fce889c42 100644 --- a/packages/extension-ui/src/Popup/ImportQr.tsx +++ b/packages/extension-ui/src/Popup/ImportQr.tsx @@ -27,7 +27,7 @@ export default function ImportQr (): React.ReactElement { return ( <> -
+
{!account && (
diff --git a/packages/extension-ui/src/Popup/Signing/Request.tsx b/packages/extension-ui/src/Popup/Signing/Request.tsx index 7bb379bb6b7..41c857f118a 100644 --- a/packages/extension-ui/src/Popup/Signing/Request.tsx +++ b/packages/extension-ui/src/Popup/Signing/Request.tsx @@ -23,12 +23,13 @@ interface Props { signId: string; url: string; isFirst?: boolean; + buttonText?: string; } // keep it global, we can and will re-use this across requests const registry = new TypeRegistry(); -export default function Request ({ account: { isExternal }, request, signId, url, isFirst }: Props): React.ReactElement | null { +export default function Request ({ account: { isExternal }, request, signId, url, isFirst, buttonText }: Props): React.ReactElement | null { const onAction = useContext(ActionContext); const [hexBytes, setHexBytes] = useState(null); const [extrinsic, setExtrinsic] = useState(null); @@ -37,15 +38,17 @@ export default function Request ({ account: { isExternal }, request, signId, url const inner = request.inner; if ((inner as SignerPayloadRaw).data) { setHexBytes((inner as SignerPayloadRaw).data); + setExtrinsic(null); } else { setExtrinsic(createType(registry, 'ExtrinsicPayload', inner, { version: (inner as SignerPayloadJSON).version })); + setHexBytes(null); } }, [request]); - const _onCancel = (): Promise => - cancelSignRequest(signId) - .then((): void => onAction()) + const _onCancel = (): Promise => { + return cancelSignRequest(signId).then((): void => onAction()) .catch((error: Error) => console.error(error)); + }; const _onSign = (password: string): Promise => approveSignPassword(signId, password) .then((): void => onAction()) @@ -80,7 +83,7 @@ export default function Request ({ account: { isExternal }, request, signId, url ) } - {isFirst && !isExternal && } + {isFirst && !isExternal && } Cancel @@ -95,7 +98,7 @@ export default function Request ({ account: { isExternal }, request, signId, url - {!isExternal && } + {!isExternal && } Reject diff --git a/packages/extension-ui/src/Popup/Signing/Unlock.tsx b/packages/extension-ui/src/Popup/Signing/Unlock.tsx index 710112d8269..51d69704a7e 100644 --- a/packages/extension-ui/src/Popup/Signing/Unlock.tsx +++ b/packages/extension-ui/src/Popup/Signing/Unlock.tsx @@ -9,9 +9,10 @@ import { Button, InputWithLabel } from '../../components'; interface Props { className?: string; onSign: (password: string) => Promise; + buttonText?: string; } -export default function Unlock ({ className, onSign }: Props): React.ReactElement { +export default function Unlock ({ className, onSign, buttonText = 'Sign the transaction' }: Props): React.ReactElement { const [error, setError] = useState(''); const [password, setPassword] = useState(''); @@ -34,7 +35,7 @@ export default function Unlock ({ className, onSign }: Props): React.ReactElemen onChange={setPassword} type='password' /> - +
); } diff --git a/packages/extension-ui/src/Popup/Signing/index.tsx b/packages/extension-ui/src/Popup/Signing/index.tsx index 2bc21dd9c4f..1707012ac2b 100644 --- a/packages/extension-ui/src/Popup/Signing/index.tsx +++ b/packages/extension-ui/src/Popup/Signing/index.tsx @@ -7,19 +7,25 @@ import React, { useContext, useState, useEffect } from 'react'; import { Header, Loading, SigningContext } from '../../components'; import Request from './Request'; import TransactionIndex from './TransactionIndex'; +import { SigningRequest } from '@polkadot/extension/background/types'; export default function Signing (): React.ReactElement<{}> { const requests = useContext(SigningContext); const [requestIndex, setRequestIndex] = useState(0); + useEffect(() => { if (requestIndex >= requests.length) { setRequestIndex(requests.length - 1); } }, [requests]); + function isTransaction (signingRequest: SigningRequest): boolean { + return 'blockNumber' in signingRequest.request.inner; + } + return requests[requestIndex] ? ( <> -
+
{requests.length > 1 && ( { request={requests[requestIndex].request} signId={requests[requestIndex].id} url={requests[requestIndex].url} + buttonText={isTransaction(requests[requestIndex]) ? 'Sign the transaction' : 'Sign the message'} /> ) : ; diff --git a/packages/extension-ui/src/components/themes.ts b/packages/extension-ui/src/components/themes.ts index 1aabc86d000..b34db4bb63b 100644 --- a/packages/extension-ui/src/components/themes.ts +++ b/packages/extension-ui/src/components/themes.ts @@ -71,8 +71,8 @@ export function chooseTheme (): AvailableThemes { if (preferredTheme) { return preferredTheme === 'dark' ? 'dark' : 'light'; } - const isDarkColorSchemePreferred = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; - return isDarkColorSchemePreferred ? 'dark' : 'light'; + const isLightColorSchemePreferred = window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches; + return isLightColorSchemePreferred ? 'light' : 'dark'; } export declare type Theme = typeof darkTheme;