import React from "react";
import {Button, Card, Col, Input, Row} from 'antd';
import {LinkOutlined} from "@ant-design/icons";
import * as ProviderBackend from "./backend/ProviderBackend";
import * as Setting from "./Setting";
class ProviderEditPage extends React.Component {
constructor(props) {
super(props);
this.state = {
classes: props,
providerName: props.match.params.providerName,
provider: null,
};
}
componentWillMount() {
this.getProvider();
}
getProvider() {
ProviderBackend.getProvider("admin", this.state.providerName)
.then((provider) => {
this.setState({
provider: provider,
});
});
}
parseProviderField(key, value) {
// if ([].includes(key)) {
// value = Setting.myParseInt(value);
// }
return value;
}
updateProviderField(key, value) {
value = this.parseProviderField(key, value);
let provider = this.state.provider;
provider[key] = value;
this.setState({
provider: provider,
});
}
renderProvider() {
return (
Edit Provider
} style={{marginLeft: '5px'}} type="inner">
Name:
{
this.updateProviderField('name', e.target.value);
}} />
Display Name:
{
this.updateProviderField('displayName', e.target.value);
}} />
type:
{
this.updateProviderField('type', e.target.value);
}} />
Client Id:
{
this.updateProviderField('clientId', e.target.value);
}} />
Client Secret:
{
this.updateProviderField('clientSecret', e.target.value);
}} />
Provider Url:
{
this.updateProviderField('providerUrl', e.target.value);
}} />
)
}
submitProviderEdit() {
let provider = Setting.deepCopy(this.state.provider);
ProviderBackend.updateProvider(this.state.provider.owner, this.state.providerName, provider)
.then((res) => {
if (res) {
Setting.showMessage("success", `Successfully saved`);
this.setState({
providerName: this.state.provider.name,
});
this.props.history.push(`/providers/${this.state.provider.name}`);
} else {
Setting.showMessage("error", `failed to save: server side failure`);
this.updateProviderField('name', this.state.providerName);
}
})
.catch(error => {
Setting.showMessage("error", `failed to save: ${error}`);
});
}
render() {
return (
{
this.state.provider !== null ? this.renderProvider() : null
}
);
}
}
export default ProviderEditPage;