Procházet zdrojové kódy

fixed handling when db is empty

kaori před 4 roky
rodič
revize
b92696625c

+ 7 - 6
packages/app/src/components/Me/EditorSettings.tsx

@@ -155,7 +155,7 @@ const RuleListGroup: FC<RuleListGroupProps> = ({
   const { t } = useTranslation();
 
   const isCheckedRule = (ruleName: string) => (
-    textlintRules?.find(stateRule => (
+    textlintRules.find(stateRule => (
       stateRule.name === ruleName
     ))?.isEnabled || false
   );
@@ -201,7 +201,7 @@ const RuleListGroup: FC<RuleListGroupProps> = ({
 RuleListGroup.propTypes = {
   title: PropTypes.string.isRequired,
   ruleList: PropTypes.array.isRequired,
-  textlintRules: PropTypes.array,
+  textlintRules: PropTypes.array.isRequired,
   setTextlintRules: PropTypes.func.isRequired,
 };
 
@@ -214,9 +214,13 @@ const EditorSettingsBody: FC<EditorSettingsBodyProps> = (props) => {
   const initializeEditorSettings = useCallback(async() => {
     const { data } = await appContainer.apiv3Get('/personal-setting/editor-settings');
     const retrievedRules: LintRule[] = data?.textlintSettings?.textlintRules;
+    console.log('data', data);
 
     // If database is empty, add default rules to state
-    if (retrievedRules != null && retrievedRules.length > 0) {
+    if (retrievedRules == null && retrievedRules.length > 0) {
+      setTextlintRules(retrievedRules);
+    }
+    else {
       const createRulesFromDefaultList = (rule: { name: string }) => (
         {
           name: rule.name,
@@ -228,9 +232,6 @@ const EditorSettingsBody: FC<EditorSettingsBodyProps> = (props) => {
       const defaultJapaneseRules = japaneseRulesMenuItems.map(rule => createRulesFromDefaultList(rule));
       setTextlintRules([...defaultCommonRules, ...defaultJapaneseRules]);
     }
-    else {
-      setTextlintRules(retrievedRules);
-    }
 
   }, [appContainer]);