import "./create-service-account-dialog.scss"; import React from "react"; import { makeObservable, 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 { serviceAccountsStore } from "./service-accounts.store"; import { Input } from "../input"; import { systemName } from "../input/input_validators"; import { NamespaceSelect } from "../+namespaces/namespace-select"; import { Notifications } from "../notifications"; import { showDetails } from "../kube-object"; interface Props extends Partial { } @observer export class CreateServiceAccountDialog extends React.Component { static metadata = observable({ isOpen: false, }); @observable name = ""; @observable namespace = "default"; constructor(props: Props) { super(props); makeObservable(this); } static open() { CreateServiceAccountDialog.metadata.isOpen = true; } static close() { CreateServiceAccountDialog.metadata.isOpen = false; } close = () => { CreateServiceAccountDialog.close(); }; createAccount = async () => { const { name, namespace } = this; try { const serviceAccount = await serviceAccountsStore.create({ namespace, name }); this.name = ""; showDetails(serviceAccount.selfLink); this.close(); } catch (err) { Notifications.error(err); } }; render() { const { ...dialogProps } = this.props; const { name, namespace } = this; const header =
Create Service Account
; return ( this.name = v.toLowerCase()} /> this.namespace = value} /> ); } }