@page "/listemailssend_card"

@inject ReAct_PME.WebUI.ServicesUI.ApiService ApiService
@using Services;
@using ReAct_PME.WebUI.ServicesUI;
@inject AuthenticationStateProvider AuthenticationStateProvider
@inject NavigationManager Navigation
@inject HttpClient Http
@using Microsoft.AspNetCore.Components.Authorization;

<PageTitle>Mails à suivre</PageTitle>

<h3>Liste des Mails à suivre</h3>


@if (items != null)
{
    <div class="row">
        @foreach (var conversation in itemsFilteredSorted)
        {
            <!--<div class="col-12 col-md-6 col-lg-6 mb-3">-->
            <div class="col-12 col-md-12 col-lg-12 mb-1">
                <EmailSendCard Conversation="conversation" />
            </div>
        }
    </div>

}

else
{
    <div class="alert alert-info text-center p-2" role="alert">
        <i class="bi bi-info-circle"></i> En cours de chargement ou pas de données disponibles.
    </div>
}



@code {

    private IEnumerable<ThreadItem> itemsFilteredSorted =>
    items == null ? Enumerable.Empty<ThreadItem>() :
    items
    ;


    private string? CurrentSortColumn = null;
    private bool IsAscending = true;
    private IEnumerable<ThreadItem>? items;

    protected override async Task OnInitializedAsync()
    {
        var items_temp = await ApiService.GetAllAsync<IEnumerable<ThreadItem>>("api/ListeMails/send");
        items = items_temp;
    }

    private void EditItem(string id)
    {
        Navigation.NavigateTo($"/mail_edit/{id}");
    }

    private void SortByColumn(string columnName)
    {
        if (CurrentSortColumn == columnName)
        {
            IsAscending = !IsAscending; // Inverse le tri si déjà trié par cette colonne
        }
        else
        {
            CurrentSortColumn = columnName;
            IsAscending = true; // Tri par défaut en ordre ascendant
        }
    }

    private string GetSortIcon(string columnName)
    {
        bool b = false;
        if (CurrentSortColumn != null)
        {
            var tab = CurrentSortColumn.Split('.');
            b = (tab.Length == 2 && columnName.Contains(tab[0]) && columnName.Contains(tab[1]));
        }

        if (CurrentSortColumn == columnName)
        {
            return IsAscending ? " ▲" : " ▼"; // Flèche selon l'ordre
        }
        return string.Empty; // Pas d'icône si la colonne n'est pas triée
    }

}
