import "./add-role-dialog.scss"; import React from "react"; import { observable } from "mobx"; import { observer } from "mobx-react"; import { Dialog, DialogProps } from "../dialog"; import { Wizard, WizardStep } from "../wizard"; import { SubTitle } from "../layout/sub-title"; import { Notifications } from "../notifications"; import { rolesStore } from "./roles.store"; import { Input } from "../input"; import { NamespaceSelect } from "../+namespaces/namespace-select"; import { showDetails } from "../kube-object"; interface Props extends Partial { } @observer export class AddRoleDialog extends React.Component { @observable static isOpen = false; @observable roleName = ""; @observable namespace = ""; static open() { AddRoleDialog.isOpen = true; } static close() { AddRoleDialog.isOpen = false; } close = () => { AddRoleDialog.close(); }; reset = () => { this.roleName = ""; this.namespace = ""; }; createRole = async () => { try { const role = await rolesStore.create({ name: this.roleName, namespace: this.namespace }); showDetails(role.selfLink); this.reset(); this.close(); } catch (err) { Notifications.error(err.toString()); } }; render() { const { ...dialogProps } = this.props; const header =
Create Role
; return ( this.roleName = v} /> this.namespace = value} /> ); } }