import React from 'react' import { Input, Button, Form, Modal } from 'antd' import { FormComponentProps } from 'antd/lib/form' const FormItem = Form.Item import { IQueryVariableMap } from 'app/containers/Dashboard/types' interface IAliasExpressionTestProps extends FormComponentProps { visible: boolean queryVariableNames: string[] onClose: () => void onTest: (queryVariableMap: IQueryVariableMap) => void } export class AliasExpressionTest extends React.PureComponent { private labelCol = {span: 8} private wrapperCol = {span: 14} private renderQueryVarItem = (queryVariableName: string) => { const { form } = this.props const { getFieldDecorator } = form return ( {getFieldDecorator(queryVariableName)()} ) } private ok = () => { const { form, onTest } = this.props let queryVariables = form.getFieldsValue() as { [key: string]: string } queryVariables = Object.entries(queryVariables).reduce((obj, [key, value]) => { obj[`$${key}$`] = value return obj }, {}) onTest(queryVariables) } private close = () => { this.props.onClose() } private testModalFooter = [( ), ( )] public render () { const { visible, queryVariableNames } = this.props return (
{queryVariableNames.map((name) => this.renderQueryVarItem(name))}
) } } export default Form.create()(AliasExpressionTest)