/* @flow */ import React, { Component } from 'react'; import styled from 'styled-components'; import Input from 'components/inputs/Input'; import Textarea from 'components/Textarea'; import { validateAddress } from 'utils/ethUtils'; import Title from 'views/Wallet/components/Title'; import Button from 'components/Button'; import Content from 'views/Wallet/components/Content'; import colors from 'config/colors'; import type { Props } from './Container'; const Wrapper = styled.div` display: flex; flex: 1; margin-top: -5px; flex-direction: row; background: ${colors.WHITE}; `; const Row = styled.div` padding: 0 0 25px 0; `; const RowButtons = styled(Row)` display: flex; align-items: center; justify-content: flex-end; `; const StyledButton = styled(Button)` margin-left: 10px; width: 110px; `; const Column = styled.div` display: flex; flex: 1; flex-direction: column; `; const Sign = styled(Column)``; const Verify = styled(Column)` padding-left: 20px; `; type State = { signMessage: string, verifyAddress: string, verifyMessage: string, verifySignature: string, touched: Array } class SignVerify extends Component { constructor(props: Props) { super(props); this.state = { signMessage: '', verifyAddress: '', verifyMessage: '', verifySignature: '', touched: [], }; } setTouchedInput = (inputName: string) => { if (!this.state.touched.includes(inputName)) { this.setState(prevState => ({ touched: [...prevState.touched, inputName], })); } } shouldValidate = (inputName: string) => this.state.touched.includes(inputName) handleInputChange = (event: SyntheticInputEvent) => { this.setTouchedInput(event.target.name); this.setState({ [event.target.name]: event.target.value }); } clearSign =() => { this.setState({ signMessage: '', }); this.props.signVerifyActions.clear(); } clearVerify = () => { this.setState({ verifyAddress: '', verifyMessage: '', verifySignature: '', }); } render() { const device = this.props.wallet.selectedDevice; const { account, discovery, shouldRender, notification, } = this.props.selectedAccount; const { type, title, message } = notification; if (!device || !account || !discovery || !shouldRender) return ; const { signVerifyActions, signature, } = this.props; return ( Sign & Verify