UNPKG

@neosjs/vitepress-theme

Version:

NeosJS VitePress theme

29 lines (28 loc) 791 B
import { ref, watch } from "vue"; import { inBrowser, useRoute } from "vitepress"; export function useNav() { const isScreenOpen = ref(false); function openScreen() { isScreenOpen.value = true; inBrowser && window.addEventListener("resize", closeScreenOnTabletWindow); } function closeScreen() { isScreenOpen.value = false; inBrowser && window.removeEventListener("resize", closeScreenOnTabletWindow); } function toggleScreen() { isScreenOpen.value ? closeScreen() : openScreen(); } function closeScreenOnTabletWindow() { if (!inBrowser) return; window.outerWidth >= 768 && closeScreen(); } const route = useRoute(); watch(() => route.path, closeScreen); return { isScreenOpen, openScreen, closeScreen, toggleScreen }; }