Skip to content

Commit d561a9c

Browse files
committed
fix(useFullscreen): isFullscreen reactivity, close #293
1 parent 7f6ec04 commit d561a9c

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

packages/core/useFullscreen/demo.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { ref } from 'vue-demi'
33
import { useFullscreen } from '.'
44
55
const el = ref(null)
6-
const { toggle } = useFullscreen(el)
6+
const { toggle, isFullscreen } = useFullscreen(el)
77
</script>
88

99
<template>

packages/core/useFullscreen/index.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import { MaybeRef } from '@vueuse/shared'
44
import { ref } from 'vue-demi'
5+
import { useEventListener } from '../useEventListener'
56
import { ConfigurableDocument, defaultDocument } from '../_configurable'
67

78
type FunctionMap = [
@@ -75,7 +76,7 @@ export function useFullscreen(
7576
const isFullscreen = ref(false)
7677
let isSupported = false
7778

78-
let map: FunctionMap
79+
let map: FunctionMap = functionsMap[0]
7980

8081
if (!document) {
8182
isSupported = false
@@ -90,11 +91,13 @@ export function useFullscreen(
9091
}
9192
}
9293

94+
const [REQUEST, EXIT, ELEMENT, _, EVENT] = map
95+
9396
async function exit() {
9497
if (!isSupported)
9598
return
96-
if (document?.[map[2]]) // fullscreenElement
97-
await document[map[1]]() // exit
99+
if (document?.[ELEMENT])
100+
await document[EXIT]()
98101

99102
isFullscreen.value = false
100103
}
@@ -106,7 +109,7 @@ export function useFullscreen(
106109
await exit()
107110

108111
if (targetRef.value) {
109-
await targetRef.value![map[0]]() // requestFullScreen
112+
await targetRef.value[REQUEST]()
110113
isFullscreen.value = true
111114
}
112115
}
@@ -118,6 +121,12 @@ export function useFullscreen(
118121
await enter()
119122
}
120123

124+
if (document) {
125+
useEventListener(document, EVENT, () => {
126+
isFullscreen.value = !!document?.[ELEMENT]
127+
}, false)
128+
}
129+
121130
return {
122131
isSupported,
123132
isFullscreen,

0 commit comments

Comments
 (0)