import React, { useCallback, type JSX } from 'react'; import { LoadingSpinner } from '@growi/ui/dist/components'; import { useTranslation } from 'next-i18next'; import { Card, CardBody } from 'reactstrap'; import { toastSuccess, toastError } from '~/client/util/toastr'; import { useNextThemes } from '~/stores-universal/use-next-themes'; import { useSWRxSidebarConfig } from '~/stores/admin/sidebar-config'; const CustomizeSidebarsetting = (): JSX.Element => { const { t } = useTranslation(['admin', 'commons']); const { data, update, setIsSidebarCollapsedMode, setIsSidebarClosedAtDockMode, } = useSWRxSidebarConfig(); const { resolvedTheme } = useNextThemes(); const drawerIconFileName = `/images/customize-settings/drawer-${resolvedTheme}.svg`; const dockIconFileName = `/images/customize-settings/dock-${resolvedTheme}.svg`; const onClickSubmit = useCallback(async() => { try { await update(); toastSuccess(t('toaster.update_successed', { target: t('customize_settings.default_sidebar_mode.title'), ns: 'commons' })); } catch (err) { toastError(err); } }, [t, update]); if (data == null) { return ; } const { isSidebarCollapsedMode, isSidebarClosedAtDockMode } = data; return ( {t('customize_settings.default_sidebar_mode.title')} {t('customize_settings.default_sidebar_mode.desc')} setIsSidebarCollapsedMode(true)} role="button" > {/* eslint-disable-next-line @next/next/no-img-element */} Drawer Mode setIsSidebarCollapsedMode(false)} role="button" > {/* eslint-disable-next-line @next/next/no-img-element */} Dock Mode {t('customize_settings.default_sidebar_mode.dock_mode_default_desc')} setIsSidebarClosedAtDockMode(false)} /> {t('customize_settings.default_sidebar_mode.dock_mode_default_open')} setIsSidebarClosedAtDockMode(true)} /> {t('customize_settings.default_sidebar_mode.dock_mode_default_close')} { t('Update') } ); }; export default CustomizeSidebarsetting;