mirror of
https://github.com/purocean/yn.git
synced 2026-09-24 15:46:02 +08:00
fix: memory leak
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { omit } from 'lodash-es'
|
||||
import frontMatter from 'front-matter'
|
||||
import type { Plugin } from '@fe/context'
|
||||
import type { Doc } from '@fe/types'
|
||||
import type { Doc, RenderEnv } from '@fe/types'
|
||||
import type { MenuItem } from '@fe/services/status-bar'
|
||||
import { render } from '@fe/services/view'
|
||||
import { t } from '@fe/services/i18n'
|
||||
@@ -310,29 +310,34 @@ export default {
|
||||
})
|
||||
})
|
||||
|
||||
ctx.registerHook('VIEW_RENDERED', ({ renderEnv }) => {
|
||||
ctx.statusBar.tapMenus(menus => {
|
||||
const list = menus['status-bar-tool']?.list
|
||||
if (list) {
|
||||
const id = 'plugin.markdown-macro.copy-markdown'
|
||||
const menu: MenuItem = {
|
||||
id,
|
||||
type: 'normal',
|
||||
hidden: !renderEnv?.attributes?.enableMacro,
|
||||
title: ctx.i18n.t('status-bar.tool.macro-copy-markdown'),
|
||||
onClick: () => {
|
||||
ctx.utils.copyText(renderEnv?.source)
|
||||
}
|
||||
}
|
||||
let env: RenderEnv | null = null
|
||||
|
||||
const item = list.find(x => x.id === id)
|
||||
if (item) {
|
||||
Object.assign(item, menu)
|
||||
} else {
|
||||
list.push(menu)
|
||||
ctx.statusBar.tapMenus(menus => {
|
||||
const list = menus['status-bar-tool']?.list
|
||||
if (list) {
|
||||
const id = 'plugin.markdown-macro.copy-markdown'
|
||||
const menu: MenuItem = {
|
||||
id,
|
||||
type: 'normal',
|
||||
hidden: !env?.attributes?.enableMacro,
|
||||
title: ctx.i18n.t('status-bar.tool.macro-copy-markdown'),
|
||||
onClick: () => {
|
||||
ctx.utils.copyText(env?.source)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
const item = list.find(x => x.id === id)
|
||||
if (item) {
|
||||
Object.assign(item, menu)
|
||||
} else {
|
||||
list.push(menu)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
ctx.registerHook('VIEW_RENDERED', ({ renderEnv }) => {
|
||||
env = renderEnv
|
||||
ctx.statusBar.refreshMenu()
|
||||
})
|
||||
}
|
||||
} as Plugin
|
||||
|
||||
@@ -224,6 +224,7 @@ const MindMap = defineComponent({
|
||||
|
||||
registerHook('I18N_CHANGE_LANGUAGE', renderMindMap)
|
||||
onBeforeUnmount(() => {
|
||||
km && km.destroy()
|
||||
removeHook('I18N_CHANGE_LANGUAGE', renderMindMap)
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user