diff --git a/frontend/src/components/BausteinFokus.vue b/frontend/src/components/BausteinFokus.vue index 7cf0e77..c08ea83 100644 --- a/frontend/src/components/BausteinFokus.vue +++ b/frontend/src/components/BausteinFokus.vue @@ -15,9 +15,20 @@ const props = defineProps({ fortschritt: { type: Object, default: () => ({ total: 0, absolviert: 0, verstanden: 0, gemeistert: 0 }) }, }) -import { computed } from 'vue' +import { computed, onMounted, onUnmounted } from 'vue' -defineEmits(['close', 'prev', 'next', 'statusChanged']) +const emit = defineEmits(['close', 'prev', 'next', 'statusChanged']) + +// ←/→ blättern zum vorigen/nächsten Baustein — außer beim Tippen in Feldern. +function onKey(e) { + if (e.altKey || e.ctrlKey || e.metaKey) return + const el = document.activeElement + if (el && (el.tagName === 'INPUT' || el.tagName === 'TEXTAREA' || el.isContentEditable)) return + if (e.key === 'ArrowLeft' && props.hasPrev) { e.preventDefault(); emit('prev') } + else if (e.key === 'ArrowRight' && props.hasNext) { e.preventDefault(); emit('next') } +} +onMounted(() => window.addEventListener('keydown', onKey)) +onUnmounted(() => window.removeEventListener('keydown', onKey)) const pct = (n) => (100 * n / (props.fortschritt.total || 1)) + '%' diff --git a/frontend/src/components/BausteinPanel.vue b/frontend/src/components/BausteinPanel.vue index 8fe3d64..99d7985 100644 --- a/frontend/src/components/BausteinPanel.vue +++ b/frontend/src/components/BausteinPanel.vue @@ -1,6 +1,7 @@