33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
export default {
|
|
props: {
|
|
requireEscapeHold: Boolean,
|
|
},
|
|
mounted() {
|
|
document.addEventListener("fullscreenchange", this.handleFullscreenChange);
|
|
document.addEventListener("mozfullscreenchange", this.handleFullscreenChange);
|
|
document.addEventListener("webkitfullscreenchange", this.handleFullscreenChange);
|
|
document.addEventListener("msfullscreenchange", this.handleFullscreenChange);
|
|
},
|
|
unmounted() {
|
|
document.removeEventListener("fullscreenchange", this.handleFullscreenChange);
|
|
document.removeEventListener("mozfullscreenchange", this.handleFullscreenChange);
|
|
document.removeEventListener("webkitfullscreenchange", this.handleFullscreenChange);
|
|
document.removeEventListener("msfullscreenchange", this.handleFullscreenChange);
|
|
},
|
|
methods: {
|
|
handleFullscreenChange() {
|
|
this.$emit("update:model-value", Quasar.AppFullscreen.isActive);
|
|
},
|
|
enter() {
|
|
Quasar.AppFullscreen.request().then(() => {
|
|
if (this.requireEscapeHold && navigator.keyboard && typeof navigator.keyboard.lock === "function") {
|
|
navigator.keyboard.lock(["Escape"]);
|
|
}
|
|
});
|
|
},
|
|
exit() {
|
|
Quasar.AppFullscreen.exit();
|
|
},
|
|
},
|
|
};
|