import React from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import { createSubscribedElement } from '../../UnstatedUtils'; import { toastSuccess, toastError } from '../../../util/apiNotification'; import AppContainer from '../../../services/AppContainer'; class LineBreakSetting extends React.Component { constructor(props) { super(props); const { appContainer } = this.props; this.state = { isEnabledLinebreaks: appContainer.config.isEnabledLinebreaks, isEnabledLinebreaksInComments: appContainer.config.isEnabledLinebreaksInComments, }; this.handleInputChange = this.handleInputChange.bind(this); this.changeLineBreakSetting = this.changeLineBreakSetting.bind(this); } handleInputChange(e) { const target = e.target; const value = target.type === 'checkbox' ? target.checked : target.value; const name = target.name; this.setState({ [name]: value }); } async changeLineBreakSetting () { const { appContainer } = this.props; const params = { isEnabledLinebreaks: this.state.isEnabledLinebreaks, isEnabledLinebreaksInComments: this.state.isEnabledLinebreaksInComments, }; try { await appContainer.apiPost('/admin/markdown/lineBreaksSetting', { params }); toastSuccess('Success change line braek setting'); } catch (err) { toastError(err); } } render() { const { t } = this.props; return (
{ t('markdown_setting.line_break_setting') }

{ t('markdown_setting.line_break_setting_desc') }

{ t('markdown_setting.Enable Line Break desc') }

{ t('markdown_setting.Enable Line Break for comment desc') }

); } } /** * Wrapper component for using unstated */ const LineBreakSettingWrapper = (props) => { return createSubscribedElement(LineBreakSetting, props, [AppContainer]); }; LineBreakSetting.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, }; export default withTranslation()(LineBreakSettingWrapper);