Loading angepasst
This commit is contained in:
@@ -388,6 +388,30 @@ else
|
||||
@code {
|
||||
private static readonly System.Globalization.CultureInfo _deCulture = new("de-DE");
|
||||
|
||||
[PersistentState(AllowUpdates = true)]
|
||||
public AppSettings? PersistentSettings { get; set; }
|
||||
|
||||
[PersistentState(AllowUpdates = true)]
|
||||
public List<DayVm>? PersistentDays { get; set; }
|
||||
|
||||
[PersistentState(AllowUpdates = true)]
|
||||
public TimeSpan? PersistentTotalOvertime { get; set; }
|
||||
|
||||
[PersistentState(AllowUpdates = true)]
|
||||
public Dictionary<DateOnly, string>? PersistentHolidays { get; set; }
|
||||
|
||||
[PersistentState(AllowUpdates = true)]
|
||||
public int? PersistentHolidayYear { get; set; }
|
||||
|
||||
[PersistentState(AllowUpdates = true)]
|
||||
public List<VacationDay>? PersistentVacations { get; set; }
|
||||
|
||||
[PersistentState(AllowUpdates = true)]
|
||||
public string? PersistentWeekLabel { get; set; }
|
||||
|
||||
[PersistentState(AllowUpdates = true)]
|
||||
public string? PersistentWeekSubLabel { get; set; }
|
||||
|
||||
private bool _loading = true;
|
||||
private int _userId;
|
||||
private DateOnly _monday;
|
||||
@@ -409,18 +433,45 @@ else
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
if (PersistentSettings != null && PersistentDays != null && PersistentTotalOvertime != null)
|
||||
{
|
||||
_settings = PersistentSettings;
|
||||
_days = PersistentDays;
|
||||
_totalOvertime = PersistentTotalOvertime.Value;
|
||||
_holidays = PersistentHolidays ?? [];
|
||||
_holidayYear = PersistentHolidayYear ?? -1;
|
||||
_vacations = PersistentVacations ?? [];
|
||||
_weekLabel = PersistentWeekLabel ?? "";
|
||||
_weekSubLabel = PersistentWeekSubLabel ?? "";
|
||||
_loading = false;
|
||||
}
|
||||
|
||||
var authState = await AuthStateProvider.GetAuthenticationStateAsync();
|
||||
var claim = authState.User.FindFirst(ClaimTypes.NameIdentifier);
|
||||
if (claim == null) return; // Prerender-Pass – Circuit noch nicht authentifiziert
|
||||
_userId = int.Parse(claim.Value);
|
||||
_monday = GetMonday(DateOnly.FromDateTime(DateTime.Today));
|
||||
_settings = await TrackerService.GetSettingsAsync(_userId);
|
||||
|
||||
var loadWeekTask = LoadWeek();
|
||||
var overtimeTask = TrackerService.GetTotalOvertimeAsync(_userId, _settings);
|
||||
|
||||
await Task.WhenAll(loadWeekTask, overtimeTask);
|
||||
_totalOvertime = await overtimeTask;
|
||||
if (PersistentSettings == null || PersistentDays == null || PersistentTotalOvertime == null)
|
||||
{
|
||||
_settings = await TrackerService.GetSettingsAsync(_userId);
|
||||
|
||||
var loadWeekTask = LoadWeek();
|
||||
var overtimeTask = TrackerService.GetTotalOvertimeAsync(_userId, _settings);
|
||||
|
||||
await Task.WhenAll(loadWeekTask, overtimeTask);
|
||||
_totalOvertime = await overtimeTask;
|
||||
|
||||
PersistentSettings = _settings;
|
||||
PersistentDays = _days;
|
||||
PersistentTotalOvertime = _totalOvertime;
|
||||
PersistentHolidays = _holidays;
|
||||
PersistentHolidayYear = _holidayYear;
|
||||
PersistentVacations = _vacations;
|
||||
PersistentWeekLabel = _weekLabel;
|
||||
PersistentWeekSubLabel = _weekSubLabel;
|
||||
_loading = false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
@@ -431,8 +482,6 @@ else
|
||||
{
|
||||
// Ignored during prerendering/SSR
|
||||
}
|
||||
|
||||
_loading = false;
|
||||
}
|
||||
|
||||
private async Task HandleOnboardingFinished()
|
||||
@@ -693,7 +742,7 @@ else
|
||||
}
|
||||
|
||||
// ── ViewModels ────────────────────────────────────────────────
|
||||
private sealed class DayVm
|
||||
public sealed class DayVm
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int UserId { get; set; }
|
||||
@@ -743,7 +792,7 @@ else
|
||||
};
|
||||
}
|
||||
|
||||
private sealed class BreakVm
|
||||
public sealed class BreakVm
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public TimeSpan? Start { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user