Skip to content

Commit

Permalink
add content header component
Browse files Browse the repository at this point in the history
  • Loading branch information
yagizhanNY committed Jul 5, 2023
1 parent d94318d commit cfaf0c8
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 0 deletions.
17 changes: 17 additions & 0 deletions SiemensIXBlazor/Components/ContentHeader/ContentHeader.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@namespace SiemensIXBlazor.Components
@using Microsoft.JSInterop;
@using SiemensIXBlazor.Enums.ContentHeader;
@using SiemensIXBlazor.Helpers;
@inherits IXBaseComponent
@inject IJSRuntime JSRuntime

<ix-content-header @attributes="UserAttributes"
class="@Class"
style="@Style"
id="@Id"
has-back-button="@HasBackButton"
header-title="@HeaderTitle"
header-subtitle="@HeaderSubTitle"
variant="@(EnumParser<ContentHeaderVariant>.ParseEnumToString(Variant))">
@ChildContent
</ix-content-header>
43 changes: 43 additions & 0 deletions SiemensIXBlazor/Components/ContentHeader/ContentHeader.razor.cs
Original file line number Diff line number Diff line change
@@ -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();
}
}
}
8 changes: 8 additions & 0 deletions SiemensIXBlazor/Enums/ContentHeader/ContentHeaderVariant.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace SiemensIXBlazor.Enums.ContentHeader
{
public enum ContentHeaderVariant
{
Primary,
Secondary
}
}

0 comments on commit cfaf0c8

Please sign in to comment.