diff --git a/src/renderer/components/Setting.vue b/src/renderer/components/Setting.vue index c1367122..3cbac2e3 100644 --- a/src/renderer/components/Setting.vue +++ b/src/renderer/components/Setting.vue @@ -5,7 +5,7 @@
@@ -175,7 +175,8 @@ export default defineComponent({ removeHook('I18N_CHANGE_LANGUAGE', setLanguage) }) - const cancel = () => { + const close = async () => { + await triggerHook('SETTING_PANEL_BEFORE_CLOSE', { editor }, { breakable: true }) emit('close') } @@ -208,7 +209,7 @@ export default defineComponent({ await writeSettings({ ...value }) } - emit('close') + close() } const onClick = async (e: Event) => { @@ -253,13 +254,13 @@ export default defineComponent({ } function showKeyboardShortcuts () { - emit('close') + close() getActionHandler('keyboard-shortcuts.show-manager')() } watch(tab, updateTab) - return { isReady, tab, tabs, show, refEditor, cancel, ok, onClick, showKeyboardShortcuts } + return { isReady, tab, tabs, show, refEditor, close, ok, onClick, showKeyboardShortcuts } }, }) diff --git a/src/renderer/types.ts b/src/renderer/types.ts index 8b260b6b..0d4e672c 100644 --- a/src/renderer/types.ts +++ b/src/renderer/types.ts @@ -530,6 +530,7 @@ export type BuildInHookTypes = { I18N_CHANGE_LANGUAGE: { lang: LanguageName, currentLang: Language }, SETTING_PANEL_BEFORE_SHOW: {}, SETTING_PANEL_AFTER_SHOW: { editor: any }, + SETTING_PANEL_BEFORE_CLOSE: { editor: any }, SETTING_CHANGED: { schema: SettingSchema, changedKeys: (keyof BuildInSettings)[], oldSettings: BuildInSettings, settings: BuildInSettings } SETTING_FETCHED: { settings: BuildInSettings, oldSettings: BuildInSettings }, SETTING_BEFORE_WRITE: { settings: Partial