@if (IsVisible) { } @code { [Parameter] public bool IsVisible { get; set; } [Parameter] public EventCallback IsVisibleChanged { get; set; } [Parameter] public int SourceTemplateId { get; set; } [Parameter] public string SourceName { get; set; } = string.Empty; [Parameter] public IEnumerable<(int Id, string Label)> ParentOptions { get; set; } = Array.Empty<(int, string)>(); [Parameter] public string? ErrorMessage { get; set; } [Parameter] public EventCallback<(int SourceTemplateId, int ParentTemplateId, string SlotName)> OnSubmit { get; set; } private bool _wasVisible; private int _parentTemplateId; private string _slotName = string.Empty; protected override void OnParametersSet() { if (IsVisible && !_wasVisible) { _parentTemplateId = 0; _slotName = SourceName; } _wasVisible = IsVisible; } private async Task Close() => await IsVisibleChanged.InvokeAsync(false); private async Task Submit() { if (_parentTemplateId == 0 || string.IsNullOrWhiteSpace(_slotName)) return; await OnSubmit.InvokeAsync((SourceTemplateId, _parentTemplateId, _slotName.Trim())); } }