feat: add ESC key support to close all modals and fullscreen modes
This commit is contained in:
@@ -377,11 +377,18 @@ watch(scannedCodes, (newVal) => {
|
||||
localStorage.setItem('qr-history', JSON.stringify(newVal))
|
||||
}, { deep: true })
|
||||
|
||||
const handleKeydown = (e) => {
|
||||
if (e.key === 'Escape' && isFullscreen.value) {
|
||||
toggleFullscreen()
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
checkCameras()
|
||||
loadHistory()
|
||||
window.addEventListener('resize', updateVideoAspect)
|
||||
window.addEventListener('resize', startBackgroundLoop)
|
||||
window.addEventListener('keydown', handleKeydown)
|
||||
watch(isFullscreen, (fs) => {
|
||||
if (fs) {
|
||||
startBackgroundLoop()
|
||||
@@ -389,13 +396,14 @@ onMounted(() => {
|
||||
stopBackgroundLoop()
|
||||
}
|
||||
}, { immediate: true })
|
||||
|
||||
|
||||
startScan()
|
||||
})
|
||||
|
||||
onUnmounted(() => {
|
||||
window.removeEventListener('resize', updateVideoAspect)
|
||||
window.removeEventListener('resize', startBackgroundLoop)
|
||||
window.removeEventListener('keydown', handleKeydown)
|
||||
stopScan()
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user