Browse Source

:bug: 在函数中使用了hook

visuddhinanda 3 years ago
parent
commit
f358a15fa1

+ 13 - 6
dashboard/src/components/auth/setting/SettingArticle.tsx

@@ -1,22 +1,29 @@
 import { Divider } from "antd";
 import { Divider } from "antd";
+import { useAppSelector } from "../../../hooks";
+import { settingInfo } from "../../../reducers/setting";
 
 
 import { SettingFind } from "./default";
 import { SettingFind } from "./default";
 import SettingItem from "./SettingItem";
 import SettingItem from "./SettingItem";
 
 
 const SettingArticleWidget = () => {
 const SettingArticleWidget = () => {
+  const settings = useAppSelector(settingInfo);
   return (
   return (
     <div>
     <div>
       <Divider>阅读</Divider>
       <Divider>阅读</Divider>
-      <SettingItem data={SettingFind("setting.display.original")} />
-      <SettingItem data={SettingFind("setting.layout.direction")} />
-      <SettingItem data={SettingFind("setting.layout.paragraph")} />
-      <SettingItem data={SettingFind("setting.pali.script.primary")} />
-      <SettingItem data={SettingFind("setting.pali.script.secondary")} />
+      <SettingItem data={SettingFind("setting.display.original", settings)} />
+      <SettingItem data={SettingFind("setting.layout.direction", settings)} />
+      <SettingItem data={SettingFind("setting.layout.paragraph", settings)} />
+      <SettingItem
+        data={SettingFind("setting.pali.script.primary", settings)}
+      />
+      <SettingItem
+        data={SettingFind("setting.pali.script.secondary", settings)}
+      />
       <Divider>翻译</Divider>
       <Divider>翻译</Divider>
 
 
       <Divider>逐词解析</Divider>
       <Divider>逐词解析</Divider>
       <Divider>字典</Divider>
       <Divider>字典</Divider>
-      <SettingItem data={SettingFind("setting.dict.lang")} />
+      <SettingItem data={SettingFind("setting.dict.lang", settings)} />
     </div>
     </div>
   );
   );
 };
 };

+ 7 - 5
dashboard/src/components/auth/setting/default.ts

@@ -25,17 +25,19 @@ export const GetUserSetting = (
   if (typeof currSetting !== "undefined") {
   if (typeof currSetting !== "undefined") {
     return currSetting.value;
     return currSetting.value;
   } else {
   } else {
-    const defaultSetting = SettingFind(key);
-    if (typeof defaultSetting !== "undefined") {
-      return defaultSetting.defaultValue;
+    const _default = defaultSetting.find((element) => element.key === key);
+    if (typeof _default !== "undefined") {
+      return _default.defaultValue;
     } else {
     } else {
       return undefined;
       return undefined;
     }
     }
   }
   }
 };
 };
 
 
-export const SettingFind = (key: string): ISetting | undefined => {
-  const settings = useAppSelector(settingInfo);
+export const SettingFind = (
+  key: string,
+  settings?: ISettingItem[]
+): ISetting | undefined => {
   const userSetting = GetUserSetting(key, settings);
   const userSetting = GetUserSetting(key, settings);
   let result = defaultSetting.find((element) => element.key === key);
   let result = defaultSetting.find((element) => element.key === key);
   if (userSetting && result) {
   if (userSetting && result) {