CustomizeLayoutOptions.jsx 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. import { withUnstatedContainers } from '../../UnstatedUtils';
  5. import AdminCustomizeContainer from '../../../services/AdminCustomizeContainer';
  6. import AppContainer from '../../../services/AppContainer';
  7. import CustomizeLayoutOption from './CustomizeLayoutOption';
  8. class CustomizeLayoutOptions extends React.Component {
  9. render() {
  10. const { t, adminCustomizeContainer } = this.props;
  11. return (
  12. <div className="row row-cols-1 row-cols-md-2">
  13. <div className="col text-center">
  14. <CustomizeLayoutOption
  15. layoutType="crowi-plus"
  16. isSelected={adminCustomizeContainer.state.currentLayout === 'growi'}
  17. onSelected={() => adminCustomizeContainer.switchLayoutType('growi')}
  18. labelHtml={`GROWI enhanced layout <small class="text-success">${t('admin:customize_setting.recommended')}</small>`}
  19. >
  20. <h4>{t('admin:customize_setting.layout_desc.growi_title')}</h4>
  21. <div className="text-justify d-inline-block">
  22. <ul>
  23. <li>{t('admin:customize_setting.layout_desc.growi_text1')}</li>
  24. <li>{t('admin:customize_setting.layout_desc.growi_text2')}</li>
  25. <li>{t('admin:customize_setting.layout_desc.growi_text3')}</li>
  26. </ul>
  27. </div>
  28. </CustomizeLayoutOption>
  29. </div>
  30. <div className="col text-center">
  31. <CustomizeLayoutOption
  32. layoutType="kibela"
  33. isSelected={adminCustomizeContainer.state.currentLayout === 'kibela'}
  34. onSelected={() => adminCustomizeContainer.switchLayoutType('kibela')}
  35. labelHtml="Kibela like layout"
  36. >
  37. <h4>{t('admin:customize_setting.layout_desc.kibela_title')}</h4>
  38. <div className="text-justify d-inline-block">
  39. <ul>
  40. <li>{t('admin:customize_setting.layout_desc.kibela_text1')}</li>
  41. <li>{t('admin:customize_setting.layout_desc.kibela_text2')}</li>
  42. <li>{t('admin:customize_setting.layout_desc.kibela_text3')}</li>
  43. </ul>
  44. </div>
  45. </CustomizeLayoutOption>
  46. </div>
  47. </div>
  48. );
  49. }
  50. }
  51. const CustomizeLayoutOptionsWrapper = withUnstatedContainers(CustomizeLayoutOptions, [AppContainer, AdminCustomizeContainer]);
  52. CustomizeLayoutOptions.propTypes = {
  53. t: PropTypes.func.isRequired, // i18next
  54. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  55. adminCustomizeContainer: PropTypes.instanceOf(AdminCustomizeContainer).isRequired,
  56. };
  57. export default withTranslation()(CustomizeLayoutOptionsWrapper);