2025-12-13 16:50:52 +11:00
|
|
|
|
using Microsoft.AspNetCore.Components;
|
2024-12-12 17:35:52 -06:00
|
|
|
|
|
|
|
|
|
|
namespace LANCommander.Server.UI.Components
|
|
|
|
|
|
{
|
|
|
|
|
|
public class DataColumn<TData> : AntDesign.Column<TData>
|
|
|
|
|
|
{
|
2025-01-16 00:35:01 -06:00
|
|
|
|
[Parameter]
|
|
|
|
|
|
public string Include { get; set; } = default!;
|
2025-01-28 00:46:37 -06:00
|
|
|
|
|
|
|
|
|
|
[Parameter]
|
|
|
|
|
|
public bool Hide { get; set; }
|
2025-01-16 00:35:01 -06:00
|
|
|
|
|
2024-12-12 17:35:52 -06:00
|
|
|
|
[CascadingParameter]
|
|
|
|
|
|
public Dictionary<int, bool> ColumnVisibility { get; set; } = default!;
|
|
|
|
|
|
|
2025-12-13 16:46:30 +11:00
|
|
|
|
[CascadingParameter(Name = "Includes")]
|
2025-12-13 16:50:52 +11:00
|
|
|
|
public required List<string> Includes { get; set; }
|
2025-01-16 00:35:01 -06:00
|
|
|
|
|
2024-12-12 17:35:52 -06:00
|
|
|
|
protected override void OnParametersSet()
|
|
|
|
|
|
{
|
2025-01-28 00:46:37 -06:00
|
|
|
|
if (!ColumnVisibility.ContainsKey(ColIndex))
|
|
|
|
|
|
ColumnVisibility.Add(ColIndex, !Hide);
|
|
|
|
|
|
|
2024-12-14 20:11:59 -06:00
|
|
|
|
ClassMapper.If("column-hidden", () => ColumnVisibility.ContainsKey(ColIndex) && !ColumnVisibility[ColIndex]);
|
2025-05-23 02:17:06 -05:00
|
|
|
|
|
2024-12-14 20:11:59 -06:00
|
|
|
|
StateHasChanged();
|
2024-12-12 17:35:52 -06:00
|
|
|
|
|
2025-03-22 22:55:34 -05:00
|
|
|
|
if (!String.IsNullOrWhiteSpace(Include))
|
2025-01-16 00:35:01 -06:00
|
|
|
|
{
|
2025-03-22 22:55:34 -05:00
|
|
|
|
var includes = Include.Split(',');
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var include in includes)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!String.IsNullOrWhiteSpace(include) && !Includes.Contains(include))
|
|
|
|
|
|
Includes.Add(include);
|
|
|
|
|
|
}
|
2025-01-16 00:35:01 -06:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-12-12 17:35:52 -06:00
|
|
|
|
base.OnParametersSet();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|