Persist learn progress per user

This commit is contained in:
Remi
2025-09-18 23:28:02 +02:00
committed by itsrubberduck
parent b6785e9f05
commit 6dbfe07d2b
6 changed files with 231 additions and 3 deletions

38
shared/learn/config.ts Normal file
View File

@@ -0,0 +1,38 @@
export interface LessonProgress {
best: number
done: boolean
}
export type LearnProgress = Record<string, Record<string, LessonProgress>>
export interface LearnConfig {
tts: boolean
radioLevel: number
voice: string
audioChallenge: boolean
}
export interface LearnState {
xp: number
progress: LearnProgress
config: LearnConfig
}
export const LEARN_CONFIG_DEFAULTS: LearnConfig = {
tts: false,
radioLevel: 4,
voice: '',
audioChallenge: false,
}
export function createDefaultLearnConfig(): LearnConfig {
return { ...LEARN_CONFIG_DEFAULTS }
}
export function createDefaultLearnState(): LearnState {
return {
xp: 0,
progress: {} as LearnProgress,
config: createDefaultLearnConfig(),
}
}