import React, { PureComponent } from 'react'; import { ConfirmButton, RadioButtonGroup, Icon } from '@grafana/ui'; import { cx } from 'emotion'; interface Props { isGrafanaAdmin: boolean; onGrafanaAdminChange: (isGrafanaAdmin: boolean) => void; } interface State { isEditing: boolean; currentAdminOption: string; } const adminOptions = [ { label: 'Yes', value: 'YES' }, { label: 'No', value: 'NO' }, ]; 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 = (value: string) => { this.setState({ currentAdminOption: 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
); } }