Просмотр исходного кода

apply isTextlintEnabled in PageEditor

Yuki Takei 3 лет назад
Родитель
Сommit
87d1e6c254

+ 5 - 1
packages/app/src/components/PageEditor.jsx

@@ -11,7 +11,7 @@ import PageContainer from '~/client/services/PageContainer';
 import { apiGet, apiPost } from '~/client/util/apiv1-client';
 import { getOptionsToSave } from '~/client/util/editor';
 import { useIsEditable, useIsIndentSizeForced, useSlackChannels } from '~/stores/context';
-import { useCurrentIndentSize, useIsSlackEnabled } from '~/stores/editor';
+import { useCurrentIndentSize, useIsSlackEnabled, useIsTextlintEnabled } from '~/stores/editor';
 import {
   useEditorMode, useIsMobile, useSelectedGrant, useSelectedGrantGroupId, useSelectedGrantGroupName,
 } from '~/stores/ui';
@@ -340,6 +340,7 @@ class PageEditor extends React.Component {
             isMobile={this.props.isMobile}
             isUploadable={this.state.isUploadable}
             isUploadableFile={this.state.isUploadableFile}
+            isTextlintEnabled={this.props.isTextlintEnabled}
             indentSize={this.props.indentSize}
             onScroll={this.onEditorScroll}
             onScrollCursorIntoView={this.onEditorScrollCursorIntoView}
@@ -387,6 +388,7 @@ PageEditor.propTypes = {
   grantGroupId: PropTypes.string,
   grantGroupName: PropTypes.string,
   mutateGrant: PropTypes.func,
+  isTextlintEnabled: PropTypes.bool,
   isIndentSizeForced: PropTypes.bool,
   indentSize: PropTypes.number,
   mutateCurrentIndentSize: PropTypes.func,
@@ -406,6 +408,7 @@ const PageEditorWrapper = (props) => {
   const { data: grant, mutate: mutateGrant } = useSelectedGrant();
   const { data: grantGroupId } = useSelectedGrantGroupId();
   const { data: grantGroupName } = useSelectedGrantGroupName();
+  const { data: isTextlintEnabled } = useIsTextlintEnabled();
   const { data: isIndentSizeForced } = useIsIndentSizeForced();
   const { data: indentSize, mutate: mutateCurrentIndentSize } = useCurrentIndentSize();
 
@@ -425,6 +428,7 @@ const PageEditorWrapper = (props) => {
       grantGroupId={grantGroupId}
       grantGroupName={grantGroupName}
       mutateGrant={mutateGrant}
+      isTextlintEnabled={isTextlintEnabled}
       isIndentSizeForced={isIndentSizeForced}
       indentSize={indentSize}
       mutateCurrentIndentSize={mutateCurrentIndentSize}

+ 2 - 2
packages/app/src/components/PageEditor/CodeMirrorEditor.jsx

@@ -219,10 +219,10 @@ class CodeMirrorEditor extends AbstractEditor {
       return;
     }
 
-    const textlintRules = editorSettings.textlintSettings.textlintRules;
+    const textlintRules = editorSettings.textlintSettings?.textlintRules;
 
     // If database has empty array, pass null instead to enable all default rules
-    const rulesForValidator = textlintRules?.length !== 0 ? textlintRules : null;
+    const rulesForValidator = (textlintRules == null || textlintRules.length === 0) ? null : textlintRules;
     this.textlintValidator = createValidator(rulesForValidator);
     this.codemirrorLintConfig = { getAnnotations: this.textlintValidator, async: true };
   }

+ 1 - 4
packages/app/src/components/PageEditor/Editor.jsx

@@ -7,7 +7,7 @@ import {
 } from 'reactstrap';
 
 import { useDefaultIndentSize } from '~/stores/context';
-import { useEditorSettings, useIsTextlintEnabled } from '~/stores/editor';
+import { useEditorSettings } from '~/stores/editor';
 
 import AbstractEditor from './AbstractEditor';
 import Cheatsheet from './Cheatsheet';
@@ -375,7 +375,6 @@ Editor.propTypes = Object.assign({
   isMobile: PropTypes.bool,
   isUploadable: PropTypes.bool,
   isUploadableFile: PropTypes.bool,
-  isTextlintEnabled: PropTypes.bool,
   onChange: PropTypes.func,
   onUpload: PropTypes.func,
   editorSettings: PropTypes.object.isRequired,
@@ -385,7 +384,6 @@ Editor.propTypes = Object.assign({
 
 const EditorWrapper = React.forwardRef((props, ref) => {
   const { data: editorSettings } = useEditorSettings();
-  const { data: isTextlintEnabled } = useIsTextlintEnabled();
   const { data: defaultIndentSize } = useDefaultIndentSize();
 
   if (editorSettings == null) {
@@ -396,7 +394,6 @@ const EditorWrapper = React.forwardRef((props, ref) => {
     <Editor
       ref={ref}
       {...props}
-      isTextlintEnabled={isTextlintEnabled}
       editorSettings={editorSettings}
       // eslint-disable-next-line react/prop-types
       indentSize={props.indentSize ?? defaultIndentSize}