update
This commit is contained in:
@@ -1,9 +1,25 @@
|
||||
// Session-Cache für den Prüfungs-Verlauf pro Baustein.
|
||||
// Lebt als Modul-Map: überlebt das Remounten von BausteinPanel (Baustein-Wechsel,
|
||||
// Fokus schließen/öffnen), geht aber bei Page-Reload verloren — bewusst kein DB-Aufwand.
|
||||
// Geteilter Prüfungs-State pro Baustein.
|
||||
// Die durablen Refs leben hier als Modul-Map: alle BausteinPanel-Instanzen desselben
|
||||
// Bausteins nutzen DIESELBEN Refs. So überlebt der Verlauf das Remounten (Baustein-
|
||||
// Wechsel, Fokus zu/auf) UND eine spät eintreffende Frage ist sofort reaktiv sichtbar.
|
||||
// Geht bei Page-Reload verloren (Modul re-init) — bewusst kein DB-Aufwand.
|
||||
|
||||
import { ref } from 'vue'
|
||||
|
||||
const store = new Map() // key "topic::baustein" -> { messages, phase, aktuelleFrage, letztesFeedback, scoreVorFrage, streakVorFrage }
|
||||
|
||||
export const getPruef = (key) => store.get(key)
|
||||
export const setPruef = (key, val) => store.set(key, val)
|
||||
export function usePruefSlot(key) {
|
||||
if (!store.has(key)) {
|
||||
store.set(key, {
|
||||
messages: ref([]),
|
||||
phase: ref('idle'),
|
||||
aktuelleFrage: ref(''),
|
||||
letztesFeedback: ref(''),
|
||||
scoreVorFrage: ref(0),
|
||||
streakVorFrage: ref(0),
|
||||
})
|
||||
}
|
||||
return store.get(key)
|
||||
}
|
||||
|
||||
export const clearPruef = (key) => store.delete(key)
|
||||
|
||||
Reference in New Issue
Block a user