PersonalSettings.jsx 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import React, { Fragment } from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. import UserSettings from './UserSettings';
  5. import PasswordSettings from './PasswordSettings';
  6. import ExternalAccountLinkedMe from './ExternalAccountLinkedMe';
  7. import ApiSettings from './ApiSettings';
  8. class PersonalSettings extends React.Component {
  9. render() {
  10. const { t } = this.props;
  11. return (
  12. <Fragment>
  13. <div className="personal-settings">
  14. <ul className="nav nav-tabs" role="tablist">
  15. <li className="nav-item">
  16. <a className="nav-link active" href="#user-settings" data-toggle="tab" role="tab">
  17. <i className="icon-fw icon-user"></i>{ t('User Information') }
  18. </a>
  19. </li>
  20. <li className="nav-item">
  21. <a className="nav-link" href="#external-accounts" data-toggle="tab" role="tab">
  22. <i className="icon-fw icon-share-alt"></i>{ t('admin:user_management.external_accounts') }
  23. </a>
  24. </li>
  25. <li className="nav-item">
  26. <a className="nav-link" href="#password-settings" data-toggle="tab" role="tab">
  27. <i className="icon-fw icon-lock"></i>{ t('Password Settings') }
  28. </a>
  29. </li>
  30. <li className="nav-item">
  31. <a className="nav-link" href="#apiToken" data-toggle="tab" role="tab">
  32. <i className="icon-fw icon-paper-plane"></i>{ t('API Settings') }
  33. </a>
  34. </li>
  35. </ul>
  36. <div className="tab-content p-t-10">
  37. <div id="user-settings" className="tab-pane active" role="tabpanel">
  38. <UserSettings />
  39. </div>
  40. <div id="external-accounts" className="tab-pane" role="tabpanel">
  41. <ExternalAccountLinkedMe />
  42. </div>
  43. <div id="password-settings" className="tab-pane" role="tabpanel">
  44. <PasswordSettings />
  45. </div>
  46. <div id="apiToken" className="tab-pane" role="tabpanel">
  47. <ApiSettings />
  48. </div>
  49. </div>
  50. </div>
  51. </Fragment>
  52. );
  53. }
  54. }
  55. PersonalSettings.propTypes = {
  56. t: PropTypes.func.isRequired, // i18next
  57. };
  58. export default withTranslation()(PersonalSettings);