* Inject theme using styled-components' ThemeProvider (#3) * Apply colors from design, styles refactoring (#5) * Add new tip and accounts screen without accounts (#7) * Sync with upstream (#10) * Use Nunito font (#11) * Create account first page (#14) * Customizable identicon (#13) * Inline buttons (#16) * Welcome screen styling (#17) * Account creation second step (#15) * Add new header (#20) * change welcome screen (#19) * Account screen (#18) * Update from upstream (#21) * Window title (#25) * New authorize (#24) * Refactor and remove unnecessary stuff from theme (#22) * refactor add accounts screen (#29) * Export and forget screens, change general padding to 24px (#27) * Signing screen (#26) * Import account screens (#31) * Change header with settings (#28) * Refactor button and mnemonic (#30) * Restyle checkbox (#33) * Remove opacity from background; add borders (#32) * Code style polishing (#34) * Move fileMock to __mocks__ (#35) * Add light theme (#36) * Small design changes (#38) * Change background color (#39) * Sync with upstream (#41) * Update screenshots in readme * [CI Skip] 0.14.0-beta.7 skip-checks: true * fix error for display menu (#42) * fix display of authorization (#43) * firefox scrol (#45) * small change for rename account (#44) * Sync with upstream * Print and back button (#48) * delete print button and change cancel to back button * Set body color (#49) * Fix the fix of account rename (#52) * Update generic sign screen (#47) * Improve UI/UX design (#53) * [CI Skip] 0.14.0-beta.10 skip-checks: true * Improve QR code recognition on dark theme (#54) * Add proper tx/sign texts and headers (#55) Co-authored-by: Kamil Dąbrowski <kamil@ethworks.io>
49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
// Copyright 2019 @polkadot/extension-ui 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, { 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] ? (
|
|
<>
|
|
<Header text={isTransaction(requests[requestIndex]) ? 'Transaction' : 'Sign message'}>
|
|
{requests.length > 1 && (
|
|
<TransactionIndex
|
|
index={requestIndex}
|
|
totalItems={requests.length}
|
|
onNextClick={(): void => setRequestIndex(requestIndex + 1)}
|
|
onPreviousClick={(): void => setRequestIndex(requestIndex - 1)}
|
|
/>
|
|
)}
|
|
</Header>
|
|
<Request
|
|
isFirst={requestIndex === 0}
|
|
account={requests[requestIndex].account}
|
|
request={requests[requestIndex].request}
|
|
signId={requests[requestIndex].id}
|
|
url={requests[requestIndex].url}
|
|
buttonText={isTransaction(requests[requestIndex]) ? 'Sign the transaction' : 'Sign the message'}
|
|
/>
|
|
</>
|
|
) : <Loading />;
|
|
}
|