@using RackPeek.Domain.Resources @typeparam TResource where TResource : RackPeek.Domain.Resources.Resource @inject IAddResourceUseCase AddResource
Add @ResourceType
@if (_error is not null) {
@_error
}
@code { private string ResourceTypeLower => Resource.GetKind().ToLower(); private string ResourceType => Resource.GetKind(); [Parameter] public EventCallback OnCreated { get; set; } [Parameter] public string? Placeholder { get; set; } [Parameter] public List? RunsOn { get; set; } private string _name = string.Empty; private string? _error; private bool _isSubmitting; private async Task CreateAsync() { _error = null; if (string.IsNullOrWhiteSpace(_name)) { _error = "name is required"; return; } try { _isSubmitting = true; var name = _name.Trim(); await AddResource.ExecuteAsync(name, RunsOn); _name = string.Empty; await OnCreated.InvokeAsync(name); } catch (Exception ex) { _error = ex.Message; } finally { _isSubmitting = false; } } }