use simpler onClickOutside implementation

pull/3671/head
Divyansh Singh 1 year ago
parent 25495d900a
commit 9ae100a635

@ -1,11 +1,10 @@
<script setup lang="ts">
import { onClickOutside, onKeyStroke } from '@vueuse/core'
import { onKeyStroke } from '@vueuse/core'
import { onContentUpdated } from 'vitepress'
import { nextTick, ref } from 'vue'
import { nextTick, ref, watch } from 'vue'
import { useData } from '../composables/data'
import { resolveTitle, type MenuItem } from '../composables/outline'
import VPDocOutlineItem from './VPDocOutlineItem.vue'
import { watch } from 'vue'
const props = defineProps<{
headers: MenuItem[]
@ -18,12 +17,18 @@ const vh = ref(0)
const main = ref<HTMLDivElement>()
const items = ref<HTMLDivElement>()
watch(open, () => {
if (open.value){
onClickOutside(main, () => {
open.value = false
})
function closeOnClickOutside(e: Event) {
if (!main.value?.contains(e.target as Node)) {
open.value = false
}
}
watch(open, (value) => {
if (value) {
document.addEventListener('click', closeOnClickOutside)
return
}
document.removeEventListener('click', closeOnClickOutside)
})
onKeyStroke('Escape', () => {

Loading…
Cancel
Save