diff --git a/src/Money.UI.Blazor/Pages/Categories.razor b/src/Money.UI.Blazor/Pages/Categories.razor index 14dba721..9bb86b12 100644 --- a/src/Money.UI.Blazor/Pages/Categories.razor +++ b/src/Money.UI.Blazor/Pages/Categories.razor @@ -16,24 +16,28 @@ { @foreach (var item in Models) { -
- @if (item.Icon != null) - { - @item.Icon - } - - @item.Name - - - @item.Description - +
+
+ @if (item.Icon != null) + { +
@item.Icon
+ } +
+ + @item.Name + + + @item.Description + -
diff --git a/src/Money.UI.Blazor/Pages/Categories.razor.cs b/src/Money.UI.Blazor/Pages/Categories.razor.cs index 980b04aa..44e4cfd5 100644 --- a/src/Money.UI.Blazor/Pages/Categories.razor.cs +++ b/src/Money.UI.Blazor/Pages/Categories.razor.cs @@ -85,6 +85,29 @@ protected async void OnDeleteConfirmed() StateHasChanged(); } + protected string GetItemCssClass(CategoryModel item, string length10, string length30, string length50, string length100, string lengthX) + { + int GetLength(string text) => text?.Length ?? 0; + + int length = GetLength(item.Name) + GetLength(item.Description); + if (length < 10) + return length10; + else if (length < 30) + return length30; + else if (length < 50) + return length50; + else if (length < 100) + return length100; + else + return lengthX; + } + + protected string GetItemFlexCssClass(CategoryModel item) + => GetItemCssClass(item, "flex-row", "flex-column flex-sm-row", "flex-column flex-md-row", "flex-column flex-lg-row", "flex-column"); + + protected string GetItemButtonsMarginCssClass(CategoryModel item) + => GetItemCssClass(item, "mt-0", "mt-2 mt-sm-0", "mt-2 mt-md-0", "mt-2 mt-lg-0", "mt-2"); + private CategoryModel FindModel(IEvent payload) => Models.FirstOrDefault(c => c.Key.Equals(payload.AggregateKey));