Reimpl. escape key handling in frontend

This commit is contained in:
filtered
2025-05-22 13:54:28 -07:00
parent 962834e19c
commit 060540ae80

View File

@@ -11,6 +11,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { useEventListener } from '@vueuse/core'
import Breadcrumb from 'primevue/breadcrumb' import Breadcrumb from 'primevue/breadcrumb'
import type { MenuItem, MenuItemCommandEvent } from 'primevue/menuitem' import type { MenuItem, MenuItemCommandEvent } from 'primevue/menuitem'
import { computed } from 'vue' import { computed } from 'vue'
@@ -52,6 +53,18 @@ const home = computed(() => ({
const handleItemClick = (event: MenuItemCommandEvent) => { const handleItemClick = (event: MenuItemCommandEvent) => {
event.item.command?.(event) event.item.command?.(event)
} }
// Escape exits from the current subgraph.
useEventListener(document, 'keydown', (event) => {
if (event.key === 'Escape') {
const canvas = useCanvasStore().getCanvas()
if (!canvas.graph) throw new TypeError('Canvas has no graph')
canvas.setGraph(
navigationStore.navigationStack.at(-2) ?? canvas.graph.rootGraph
)
}
})
</script> </script>
<style> <style>