diff --git a/app/src/emoji/index.ts b/app/src/emoji/index.ts index 2579d0935..840ee3683 100644 --- a/app/src/emoji/index.ts +++ b/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 + }); +} diff --git a/app/src/index.ts b/app/src/index.ts index 0bcd88cf5..7bb3f5078 100644 --- a/app/src/index.ts +++ b/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); diff --git a/app/src/mobile/util/onMessage.ts b/app/src/mobile/util/onMessage.ts index 60a58564a..281d700fe 100644 --- a/app/src/mobile/util/onMessage.ts +++ b/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); diff --git a/app/src/window/index.ts b/app/src/window/index.ts index 71171140c..76fe89bd2 100644 --- a/app/src/window/index.ts +++ b/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);