1
0
mirror of https://github.com/trezor/trezor-wallet synced 2024-11-18 06:18:12 +00:00

new modal "wallet type"

This commit is contained in:
Szymon Lesisz 2018-10-05 15:47:51 +02:00
parent bd6bb5927d
commit c570970b42
4 changed files with 94 additions and 0 deletions

View File

@ -112,6 +112,17 @@ export const onDeviceConnect = (device: Device): ThunkAction => (dispatch: Dispa
} }
}; };
export const onWalletTypeRequest = (device: TrezorDevice, hidden: boolean): ThunkAction => (dispatch: Dispatch): void => {
dispatch({
type: MODAL.CLOSE,
});
dispatch({
type: CONNECT.RECEIVE_WALLET_TYPE,
device,
hidden,
});
};
export default { export default {
onPinSubmit, onPinSubmit,
onPassphraseSubmit, onPassphraseSubmit,
@ -121,4 +132,5 @@ export default {
onForgetSingleDevice, onForgetSingleDevice,
onCancel, onCancel,
onDuplicateDevice, onDuplicateDevice,
onWalletTypeRequest,
}; };

View File

@ -0,0 +1,70 @@
/* @flow */
import React, { Component } from 'react';
import styled from 'styled-components';
import { H3 } from 'components/Heading';
import P from 'components/Paragraph';
import Button from 'components/Button';
import type { Props } from 'components/modals/index';
const Wrapper = styled.div`
width: 360px;
padding: 24px 48px;
`;
const StyledButton = styled(Button)`
margin: 0 0 10px 0;
`;
const Row = styled.div`
display: flex;
flex-direction: column;
padding: 10px 0;
`;
class ForgetDevice extends Component<Props> {
constructor(props: Props) {
super(props);
this.keyboardHandler = this.keyboardHandler.bind(this);
}
componentDidMount() {
window.addEventListener('keydown', this.keyboardHandler, false);
}
componentWillUnmount() {
window.removeEventListener('keydown', this.keyboardHandler, false);
}
keyboardHandler(event: KeyboardEvent): void {
if (event.keyCode === 13) {
event.preventDefault();
this.foo(false);
}
}
keyboardHandler: (event: KeyboardEvent) => void;
foo(hidden: boolean) {
this.props.modalActions.onWalletTypeRequest(this.props.modal.device, hidden);
}
render() {
if (!this.props.modal.opened) return null;
const { device } = this.props.modal;
const { onCancel } = this.props.modalActions;
return (
<Wrapper>
<H3>RequestWalletType for { device.instanceLabel }?</H3>
<Row>
<StyledButton onClick={() => this.foo(false)}>Basic</StyledButton>
<StyledButton isWhite onClick={() => this.foo(true)}>Hidden</StyledButton>
</Row>
</Wrapper>
);
}
}
export default ForgetDevice;

View File

@ -29,6 +29,7 @@ import ConfirmUnverifiedAddress from 'components/modals/confirm/UnverifiedAddres
import ForgetDevice from 'components/modals/device/Forget'; import ForgetDevice from 'components/modals/device/Forget';
import RememberDevice from 'components/modals/device/Remember'; import RememberDevice from 'components/modals/device/Remember';
import DuplicateDevice from 'components/modals/device/Duplicate'; import DuplicateDevice from 'components/modals/device/Duplicate';
import RequestWalletType from 'components/modals/device/Type';
type OwnProps = { } type OwnProps = { }
@ -123,6 +124,10 @@ class Modal extends Component<Props> {
component = (<DuplicateDevice {...this.props} />); component = (<DuplicateDevice {...this.props} />);
break; break;
case CONNECT.REQUEST_WALLET_TYPE:
component = (<RequestWalletType {...this.props} />);
break;
default: default:
component = null; component = null;
} }

View File

@ -32,6 +32,13 @@ export default function modal(state: State = initialState, action: Action): Stat
windowType: action.type, windowType: action.type,
}; };
case CONNECT.REQUEST_WALLET_TYPE:
return {
opened: true,
device: action.device,
windowType: action.type,
};
case CONNECT.REMEMBER_REQUEST: case CONNECT.REMEMBER_REQUEST:
return { return {
opened: true, opened: true,