From cfaf0c818f6c53e9e3d9ae8fb49440127ffc2fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ya=C4=9F=C4=B1zhan=20Necat=20Yakal=C4=B1?= Date: Wed, 5 Jul 2023 16:04:29 +0300 Subject: [PATCH] add content header component --- .../ContentHeader/ContentHeader.razor | 17 ++++++++ .../ContentHeader/ContentHeader.razor.cs | 43 +++++++++++++++++++ .../ContentHeader/ContentHeaderVariant.cs | 8 ++++ 3 files changed, 68 insertions(+) create mode 100644 SiemensIXBlazor/Components/ContentHeader/ContentHeader.razor create mode 100644 SiemensIXBlazor/Components/ContentHeader/ContentHeader.razor.cs create mode 100644 SiemensIXBlazor/Enums/ContentHeader/ContentHeaderVariant.cs diff --git a/SiemensIXBlazor/Components/ContentHeader/ContentHeader.razor b/SiemensIXBlazor/Components/ContentHeader/ContentHeader.razor new file mode 100644 index 0000000..af8a02f --- /dev/null +++ b/SiemensIXBlazor/Components/ContentHeader/ContentHeader.razor @@ -0,0 +1,17 @@ +@namespace SiemensIXBlazor.Components +@using Microsoft.JSInterop; +@using SiemensIXBlazor.Enums.ContentHeader; +@using SiemensIXBlazor.Helpers; +@inherits IXBaseComponent +@inject IJSRuntime JSRuntime + + + @ChildContent + diff --git a/SiemensIXBlazor/Components/ContentHeader/ContentHeader.razor.cs b/SiemensIXBlazor/Components/ContentHeader/ContentHeader.razor.cs new file mode 100644 index 0000000..05718f7 --- /dev/null +++ b/SiemensIXBlazor/Components/ContentHeader/ContentHeader.razor.cs @@ -0,0 +1,43 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; +using SiemensIXBlazor.Enums.ContentHeader; +using SiemensIXBlazor.Interops; + +namespace SiemensIXBlazor.Components +{ + public partial class ContentHeader + { + [Parameter, EditorRequired] + public string Id { get; set; } = string.Empty; + [Parameter] + public RenderFragment? ChildContent { get; set; } + [Parameter] + public bool HasBackButton { get; set; } = false; + [Parameter] + public string? HeaderSubTitle { get; set; } + [Parameter] + public string? HeaderTitle { get; set; } + [Parameter] + public ContentHeaderVariant Variant { get; set; } = ContentHeaderVariant.Primary; + [Parameter] + public EventCallback BackButtonClickedEvent { get; set; } + + private BaseInterop _interop; + + protected async override Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + _interop = new(JSRuntime); + + await _interop.AddEventListener(this, Id, "backButtonClick", "BackButtonClicked"); + } + } + + [JSInvokable] + public async void BackButtonClicked() + { + await BackButtonClickedEvent.InvokeAsync(); + } + } +} diff --git a/SiemensIXBlazor/Enums/ContentHeader/ContentHeaderVariant.cs b/SiemensIXBlazor/Enums/ContentHeader/ContentHeaderVariant.cs new file mode 100644 index 0000000..96b0239 --- /dev/null +++ b/SiemensIXBlazor/Enums/ContentHeader/ContentHeaderVariant.cs @@ -0,0 +1,8 @@ +namespace SiemensIXBlazor.Enums.ContentHeader +{ + public enum ContentHeaderVariant + { + Primary, + Secondary + } +}