import React, { PureComponent } from 'react'; import { ConfirmButton } from '@grafana/ui'; import { cx } from 'emotion'; interface Props { isGrafanaAdmin: boolean; onGrafanaAdminChange: (isGrafanaAdmin: boolean) => void; } interface State { isEditing: boolean; currentAdminOption: string; } export class UserPermissions extends PureComponent { state = { isEditing: false, currentAdminOption: this.props.isGrafanaAdmin ? 'YES' : 'NO', }; onChangeClick = () => { this.setState({ isEditing: true }); }; onCancelClick = () => { this.setState({ isEditing: false, currentAdminOption: this.props.isGrafanaAdmin ? 'YES' : 'NO', }); }; onGrafanaAdminChange = () => { const { currentAdminOption } = this.state; const newIsGrafanaAdmin = currentAdminOption === 'YES' ? true : false; this.props.onGrafanaAdminChange(newIsGrafanaAdmin); }; onAdminOptionSelect = (event: React.ChangeEvent) => { this.setState({ currentAdminOption: event.target.value }); }; render() { const { isGrafanaAdmin } = this.props; const { isEditing, currentAdminOption } = this.state; const changeButtonContainerClass = cx('pull-right'); return ( <>

Permissions

{isEditing ? ( ) : ( )}
Grafana Admin
{isGrafanaAdmin ? ( <> Yes ) : ( <>No )}
Change
); } }