import React, { PureComponent, ChangeEvent, MouseEvent } from 'react'; import { Button, FormLabel, Input, Tooltip } from '@grafana/ui'; import { User } from 'app/types'; import config from 'app/core/config'; import { ProfileUpdateFields } from 'app/core/utils/UserProvider'; export interface Props { user: User; isSavingUser: boolean; updateProfile: (payload: ProfileUpdateFields) => void; } export interface State { name: string; email: string; login: string; } export class UserProfileEditForm extends PureComponent { constructor(props: Props) { super(props); const { user: { name, email, login }, } = this.props; this.state = { name, email, login, }; } onNameChange = (event: ChangeEvent) => { this.setState({ name: event.target.value }); }; onEmailChange = (event: ChangeEvent) => { this.setState({ email: event.target.value }); }; onLoginChange = (event: ChangeEvent) => { this.setState({ login: event.target.value }); }; onSubmitProfileUpdate = (event: MouseEvent) => { event.preventDefault(); this.props.updateProfile({ ...this.state }); }; render() { const { name, email, login } = this.state; const { isSavingUser } = this.props; const { disableLoginForm } = config; return ( <>

Edit Profile

Name
Email {disableLoginForm && ( )}
Username {disableLoginForm && ( )}
); } } export default UserProfileEditForm;