Browse Source

:art: fix https://github.com/siyuan-note/siyuan/issues/12241

Vanessa 10 months ago
parent
commit
0ac17d30f7
4 changed files with 42 additions and 13 deletions
  1. 29 2
      app/src/emoji/index.ts
  2. 2 3
      app/src/index.ts
  3. 9 5
      app/src/mobile/util/onMessage.ts
  4. 2 3
      app/src/window/index.ts

+ 29 - 2
app/src/emoji/index.ts

@@ -5,7 +5,7 @@ import {Constants} from "../constants";
 import {Files} from "../layout/dock/Files";
 /// #if !MOBILE
 import {getDockByType} from "../layout/tabUtil";
-import {getAllModels} from "../layout/getAll";
+import {getAllEditor, getAllModels} from "../layout/getAll";
 /// #endif
 import {setNoteBook} from "../util/pathName";
 import {Dialog} from "../dialog";
@@ -520,7 +520,6 @@ export const getEmojiDesc = (emoji: IEmojiItem) => {
     return emoji.description;
 };
 
-
 export const getEmojiTitle = (index: number) => {
     if (window.siyuan.config.lang === "zh_CN") {
         return window.siyuan.emojis[index].title_zh_cn;
@@ -530,3 +529,31 @@ export const getEmojiTitle = (index: number) => {
     }
     return window.siyuan.emojis[index].title;
 };
+
+const putEmojis = (protyle: IProtyle) => {
+    if (window.siyuan.emojis[0].items.length > 0) {
+        const emojis: IObject = {};
+        window.siyuan.emojis[0].items.forEach(emojiITem => {
+            emojis[emojiITem.keywords] = protyle.options.hint.emojiPath + "/" + emojiITem.unicode;
+        });
+        protyle.lute.PutEmojis(emojis);
+    }
+};
+
+export const reloadEmoji = () => {
+    fetchPost("/api/system/getEmojiConf", {}, response => {
+        window.siyuan.emojis = response.data as IEmoji[];
+        /// #if MOBILE
+        if (window.siyuan.mobile.editor) {
+            putEmojis(window.siyuan.mobile.editor.protyle);
+        }
+        if (window.siyuan.mobile.popEditor) {
+            putEmojis(window.siyuan.mobile.popEditor.protyle);
+        }
+        /// #else
+        getAllEditor().forEach(item => {
+            putEmojis(item.protyle);
+        });
+        /// #endif
+    });
+}

+ 2 - 3
app/src/index.ts

@@ -28,6 +28,7 @@ import {getSearch} from "./util/functions";
 import {hideAllElements} from "./protyle/ui/hideElements";
 import {loadPlugins, reloadPlugin} from "./plugin/loader";
 import "./assets/scss/base.scss";
+import {reloadEmoji} from "./emoji";
 
 export class App {
     public plugins: import("./plugin").Plugin[] = [];
@@ -64,9 +65,7 @@ export class App {
                                 reloadPlugin(this, data.data);
                                 break;
                             case "reloadEmojiConf":
-                                fetchPost("/api/system/getEmojiConf", {}, response => {
-                                    window.siyuan.emojis = response.data as IEmoji[];
-                                });
+                                reloadEmoji();
                                 break;
                             case "syncMergeResult":
                                 reloadSync(this, data.data);

+ 9 - 5
app/src/mobile/util/onMessage.ts

@@ -1,9 +1,15 @@
 import {openMobileFileById} from "../editor";
-import {processSync, progressLoading, progressStatus, reloadSync, transactionError} from "../../dialog/processSystem";
+import {
+    processSync,
+    progressLoading,
+    progressStatus,
+    reloadSync,
+    transactionError
+} from "../../dialog/processSystem";
 import {Constants} from "../../constants";
 import {App} from "../../index";
 import {reloadPlugin} from "../../plugin/loader";
-import {fetchPost} from "../../util/fetch";
+import {reloadEmoji} from "../../emoji";
 
 export const onMessage = (app: App, data: IWebSocketData) => {
     if (data) {
@@ -12,9 +18,7 @@ export const onMessage = (app: App, data: IWebSocketData) => {
                 reloadPlugin(app, data.data);
                 break;
             case "reloadEmojiConf":
-                fetchPost("/api/system/getEmojiConf", {}, response => {
-                    window.siyuan.emojis = response.data as IEmoji[];
-                });
+                reloadEmoji();
                 break;
             case "syncMergeResult":
                 reloadSync(app, data.data);

+ 2 - 3
app/src/window/index.ts

@@ -21,6 +21,7 @@ import {getLocalStorage} from "../protyle/util/compatibility";
 import {init} from "../window/init";
 import {loadPlugins, reloadPlugin} from "../plugin/loader";
 import {hideAllElements} from "../protyle/ui/hideElements";
+import {reloadEmoji} from "../emoji";
 
 class App {
     public plugins: import("../plugin").Plugin[] = [];
@@ -53,9 +54,7 @@ class App {
                                 reloadPlugin(this, data.data);
                                 break;
                             case "reloadEmojiConf":
-                                fetchPost("/api/system/getEmojiConf", {}, response => {
-                                    window.siyuan.emojis = response.data as IEmoji[];
-                                });
+                                reloadEmoji();
                                 break;
                             case "reloaddoc":
                                 reloadSync(this, {upsertRootIDs: [data.data], removeRootIDs: []}, false, false);