2026-05-14 12:31:35 +02:00
@page "/"
2026-05-21 11:04:42 +02:00
@attribute [Authorize]
2026-05-14 12:31:35 +02:00
@inject IOllamaService OllamaService
@inject IProjectService ProjectService
2026-05-20 07:27:41 +02:00
@inject ISettingsService SettingsService
<PageTitle>@T("Dashboard - Author Buddy", "Dashboard - Author Buddy")</PageTitle>
2026-05-14 12:31:35 +02:00
<div class="tab-bar">
2026-05-20 07:27:41 +02:00
<div class="tab @GetTabClass("rag")" @onclick='() => activeTab = "rag"'>@T("Gefundene Fakten (RAG)", "Found facts (RAG)")</div>
<div class="tab @GetTabClass("style")" @onclick='() => activeTab = "style"'>@T("Stil-Analyse", "Style analysis")</div>
2026-05-14 12:31:35 +02:00
</div>
<div class="tab-content">
@if (activeTab == "rag")
{
@if (foundFacts.Count == 0)
{
2026-05-20 07:27:41 +02:00
<p style="color: var(--border-color);">@T("Keine Fakten gefunden. Öffne ein Projekt und scanne die Dateien.", "No facts found. Open a project and scan the files.")</p>
2026-05-14 12:31:35 +02:00
}
else
{
@foreach (var fact in foundFacts)
{
<div class="fact-card">@fact</div>
}
}
}
else if (activeTab == "style")
{
<textarea style="width: 100%; min-height: 300px; background: var(--editor-bg); color: var(--text-color); border: 1px solid var(--border-color); padding: 8px; font-family: Consolas;" readonly>@styleSuggestions</textarea>
}
</div>
@code {
2026-05-20 07:27:41 +02:00
private string _language = "de";
2026-05-14 12:31:35 +02:00
private string activeTab = "rag";
private List<string> foundFacts = new();
private string styleSuggestions = string.Empty;
2026-05-20 07:27:41 +02:00
private string T(string de, string en) => _language == "en" ? en : de;
protected override async Task OnInitializedAsync()
{
_language = await SettingsService.GetLanguageAsync() ?? "de";
}
2026-05-14 12:31:35 +02:00
private string GetTabClass(string tab)
{
return activeTab == tab ? "active" : "";
}
}