SmtpSetting.jsx 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. import { withUnstatedContainers } from '../../UnstatedUtils';
  5. import { withLoadingSppiner } from '../../SuspenseUtils';
  6. import AppContainer from '../../../services/AppContainer';
  7. import AdminAppContainer from '../../../services/AdminAppContainer';
  8. function SmtpSetting(props) {
  9. const { adminAppContainer, t } = props;
  10. return (
  11. <React.Fragment>
  12. <div id="mail-smtp" className="tab-pane active mt-5">
  13. <div className="row form-group">
  14. <label className="text-left text-md-right col-md-3 col-form-label">
  15. {t('admin:app_setting.host')}
  16. </label>
  17. <div className="col-md-6">
  18. <input
  19. className="form-control"
  20. type="text"
  21. defaultValue={adminAppContainer.state.smtpHost || ''}
  22. onChange={(e) => { adminAppContainer.changeSmtpHost(e.target.value) }}
  23. />
  24. </div>
  25. </div>
  26. <div className="row form-group">
  27. <label className="text-left text-md-right col-md-3 col-form-label">
  28. {t('admin:app_setting.port')}
  29. </label>
  30. <div className="col-md-6">
  31. <input
  32. className="form-control"
  33. defaultValue={adminAppContainer.state.smtpPort || ''}
  34. onChange={(e) => { adminAppContainer.changeSmtpPort(e.target.value) }}
  35. />
  36. </div>
  37. </div>
  38. <div className="row form-group">
  39. <label className="text-left text-md-right col-md-3 col-form-label">
  40. {t('admin:app_setting.user')}
  41. </label>
  42. <div className="col-md-6">
  43. <input
  44. className="form-control"
  45. type="text"
  46. defaultValue={adminAppContainer.state.smtpUser || ''}
  47. onChange={(e) => { adminAppContainer.changeSmtpUser(e.target.value) }}
  48. />
  49. </div>
  50. </div>
  51. <div className="row form-group">
  52. <label className="text-left text-md-right col-md-3 col-form-label">
  53. {t('Password')}
  54. </label>
  55. <div className="col-md-6">
  56. <input
  57. className="form-control"
  58. type="password"
  59. defaultValue={adminAppContainer.state.smtpPassword || ''}
  60. onChange={(e) => { adminAppContainer.changeSmtpPassword(e.target.value) }}
  61. />
  62. </div>
  63. </div>
  64. </div>
  65. </React.Fragment>
  66. );
  67. }
  68. /**
  69. * Wrapper component for using unstated
  70. */
  71. const SmtpSettingWrapper = withUnstatedContainers(withLoadingSppiner(SmtpSetting), [AppContainer, AdminAppContainer]);
  72. SmtpSetting.propTypes = {
  73. t: PropTypes.func.isRequired, // i18next
  74. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  75. adminAppContainer: PropTypes.instanceOf(AdminAppContainer).isRequired,
  76. };
  77. export default withTranslation()(SmtpSettingWrapper);