/* eslint-disable react/no-danger */ import React, { useCallback } from 'react'; import { useTranslation } from 'next-i18next'; import { UncontrolledDropdown, DropdownToggle, DropdownMenu, DropdownItem, } from 'reactstrap'; import AdminMarkDownContainer from '~/client/services/AdminMarkDownContainer'; import { toastSuccess, toastError } from '~/client/util/toastr'; import loggerFactory from '~/utils/logger'; import { withUnstatedContainers } from '../../UnstatedUtils'; import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow'; const logger = loggerFactory('growi:importer'); type Props = { adminMarkDownContainer: AdminMarkDownContainer; } const IndentForm = (props: Props) => { const { t } = useTranslation('admin'); const onClickSubmit = useCallback(async(props) => { try { await props.adminMarkDownContainer.updateIndentSetting(); toastSuccess(t('toaster.update_successed', { target: t('markdown_settings.indent_header'), ns: 'commons' })); } catch (err) { toastError(err); logger.error(err); } }, [t]); const renderIndentSizeOption = (props) => { const { adminMarkDownContainer } = props; const { adminPreferredIndentSize } = adminMarkDownContainer.state; return (
{adminPreferredIndentSize || 4} {[2, 4].map((num) => { return ( adminMarkDownContainer.setAdminPreferredIndentSize(num)}> {num} ); })}

{t('markdown_settings.indent_options.indentSize_desc')}

); }; const renderIndentForceOption = (props) => { const { adminMarkDownContainer } = props; const { isIndentSizeForced } = adminMarkDownContainer.state; const helpIndentInComment = { __html: t('markdown_settings.indent_options.disallow_indent_change_desc') }; return (
{ adminMarkDownContainer.setState({ isIndentSizeForced: !isIndentSizeForced }); }} />

); }; const { adminMarkDownContainer } = props; return (
{renderIndentSizeOption(props)} {renderIndentForceOption(props)}
onClickSubmit(props)} disabled={adminMarkDownContainer.state.retrieveError != null} />
); }; /** * Wrapper component for using unstated */ const IndentFormWrapper = withUnstatedContainers(IndentForm, [AdminMarkDownContainer]); export default IndentFormWrapper;