From 8726e00f73d435aa3d57f7f304b93ad5e6e778f9 Mon Sep 17 00:00:00 2001 From: Mia Winter Date: Wed, 17 Jan 2024 20:07:26 +0100 Subject: [PATCH] Added InputLabelComponent --- Wave/Components/InputLabelComponent.razor | 43 +++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Wave/Components/InputLabelComponent.razor diff --git a/Wave/Components/InputLabelComponent.razor b/Wave/Components/InputLabelComponent.razor new file mode 100644 index 0000000..3232801 --- /dev/null +++ b/Wave/Components/InputLabelComponent.razor @@ -0,0 +1,43 @@ +@using System.Linq.Expressions +@using System.Reflection +@using System.ComponentModel +@using System.ComponentModel.DataAnnotations + + + +@code { + [Parameter] + public string? LabelText { get; set; } + [Parameter] + public RenderFragment? Label { get; set; } + [Parameter] + public required RenderFragment ChildContent { get; set; } + [Parameter] + public Expression>? For { get; set; } + + private string GetDisplayName() { + if (For is null) return string.Empty; + var expression = (MemberExpression)For.Body; + var display = expression.Member.GetCustomAttribute(typeof(DisplayAttribute)) as DisplayAttribute; + var displayName = expression.Member.GetCustomAttribute(typeof(DisplayNameAttribute)) as DisplayNameAttribute; + return display?.GetName() ?? displayName?.DisplayName ?? expression.Member.Name; + } +}