You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-wallet/src/views/Wallet/views/Acquire/index.js

65 lines
1.8 KiB

/* @flow */
import React from 'react';
import styled from 'styled-components';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { injectIntl } from 'react-intl';
import type { IntlShape } from 'react-intl';
import { colors, Notification } from 'trezor-ui-components';
import * as TrezorConnectActions from 'actions/TrezorConnectActions';
import type { State, Dispatch } from 'flowtype';
import l10nMessages from './index.messages';
type OwnProps = {|
intl: IntlShape,
|};
type StateProps = {|
acquiring: boolean,
|};
type DispatchProps = {|
acquireDevice: typeof TrezorConnectActions.acquire,
|};
type Props = {| ...OwnProps, ...StateProps, ...DispatchProps |};
const Wrapper = styled.div`
display: flex;
background: ${colors.WHITE};
flex-direction: column;
flex: 1;
`;
const Acquire = (props: Props) => (
<Wrapper>
<Notification
title={props.intl.formatMessage(l10nMessages.TR_DEVICE_USED_IN_OTHER)}
message={props.intl.formatMessage(l10nMessages.TR_USE_YOUR_DEVICE_IN_THIS_WINDOW)}
type="info"
cancelable={false}
isActionInProgress={props.acquiring}
actions={[
{
label: props.intl.formatMessage(l10nMessages.TR_ACQUIRE_DEVICE),
callback: () => {
props.acquireDevice();
},
},
]}
/>
</Wrapper>
);
export default injectIntl<OwnProps>(
connect<Props, OwnProps, StateProps, DispatchProps, State, Dispatch>(
(state: State): StateProps => ({
acquiring: state.connect.acquiringDevice,
}),
(dispatch: Dispatch): DispatchProps => ({
acquireDevice: bindActionCreators(TrezorConnectActions.acquire, dispatch),
})
)(Acquire)
);