\n {this.state.gitError ?\n
\n {this.state.gitError.msg}\n \n : null}\n {this.state.composerError ?\n
\n {this.state.composerError.msg}\n \n : null}\n {this.state.phpWarning ?\n
\n {this.state.phpWarning}\n \n : null}\n {this.state.domainInfoError ?\n
\n \n \n : null}\n
}\n required\n data-id={'domainSelect'}\n >\n {this.state.domains.map(({ id, name }) => (\n
{name}\n ))}\n \n
{\n this.setState({ errors: [], installType });\n }}\n />\n {this.state.installType === INSTALL_TYPE_REMOTE ?\n \n }\n required\n />\n {this.state.publicKey ?\n \n this.props.showMessage()}\n />\n \n : null}\n
\n : null}\n \n );\n\n handleInstall = values => {\n const { baseUrl, showMessage } = this.props;\n\n this.setState({ errors: [] });\n\n values.type = this.state.installType;\n\n Api.post(`${baseUrl}/api/install`, values)\n .then(data => {\n if (data.componentType === 'Jsw.Task.ProgressBar.Item') {\n window.Jsw.getComponent('asyncProgressBarWrapper').progressDialog(data);\n }\n\n this.props.onClose();\n })\n .catch(exception => {\n if (exception instanceof Api.FormErrors) {\n this.setState({ errors: exception.errors });\n return;\n }\n\n showMessage(exception.message, true);\n });\n }\n\n handleCopy = content => {\n copyToClipboard(content);\n this.props.showMessage(