import React, { useCallback, useEffect, useState } from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import AppContainer from '../../../services/AppContainer'; import { toastSuccess, toastError } from '../../../util/apiNotification'; import { isDarkMode as isDarkModeByUtil } from '../../../util/color-scheme'; const isDarkMode = isDarkModeByUtil(); const colorText = isDarkMode ? 'dark' : 'light'; const CustomizeLayoutSetting = (props) => { const { t, appContainer } = props; const [isContainerFluid, setIsContainerFluid] = useState(false); const [retrieveError, setRetrieveError] = useState(); const retrieveData = useCallback(async() => { try { const res = await appContainer.apiv3Get('/customize-setting/layout'); setIsContainerFluid(res.data.isContainerFluid); } catch (err) { setRetrieveError(err); toastError(err); } }, [appContainer]); useEffect(() => { retrieveData(); }, [retrieveData]); const onClickSubmit = async() => { try { await appContainer.apiv3Put('/customize-setting/layout', { isContainerFluid }); toastSuccess(t('toaster.update_successed', { target: t('admin:customize_setting.layout') })); retrieveData(); } catch (err) { toastError(err); } }; return (

{t('admin:customize_setting.layout')}

setIsContainerFluid(false)} role="button" >
{t('admin:customize_setting.layout_options.default')}
setIsContainerFluid(true)} role="button" >
{t('admin:customize_setting.layout_options.expanded')}
); }; CustomizeLayoutSetting.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, }; export default withTranslation()(CustomizeLayoutSetting);