import React, { useState, useCallback, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { Card, CardBody } from 'reactstrap'; import { toastSuccess, toastError } from '~/client/util/apiNotification'; import { apiv3Get, apiv3Put } from '~/client/util/apiv3-client'; import { isDarkMode as isDarkModeByUtil } from '~/client/util/color-scheme'; const CustomizeSidebarsetting = (): JSX.Element => { const { t } = useTranslation(); const [isDrawerMode, setIsDrawerMode] = useState(false); const [isDefaultClosedAtDockMode, setIsDefaultClosedAtDockMode] = useState(false); const [retrieveError, setRetrieveError] = useState(); const isDarkMode = isDarkModeByUtil(); const colorText = isDarkMode ? 'dark' : 'light'; const drawerIconFileName = `/images/customize-settings/drawer-${colorText}.svg`; const dockIconFileName = `/images/customize-settings/dock-${colorText}.svg`; const retrieveData = useCallback(async() => { try { const resSidebar = await apiv3Get('/customize-setting/sidebar'); setIsDrawerMode(resSidebar.data.isDrawerMode); const resIsClosed = await apiv3Get('/customize-setting/isSidebarClosedAtDockMode'); setIsDefaultClosedAtDockMode(resIsClosed.data.isSidebarClosedAtDockMode); } catch (err) { setRetrieveError(err); toastError(err); } }, []); const onClickSubmit = async() => { try { await apiv3Put('/customize-setting/sidebar', { isDrawerMode }); await apiv3Put('/customize-setting/isSidebarClosedAtDockMode', { isDefaultClosedAtDockMode }); // TODO: 文言を考えて追加する toastSuccess(t('toaster.update_successed', { target: t('admin:customize_setting.layout') })); retrieveData(); } catch (err) { toastError(err); } }; useEffect(() => { retrieveData(); }, [retrieveData]); return (

{t('admin:customize_setting.default_sidebar_mode.title')}

{t('admin:customize_setting.default_sidebar_mode.desc')}
setIsDrawerMode(true)} role="button" >
Drawer Mode
setIsDrawerMode(false)} role="button" >
Dock Mode
{t('admin:customize_setting.default_sidebar_mode.dock_mode_default_desc')}
{ setIsDefaultClosedAtDockMode(false) }} />
{ setIsDefaultClosedAtDockMode(true) }} />
); }; export default CustomizeSidebarsetting;