update
This commit is contained in:
@@ -348,21 +348,32 @@ function onWindowKey(e) {
|
||||
onMounted(() => {
|
||||
if (props.mode !== 'full') return // Trigger-Modus (Liste): nur Tab-Leiste, keine Prüfungs-/Text-Logik
|
||||
window.addEventListener('keydown', onWindowKey)
|
||||
window.addEventListener('keydown', onPruefKey)
|
||||
// Direkt im Fokus geöffneter Vertiefung-/Amateur-Tab: Text laden (sonst nur via toggle).
|
||||
if (activeTab.value === 'vertiefung' || activeTab.value === 'deepdive') openText(activeTab.value)
|
||||
})
|
||||
onUnmounted(() => window.removeEventListener('keydown', onWindowKey))
|
||||
onUnmounted(() => {
|
||||
window.removeEventListener('keydown', onWindowKey)
|
||||
window.removeEventListener('keydown', onPruefKey)
|
||||
})
|
||||
|
||||
// ALT+1 Nachfragen/Nachhaken · ALT+2 primär (Antwort abgeben / Nächste Frage)
|
||||
// ALT+3 Verlauf bewerten (frage_offen, nach Diskussion) bzw. Gründlich prüfen (bewertet).
|
||||
// ALT+1 Nachfragen/Nachhaken · ALT+2 primärer Button je Phase (idle: Frage anfordern,
|
||||
// frage_offen: Antwort abgeben, bewertet: Nächste Frage) · ALT+3 Verlauf bewerten / Gründlich.
|
||||
// window-Listener (nicht div), damit es auch ohne Fokus im Feld greift + den Browser-Default
|
||||
// (Tab-Wechsel) unterdrückt. Nur im Prüfungs-Tab.
|
||||
function onPruefKey(e) {
|
||||
if (!e.altKey || e.repeat) return
|
||||
if (e.key === '1') { e.preventDefault(); nachfragen() }
|
||||
else if (e.key === '2') {
|
||||
if (props.mode !== 'full' || activeTab.value !== 'pruefung') return
|
||||
if (!['1', '2', '3'].includes(e.key)) return
|
||||
e.preventDefault()
|
||||
pruefPhase.value === 'frage_offen' ? antwortAbgeben() : naechsteFrageZeigen()
|
||||
if (pruefLoading.value) return
|
||||
if (e.key === '1') {
|
||||
if (pruefPhase.value !== 'idle' && pruefInput.value.trim()) nachfragen()
|
||||
} else if (e.key === '2') {
|
||||
if (pruefPhase.value === 'idle') frageAnfordern()
|
||||
else if (pruefPhase.value === 'frage_offen') { if (pruefInput.value.trim()) antwortAbgeben() }
|
||||
else naechsteFrageZeigen()
|
||||
} else if (e.key === '3') {
|
||||
e.preventDefault()
|
||||
if (pruefPhase.value === 'bewertet') gruendlichPruefen()
|
||||
else if (pruefPhase.value === 'frage_offen' && hatDiskussion.value) verlaufBewerten()
|
||||
}
|
||||
@@ -434,7 +445,7 @@ function onPruefKey(e) {
|
||||
</div>
|
||||
|
||||
<!-- Prüfung: gesteuerter Dialog -->
|
||||
<div v-else @keydown="onPruefKey">
|
||||
<div v-else>
|
||||
<p class="bp-hint">
|
||||
<template v-if="st.gemeistert">✓✓✓ Gemeistert ({{ MEISTERN }}/{{ MEISTERN }}) — Max. Du kannst dich weiter prüfen, ohne Punkte.</template>
|
||||
<template v-else-if="st.verstanden && tier3">Meisterpfad: {{ st.gute_antworten }}/{{ MEISTERN }}. Richtig = +1, falsch = −2 (nicht unter {{ MAX }}). Bei {{ MEISTERN }} gemeistert.</template>
|
||||
|
||||
Reference in New Issue
Block a user