import React, { Fragment, Suspense } from 'react';
import PropTypes from 'prop-types';
import loggerFactory from '@alias/logger';
import AdminCustomizeContainer from '../../../services/AdminCustomizeContainer';
import { withUnstatedContainers } from '../../UnstatedUtils';
import { toastError } from '../../../util/apiNotification';
import toArrayIfNot from '../../../../../lib/util/toArrayIfNot';
import CustomizeLayoutSetting from './CustomizeLayoutSetting';
import CustomizeFunctionSetting from './CustomizeFunctionSetting';
import CustomizeHighlightSetting from './CustomizeHighlightSetting';
import CustomizeCssSetting from './CustomizeCssSetting';
import CustomizeScriptSetting from './CustomizeScriptSetting';
import CustomizeHeaderSetting from './CustomizeHeaderSetting';
import CustomizeTitle from './CustomizeTitle';
const logger = loggerFactory('growi:services:AdminCustomizePage');
function CustomizePageWithContainerWithSusupense(props) {
return (
)}
>
);
}
let retrieveErrors = null;
function Customize(props) {
const { adminCustomizeContainer } = props;
if (adminCustomizeContainer.state.currentTheme === adminCustomizeContainer.dummyCurrentTheme) {
throw (async() => {
try {
await adminCustomizeContainer.retrieveCustomizeData();
}
catch (err) {
const errs = toArrayIfNot(err);
toastError(errs);
logger.error(errs);
retrieveErrors = errs;
adminCustomizeContainer.setState({ currentTheme: adminCustomizeContainer.dummyCurrentThemeForError });
}
})();
}
if (adminCustomizeContainer.state.currentTheme === adminCustomizeContainer.dummyCurrentThemeForError) {
throw new Error(`${retrieveErrors.length} errors occured`);
}
return (
);
}
const CustomizePageWithUnstatedContainer = withUnstatedContainers(Customize, [AdminCustomizeContainer]);
Customize.propTypes = {
adminCustomizeContainer: PropTypes.instanceOf(AdminCustomizeContainer).isRequired,
};
export default CustomizePageWithContainerWithSusupense;