import React, { type JSX, useCallback } from 'react'; import { LoadingSpinner } from '@growi/ui/dist/components'; import { useTranslation } from 'next-i18next'; import { Card, CardBody } from 'reactstrap'; import { toastError, toastSuccess } from '~/client/util/toastr'; import { useSWRxSidebarConfig } from '~/stores/admin/sidebar-config'; import { useNextThemes } from '~/stores-universal/use-next-themes'; const CustomizeSidebarsetting = (): JSX.Element => { const { t } = useTranslation(['admin', 'commons']); const { data, update, setIsSidebarCollapsedMode } = useSWRxSidebarConfig(); const { resolvedTheme } = useNextThemes(); const collapsedIconFileName = `/images/customize-settings/collapsed-${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 } = 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 */} Collapsed Mode setIsSidebarCollapsedMode(false)} role="button" > {/* eslint-disable-next-line @next/next/no-img-element */} Dock Mode {t('Update')} ); }; export default CustomizeSidebarsetting;