ChangePasswordPage.tsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React, { PureComponent } from 'react';
  2. import { hot } from 'react-hot-loader';
  3. import { connect } from 'react-redux';
  4. import { StoreState } from 'app/types';
  5. import { NavModel } from '@grafana/data';
  6. import { getNavModel } from 'app/core/selectors/navModel';
  7. import { UserProvider } from 'app/core/utils/UserProvider';
  8. import Page from 'app/core/components/Page/Page';
  9. import { ChangePasswordForm } from './ChangePasswordForm';
  10. export interface Props {
  11. navModel: NavModel;
  12. }
  13. export class ChangePasswordPage extends PureComponent<Props> {
  14. render() {
  15. const { navModel } = this.props;
  16. return (
  17. <Page navModel={navModel}>
  18. <UserProvider>
  19. {({ changePassword }, states) => (
  20. <Page.Contents>
  21. <h3 className="page-sub-heading">Change Your Password</h3>
  22. <ChangePasswordForm onChangePassword={changePassword} isSaving={states.changePassword} />
  23. </Page.Contents>
  24. )}
  25. </UserProvider>
  26. </Page>
  27. );
  28. }
  29. }
  30. function mapStateToProps(state: StoreState) {
  31. return {
  32. navModel: getNavModel(state.navIndex, `change-password`),
  33. };
  34. }
  35. const mapDispatchToProps = {};
  36. export default hot(module)(
  37. connect(
  38. mapStateToProps,
  39. mapDispatchToProps
  40. )(ChangePasswordPage)
  41. );