feat: implement dynamic knowledge graph updates and state management services

This commit is contained in:
2026-04-26 14:53:48 +02:00
parent 412320980f
commit 7859c9806f
30 changed files with 668 additions and 153 deletions
@@ -1,13 +1,42 @@
using NexusReader.Application.Queries.Quiz;
namespace NexusReader.UI.Shared.Services;
public sealed class QuizStateService : IQuizStateService
{
public string? CurrentQuizBlockId { get; private set; }
public QuizDto? CurrentQuiz { get; private set; }
public bool IsHydrating { get; private set; }
public bool HasNewQuiz { get; private set; }
public event Action<string>? OnQuizRequested;
public event Action? OnQuizUpdated;
public void RequestQuiz(string blockId)
{
CurrentQuizBlockId = blockId;
OnQuizRequested?.Invoke(blockId);
}
public void SetQuiz(string blockId, QuizDto quiz)
{
CurrentQuizBlockId = blockId;
CurrentQuiz = quiz;
IsHydrating = false;
HasNewQuiz = true;
OnQuizUpdated?.Invoke();
}
public void SetHydrating(bool hydrating)
{
IsHydrating = hydrating;
OnQuizUpdated?.Invoke();
}
public void MarkQuizAsSeen()
{
if (!HasNewQuiz) return;
HasNewQuiz = false;
OnQuizUpdated?.Invoke();
}
}