update
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
<script setup>
|
||||
import { computed, nextTick, onMounted, onUnmounted, ref } from 'vue'
|
||||
import { computed, nextTick, onMounted, onUnmounted, ref, watch } from 'vue'
|
||||
import { chatBaustein, createVertiefung, fetchVertiefung, pruefeBaustein } from '../api.js'
|
||||
import { getPruef, setPruef } from '../pruefungCache.js'
|
||||
import { renderMarkdown } from '../markdown.js'
|
||||
import { useChat, istUnten } from '../composables/useChat.js'
|
||||
|
||||
@@ -94,6 +95,30 @@ const streakVorFrage = ref(0) // Streak, als die aktuelle Frage gestellt wurd
|
||||
// Die aktuelle Streak lebt persistent in st.value.streak (DB → props.status, round-trip via applyPruefung).
|
||||
const naechsteFrage = ref(null) // im Hintergrund vorbereitete nächste Frage (Prefetch)
|
||||
let prefetchPromise = null // laufender Hintergrund-Abruf (verhindert Doppel-Prefetch)
|
||||
|
||||
// Session-Cache: Prüfungs-Verlauf pro Baustein über Remounts hinweg halten (nur im Fokus,
|
||||
// dort läuft die Prüfung). Wiederherstellen beim Mount, bei jeder Änderung sichern.
|
||||
if (props.mode === 'full') {
|
||||
const pruefKey = `${props.topic}::${props.baustein}`
|
||||
const c = getPruef(pruefKey)
|
||||
if (c) {
|
||||
pruefMessages.value = c.messages
|
||||
pruefPhase.value = c.phase
|
||||
aktuelleFrage.value = c.aktuelleFrage
|
||||
letztesFeedback.value = c.letztesFeedback
|
||||
scoreVorFrage.value = c.scoreVorFrage
|
||||
streakVorFrage.value = c.streakVorFrage
|
||||
}
|
||||
watch(
|
||||
[pruefMessages, pruefPhase, aktuelleFrage, letztesFeedback, scoreVorFrage, streakVorFrage],
|
||||
() => setPruef(pruefKey, {
|
||||
messages: pruefMessages.value, phase: pruefPhase.value,
|
||||
aktuelleFrage: aktuelleFrage.value, letztesFeedback: letztesFeedback.value,
|
||||
scoreVorFrage: scoreVorFrage.value, streakVorFrage: streakVorFrage.value,
|
||||
}),
|
||||
{ deep: true },
|
||||
)
|
||||
}
|
||||
const pruefMessagesEl = ref(null)
|
||||
const pruefInputEl = ref(null)
|
||||
const pruefStick = ref(true) // nur auto-scrollen, wenn der Nutzer (fast) unten ist
|
||||
|
||||
Reference in New Issue
Block a user