import React, { useEffect } from 'react'; import { useTranslation } from 'next-i18next'; import { Card, CardBody } from 'reactstrap'; import AdminMarkDownContainer from '~/client/services/AdminMarkDownContainer'; import { toastError } from '~/client/util/toastr'; import { toArrayIfNot } from '~/utils/array-utils'; import loggerFactory from '~/utils/logger'; import { withUnstatedContainers } from '../../UnstatedUtils'; import IndentForm from './IndentForm'; import LineBreakForm from './LineBreakForm'; import XssForm from './XssForm'; const logger = loggerFactory('growi:MarkDown'); type Props ={ adminMarkDownContainer: AdminMarkDownContainer } const MarkDownSettingContents = React.memo((props: Props): JSX.Element => { const { t } = useTranslation('admin'); const { adminMarkDownContainer } = props; useEffect(() => { const fetchMarkdownData = async() => { await adminMarkDownContainer.retrieveMarkdownData(); }; try { fetchMarkdownData(); } catch (err) { const errs = toArrayIfNot(err); toastError(errs); logger.error(errs); } }, [adminMarkDownContainer]); return (
{/* Line Break Setting */}

{t('markdown_settings.lineBreak_header')}

{ t('markdown_settings.lineBreak_desc') } {/* Indent Setting */}

{t('markdown_settings.indent_header')}

{t('markdown_settings.indent_desc') } {/* XSS Setting */}

{ t('markdown_settings.xss_header') }

{ t('markdown_settings.xss_desc') }
); }); MarkDownSettingContents.displayName = 'MarkDownSettingContents'; const MarkdownSettingWithUnstatedContainer = withUnstatedContainers(MarkDownSettingContents, [AdminMarkDownContainer]); export default MarkdownSettingWithUnstatedContainer;