import React from 'react'; import { Form, Input, Button, message, Alert, Divider } from 'antd'; import { updateUserSettings } from 'api/api'; import { isValidAddress } from 'utils/validators'; import './SetRefundAddress.less'; interface OwnProps { userid: number; onSetRefundAddress(): void; onSetNoRefund(): void; } type Props = OwnProps; const STATE = { refundAddress: '', isSaving: false, }; type State = typeof STATE; export default class SetRefundAddress extends React.Component { state: State = { ...STATE }; render() { const { refundAddress, isSaving } = this.state; let status: 'validating' | 'error' | undefined; let help; if (refundAddress && !isValidAddress(refundAddress)) { status = 'error'; help = 'That doesn’t look like a valid address'; } return (
or ); } private handleChange = (ev: React.ChangeEvent) => { this.setState({ refundAddress: ev.currentTarget.value }); }; private handleSubmit = async (ev: React.FormEvent) => { ev.preventDefault(); const { userid } = this.props; const { refundAddress } = this.state; if (!refundAddress) { return; } this.setState({ isSaving: true }); try { await updateUserSettings(userid, { refundAddress }); this.props.onSetRefundAddress(); } catch (err) { console.error(err); message.error(err.message || err.toString(), 5); this.setState({ isSaving: false }); } }; }