mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
86 lines
1.6 KiB
Plaintext
86 lines
1.6 KiB
Plaintext
@using Management.Web.Shared.Components
|
|
|
|
@inject QuizEditorContext quizContext
|
|
|
|
|
|
@code {
|
|
private Modal? modal { get; set; }
|
|
|
|
private LocalQuiz testQuiz;
|
|
|
|
private string? error { get; set; } = null;
|
|
private string _quizMarkdownInput { get; set; } = "";
|
|
private string quizMarkdownInput
|
|
{
|
|
get => _quizMarkdownInput;
|
|
set
|
|
{
|
|
_quizMarkdownInput = value;
|
|
|
|
try
|
|
{
|
|
var newQuiz = LocalQuiz.ParseMarkdown(_quizMarkdownInput);
|
|
error = null;
|
|
testQuiz = newQuiz;
|
|
quizContext.SaveQuiz(newQuiz);
|
|
}
|
|
catch (QuizMarkdownParseException e)
|
|
{
|
|
error = e.Message;
|
|
StateHasChanged();
|
|
}
|
|
}
|
|
}
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
reload();
|
|
quizContext.StateHasChanged += reload;
|
|
}
|
|
private void reload()
|
|
{
|
|
if (quizContext.Quiz != null)
|
|
{
|
|
if (quizMarkdownInput == "")
|
|
{
|
|
quizMarkdownInput = quizContext.Quiz.ToMarkdown();
|
|
}
|
|
this.InvokeAsync(this.StateHasChanged);
|
|
}
|
|
}
|
|
public void Dispose()
|
|
{
|
|
quizContext.StateHasChanged -= reload;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
<div class="row justify-content-between">
|
|
<div class="col-auto">
|
|
<h2>
|
|
@quizContext.Quiz?.Name
|
|
</h2>
|
|
</div>
|
|
<div class="col-auto me-3">
|
|
<h3>
|
|
Points: @quizContext.Quiz?.Questions.Sum(q => q.Points)
|
|
</h3>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<textarea rows="30" class="form-control" @bind="quizMarkdownInput" @bind:event="oninput" />
|
|
</div>
|
|
<div class="col-6">
|
|
@if (error != null)
|
|
{
|
|
<p class="text-danger text-truncate">Error: @error</p>
|
|
}
|
|
<QuizPreview Quiz="testQuiz" />
|
|
</div>
|
|
</div>
|
|
|
|
<hr>
|