Migliorato calendario
This commit is contained in:
@@ -101,16 +101,6 @@
|
||||
}
|
||||
</div>
|
||||
|
||||
<MudMenu PopoverClass="custom_popover" Class="custom-mudfab" AnchorOrigin="Origin.TopLeft" TransformOrigin="Origin.BottomRight">
|
||||
<ActivatorContent>
|
||||
<MudFab Color="Color.Primary" Size="Size.Small" StartIcon="@Icons.Material.Filled.Add"/>
|
||||
</ActivatorContent>
|
||||
<ChildContent>
|
||||
<MudMenuItem>Nuovo contatto</MudMenuItem>
|
||||
<MudMenuItem OnClick="OpenActivityForm">Nuova attività</MudMenuItem>
|
||||
</ChildContent>
|
||||
</MudMenu>
|
||||
|
||||
@code {
|
||||
|
||||
// Stato UI
|
||||
@@ -167,21 +157,27 @@
|
||||
[JSInvokable]
|
||||
public async Task OnSwipeLeft()
|
||||
{
|
||||
CambiaPeriodo(1);
|
||||
await LoadMonthData();
|
||||
await CambiaPeriodo(1);
|
||||
StateHasChanged();
|
||||
if (Expanded)
|
||||
{
|
||||
await LoadMonthData();
|
||||
}
|
||||
}
|
||||
|
||||
[JSInvokable]
|
||||
public async Task OnSwipeRight()
|
||||
{
|
||||
CambiaPeriodo(-1);
|
||||
await LoadMonthData();
|
||||
await CambiaPeriodo(-1);
|
||||
StateHasChanged();
|
||||
if (Expanded)
|
||||
{
|
||||
await LoadMonthData();
|
||||
}
|
||||
}
|
||||
|
||||
// Cambio periodo mese/settimana
|
||||
private void CambiaPeriodo(int direzione)
|
||||
private async Task CambiaPeriodo(int direzione)
|
||||
{
|
||||
if (Expanded)
|
||||
{
|
||||
@@ -205,13 +201,13 @@
|
||||
else
|
||||
{
|
||||
// Cambio settimana: aggiorno anche il giorno selezionato
|
||||
SelectedDate = SelectedDate.AddDays(7 * direzione);
|
||||
await SelezionaData(SelectedDate.AddDays(7 * direzione));
|
||||
_internalMonth = new DateTime(SelectedDate.Year, SelectedDate.Month, 1);
|
||||
}
|
||||
}
|
||||
|
||||
// Cambio modalità
|
||||
private async Task ToggleExpanded()
|
||||
private void ToggleExpanded()
|
||||
{
|
||||
if (Expanded)
|
||||
{
|
||||
@@ -228,7 +224,6 @@
|
||||
|
||||
SliderAnimation = "";
|
||||
StateHasChanged();
|
||||
await LoadMonthData();
|
||||
}
|
||||
|
||||
// Caricamento attività al cambio mese
|
||||
@@ -245,21 +240,24 @@
|
||||
(x.EffectiveDate >= start && x.EffectiveDate <= end));
|
||||
MonthActivities = activities.OrderBy(x => x.EffectiveDate ?? x.EstimatedDate).ToList();
|
||||
|
||||
// Filtro per il giorno selezionato (solo se il giorno selezionato è visibile nel mese corrente)
|
||||
if (SelectedDate.Month == CurrentMonth.Month && SelectedDate.Year == CurrentMonth.Year)
|
||||
FilteredActivities = GetEventsForDay(SelectedDate);
|
||||
else
|
||||
FilteredActivities = [];
|
||||
|
||||
IsLoading = false;
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
// Selezione giorno in settimana
|
||||
private void SelezionaData(DateTime day)
|
||||
private async Task SelezionaData(DateTime day)
|
||||
{
|
||||
SelectedDate = day;
|
||||
_internalMonth = new DateTime(day.Year, day.Month, 1); // Sync il mese visualizzato solo se cambio settimana!
|
||||
StateHasChanged();
|
||||
|
||||
var cacheInternalMonth = _internalMonth;
|
||||
_internalMonth = new DateTime(day.Year, day.Month, 1);
|
||||
|
||||
if (cacheInternalMonth != _internalMonth)
|
||||
{
|
||||
await LoadMonthData();
|
||||
}
|
||||
|
||||
FilteredActivities = GetEventsForDay(day);
|
||||
StateHasChanged();
|
||||
}
|
||||
@@ -276,7 +274,6 @@
|
||||
_internalMonth = new DateTime(day.Year, day.Month, 1); // Sync il mese visualizzato
|
||||
SliderAnimation = "";
|
||||
StateHasChanged();
|
||||
await LoadMonthData(); // Aggiorna anche la lista attività (se hai cambiato mese)
|
||||
}
|
||||
|
||||
// Utility
|
||||
@@ -296,7 +293,4 @@
|
||||
dotNetHelper?.Dispose();
|
||||
}
|
||||
|
||||
private void OpenActivityForm() =>
|
||||
NavigationManager.NavigateTo("/activity");
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user