Customize.jsx 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import React, { Fragment } from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. import AppContainer from '../../../services/AppContainer';
  5. import AdminCustomizeContainer from '../../../services/AdminCustomizeContainer';
  6. import { createSubscribedElement } from '../../UnstatedUtils';
  7. import { toastError } from '../../../util/apiNotification';
  8. import CustomizeLayoutSetting from './CustomizeLayoutSetting';
  9. import CustomizeBehaviorSetting from './CustomizeBehaviorSetting';
  10. import CustomizeFunctionSetting from './CustomizeFunctionSetting';
  11. import CustomizeHighlightSetting from './CustomizeHighlightSetting';
  12. import CustomizeCssSetting from './CustomizeCssSetting';
  13. import CustomizeScriptSetting from './CustomizeScriptSetting';
  14. import CustomizeHeaderSetting from './CustomizeHeaderSetting';
  15. import CustomizeTitle from './CustomizeTitle';
  16. class Customize extends React.Component {
  17. constructor(props) {
  18. super(props);
  19. this.state = {
  20. isRetrieving: true,
  21. };
  22. }
  23. async componentDidMount() {
  24. const { adminCustomizeContainer } = this.props;
  25. try {
  26. await adminCustomizeContainer.retrieveCustomizeData();
  27. this.setState({ isRetrieving: false });
  28. }
  29. catch (err) {
  30. toastError(err);
  31. }
  32. }
  33. render() {
  34. if (this.state.isRetrieving) {
  35. return null;
  36. }
  37. return (
  38. <Fragment>
  39. <div className="mb-5">
  40. <CustomizeLayoutSetting />
  41. </div>
  42. <div className="mb-5">
  43. <CustomizeBehaviorSetting />
  44. </div>
  45. <div className="mb-5">
  46. <CustomizeFunctionSetting />
  47. </div>
  48. <div className="mb-5">
  49. <CustomizeHighlightSetting />
  50. </div>
  51. <div className="mb-5">
  52. <CustomizeTitle />
  53. </div>
  54. <div className="mb-5">
  55. <CustomizeHeaderSetting />
  56. </div>
  57. <div className="mb-5">
  58. <CustomizeCssSetting />
  59. </div>
  60. <div className="mb-5">
  61. <CustomizeScriptSetting />
  62. </div>
  63. </Fragment>
  64. );
  65. }
  66. }
  67. const CustomizeWrapper = (props) => {
  68. return createSubscribedElement(Customize, props, [AppContainer, AdminCustomizeContainer]);
  69. };
  70. Customize.propTypes = {
  71. t: PropTypes.func.isRequired, // i18next
  72. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  73. adminCustomizeContainer: PropTypes.instanceOf(AdminCustomizeContainer).isRequired,
  74. };
  75. export default withTranslation()(CustomizeWrapper);