Bilibili-Evolved/registry/lib/components/utils/keymap/settings/vm.ts
2021-10-26 13:19:37 +08:00

25 lines
672 B
TypeScript

import { mountVueComponent } from '@/core/utils'
let settingsVM: Vue & {
popupOpen: boolean
triggerElement: HTMLElement
}
export const loadKeymapSettings = async (button?: HTMLElement) => {
if (settingsVM) {
return
}
const KeymapSettings = await import('./KeymapSettings.vue').then(m => m.default)
settingsVM = mountVueComponent(KeymapSettings)
if (button) {
settingsVM.triggerElement = button
}
document.body.insertAdjacentElement('beforeend', settingsVM.$el)
}
export const toggleKeymapSettings = async (button?: HTMLElement) => {
if (!settingsVM) {
await loadKeymapSettings(button)
}
settingsVM.popupOpen = !settingsVM.popupOpen
}