vuux
Version:
Vue3 Nuxt3 Nuxt4 组件库
2 lines (1 loc) • 891 B
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),t=require("../utils.cjs"),h=(a,n,s)=>{const{modelValue:o,mode:i}=l.toRefs(a),u=l.ref(!1),m=e=>{n.value&&(e?t.launchNormalFullscreen(n.value,a):t.exitNormalFullscreen(n.value))},v=async e=>{n.value&&(e?await t.launchImmersiveFullScreen(n.value):u.value||await t.exitImmersiveFullScreen(document))},r=async e=>{i.value==="immersive"?await v(e):m(e)},c=()=>{document.fullscreenElement?u.value=!1:(s("update:modelValue",!1),u.value=!0)},d=e=>{e.key==="Escape"&&o.value&&s("update:modelValue",!1)};return l.watch(o,e=>{r(e)}),l.onMounted(()=>{document.addEventListener("keydown",d),document.addEventListener("fullscreenchange",c)}),l.onUnmounted(()=>{document.removeEventListener("keydown",d),document.removeEventListener("fullscreenchange",c)}),{handleFullscreen:r}};exports.useFullscreen=h;