using Microsoft.AspNetCore.Components; using MP.MONO.UI.Data; namespace MP.MONO.UI.Components { public partial class ToggleModes { [Parameter] public EventCallback FilterChanged { get; set; } [Parameter] public selectGlobalToggle SelFilter { get; set; } = new selectGlobalToggle(); protected bool isActive { get => SelFilter.isActive; set { if (SelFilter.isActive != value) { SelFilter.isActive = value; reportChange(); } } } protected string leftString { get => SelFilter.leftString; set { if (SelFilter.leftString != value) { SelFilter.leftString = value; reportChange(); } } } protected string leftStringCSS { get => SelFilter.leftStringCSS; set { if (SelFilter.leftStringCSS != value) { SelFilter.leftStringCSS = value; reportChange(); } } } protected string rightString { get => SelFilter.rightString; set { if (SelFilter.rightString != value) { SelFilter.rightString = value; reportChange(); } } } protected string rightStringCSS { get => SelFilter.rightStringCSS; set { if (SelFilter.rightStringCSS != value) { SelFilter.rightStringCSS = value; reportChange(); } } } protected void toggle() { var currFilt = SelFilter; currFilt.isActive = !currFilt.isActive; SelFilter = currFilt; if (isActive) { rightStringCSS = "fw-bold"; leftStringCSS = "text-secondary"; } else { leftStringCSS = "fw-bold"; rightStringCSS = "text-secondary"; } } protected override async Task OnInitializedAsync() { if (isActive) { rightStringCSS = "fw-bold"; leftStringCSS = "text-secondary"; } else { leftStringCSS = "fw-bold"; rightStringCSS = "text-secondary"; } await FilterChanged.InvokeAsync(SelFilter); } private void reportChange() { FilterChanged.InvokeAsync(SelFilter); } } }