import React, {Component} from 'react'; import {Input, Collapse, Button, Radio, Icon} from 'antd'; import {ADD_APIGROUP, UPDATE_APIGROUP} from "../../../../gql"; import {request} from 'graphql-request' import {idGen} from "../../../../func"; import {graphqlUrl} from "../../../../config"; import {manageUsers} from "../../../../config"; import {FormattedMessage} from 'react-intl'; const Panel = Collapse.Panel; class APIGroupCard extends Component { constructor(props) { super(props); let {groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, region} = props.group; props.group !== '' ? this.state = { showOK: false, groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, groupRegion: region } : this.state = { showOK: false, groupName: 'graphql-endpoint', environmentName: 'test', defaultDomain: '', frontType: 'http&https', userDomain: '', userStatus: 'open', groupRegion: props.region }; } componentWillReceiveProps(next) { if(next.group !== '') { let {groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, region} = next.group; this.setState( { groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, groupRegion: region }) } else { this.setState ( { groupName: 'graphql-endpoint', environmentName: 'test', defaultDomain: '', frontType: 'http&https', userDomain: '', userStatus: 'open', groupRegion: next.region }); } }; switchConfig = (label) => { return (e) => { this.setState({ [label]: e.target.value }) }; }; ok = (id) => { let {userStatus, userDomain, groupName, frontType, environmentName} = this.state; let varObj = { id, cloud_id: this.props.cloudID, user_id: this.props.userID, userStatus, userDomain, groupName, frontType, region: this.state.groupRegion, environmentName, defaultDomain: '', status: '', serviceId: '', createdAt: new Date().getTime(), updatedAt: '' }; if (this.props.group === '') { request(graphqlUrl, ADD_APIGROUP, varObj).then( data => { if (data.create_apiGWGroup !== null) { this.setState({ showOK: true }) } setTimeout(()=>{ this.setState({ showOK: false }) }, 1500) } ) } else { let {userStatus, userDomain, groupName, frontType, environmentName} = this.state; let varObj = { id: this.props.group.id, userStatus, userDomain, groupName, frontType, region: this.state.groupRegion, environmentName, updatedAt: new Date().getTime() }; request(graphqlUrl, UPDATE_APIGROUP, varObj).then( data => { if (data.update_apiGWGroup !== null) { this.setState({ showOK: true }) } setTimeout(()=>{ this.setState({ showOK: false }) }, 1500) } ) } }; render() { const customPanelStyle = { background: '#f7f7f7', borderRadius: 4, marginBottom: 24, border: 0, overflow: 'hidden', }; return (
groupName:
region: Guangzhou Shanghai Beijing Chengdu
frontType: http https http&https
defaultDomain:
environmentName: test prepub release
userDomain:
userStatus: open close
{ manageUsers.includes(this.props.userID)?
{ this.state.showOK === true? : '' }
: this.props.trialcase? '' :
{ this.state.showOK === true? : '' }
}
) } } export default APIGroupCard;