// Copyright 2015, 2016 Ethcore (UK) Ltd. // This file is part of Parity. // Parity is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Parity is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Parity. If not, see . import React, { Component, PropTypes } from 'react'; import { Dialog, FlatButton, SelectField, MenuItem } from 'material-ui'; import InputText from '../../Inputs/Text'; import Loading from '../../Loading'; import Token from '../../Tokens/Token'; import { SIMPLE_TOKEN_ADDRESS_TYPE, SIMPLE_TLA_TYPE } from '../../Inputs/validation'; import styles from '../actions.css'; const initState = { queryKey: 'tla', form: { valid: false, value: '' } }; export default class QueryAction extends Component { static propTypes = { show: PropTypes.bool.isRequired, loading: PropTypes.bool.isRequired, onClose: PropTypes.func.isRequired, handleQueryToken: PropTypes.func.isRequired, handleQueryMetaLookup: PropTypes.func.isRequired, data: PropTypes.object, notFound: PropTypes.bool, metaLoading: PropTypes.bool, metaData: PropTypes.object } state = initState; render () { return ( { this.renderContent() } ); } renderActions () { const { loading, data, notFound } = this.props; if (loading) { return ( ); } const complete = data || notFound; if (complete) { return ([ ]); } const isValid = this.state.form.valid; return ([ , ]); } renderContent () { const { loading, notFound, data } = this.props; if (loading) { return ( ); } if (notFound) { return (

No token has been found in the registry...

); } if (data) { return this.renderData(); } return this.renderForm(); } renderData () { const { data } = this.props; return ( ); } renderForm () { return (
{ this.state.queryKey !== 'tla' ? () : () }
); } onQueryKeyChange = (event, index, queryKey) => { this.setState({ queryKey, form: { valid: false, value: '' } }); } onChange = (valid, value) => { this.setState({ form: { valid, value } }); } onQuery = () => { if (!this.state.form.valid) return; const { queryKey, form } = this.state; this.props.handleQueryToken(queryKey, form.value); } onClose = () => { this.setState(initState); this.props.onClose(); } }