diff --git a/components.d.ts b/components.d.ts index 36a5f7e3..d8d439b6 100644 --- a/components.d.ts +++ b/components.d.ts @@ -32,6 +32,7 @@ declare module 'vue' { IconWrapper: typeof import('./src/components/IconWrapper.vue')['default'] MiniModal: typeof import('./src/components/MiniModal.vue')['default'] Modal: typeof import('./src/components/Modal/Modal.vue')['default'] + NewModal: typeof import('./src/components/Modal/NewModal.vue')['default'] PopConfirm: typeof import('./src/components/PopConfirm.vue')['default'] Practice: typeof import('./src/components/Practice/Practice.vue')['default'] RepeatSetting: typeof import('./src/components/Toolbar/RepeatSetting.vue')['default'] diff --git a/src/App.vue b/src/App.vue index c5a0af85..bd9ac5b1 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,8 +5,13 @@ import {useBaseStore} from "@/stores/base.ts"; import {SaveKey} from "@/types.ts" import Practice from "@/components/Practice/Practice.vue" import AddArticle from "@/components/Practice/AddArticle.vue"; +import {useEventListener, useStartKeyboardEventListener} from "@/hooks/event.ts"; +import {emitter, EventKey} from "@/utils/eventBus.ts"; +import {useRuntimeStore} from "@/stores/runtime.ts"; const store = useBaseStore() +const runtimeStore = useRuntimeStore() + // 查询当前系统主题颜色 const match: MediaQueryList = window.matchMedia("(prefers-color-scheme: dark)") // 监听系统主题变化 @@ -22,12 +27,22 @@ watch(store.$state, (n) => { localStorage.setItem(SaveKey, JSON.stringify(n)) }) +useStartKeyboardEventListener() + onMounted(() => { store.init() if (store.theme !== 'auto') { document.documentElement.setAttribute('data-theme', store.theme) } }) + +useEventListener('keyup', (e: KeyboardEvent) => { + if (e.key === 'Escape') { + let lastItem = runtimeStore.modalList.pop() + console.log('la',lastItem) + lastItem && lastItem.close() + } +})