import React, { type JSX, 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 ContentDispositionSettings from './ContentDispositionSettings'; 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 (