MarkDownSettingContainer.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { Container } from 'unstated';
  2. /**
  3. * Service container for admin markdown setting page (MarkDownSetting.jsx)
  4. * @extends {Container} unstated Container
  5. */
  6. export default class MarkDownSettingContainer extends Container {
  7. constructor(appContainer) {
  8. super();
  9. this.appContainer = appContainer;
  10. this.state = {
  11. isEnabledXss: (appContainer.config.xssOption != null),
  12. xssOption: appContainer.config.xssOption,
  13. tagWhiteList: appContainer.config.tagWhiteList || '',
  14. attrWhiteList: appContainer.config.attrWhiteList || '',
  15. };
  16. this.onChangeEnableXss = this.onChangeEnableXss.bind(this);
  17. }
  18. /**
  19. * Workaround for the mangling in production build to break constructor.name
  20. */
  21. static getClassName() {
  22. return 'MarkDownSettingContainer';
  23. }
  24. /**
  25. * Switch enableXss
  26. */
  27. onChangeEnableXss() {
  28. this.setState({ isEnabledXss: !this.state.isEnabledXss });
  29. }
  30. /**
  31. * Change whiteListValue
  32. * @param {value} string
  33. */
  34. onChangeTagWhiteList(value) {
  35. this.setState({ tagWhiteList: value });
  36. }
  37. /**
  38. * Change whiteListValue
  39. * @param {value} string
  40. */
  41. onChangeAttrWhiteList(value) {
  42. this.setState({ attrWhiteList: value });
  43. }
  44. }