From 6c9f5ecf96a16f4ae68e68ef961f60869c0fd8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Faruk=20Korkmaz?= Date: Wed, 2 Oct 2024 14:46:43 +0300 Subject: [PATCH 1/2] MapNavigationOverlay implemented --- .../MapNavigation/MapNavigationOverlayTest.cs | 44 +++++++++++++++++++ .../{ => MapNavigation}/MapNavigationTest.cs | 7 ++- .../MapNavigationOverlay.razor | 13 ++++++ .../MapNavigationOverlay.razor.cs | 41 +++++++++++++++++ 4 files changed, 101 insertions(+), 4 deletions(-) create mode 100644 SiemensIXBlazor.Tests/MapNavigation/MapNavigationOverlayTest.cs rename SiemensIXBlazor.Tests/{ => MapNavigation}/MapNavigationTest.cs (88%) create mode 100644 SiemensIXBlazor/Components/MapNavigationOverlay/MapNavigationOverlay.razor create mode 100644 SiemensIXBlazor/Components/MapNavigationOverlay/MapNavigationOverlay.razor.cs diff --git a/SiemensIXBlazor.Tests/MapNavigation/MapNavigationOverlayTest.cs b/SiemensIXBlazor.Tests/MapNavigation/MapNavigationOverlayTest.cs new file mode 100644 index 0000000..f8dde98 --- /dev/null +++ b/SiemensIXBlazor.Tests/MapNavigation/MapNavigationOverlayTest.cs @@ -0,0 +1,44 @@ +using Bunit; +using Microsoft.AspNetCore.Components; +using SiemensIXBlazor.Components.MapNavigationOverlay; +using System.ComponentModel; + +namespace SiemensIXBlazor.Tests.MapNavigation +{ + public class MapNavigationOverlayTest : TestContextBase + { + [Fact] + public void ComponentRendersWithParametersSetCorrectly() + { + // Arrange + var cut = RenderComponent(parameters => parameters + .Add(p => p.Id, "testId") + .Add(p => p.Name, "testApp") + .Add(p => p.Icon, "testIcon") + .Add(p => p.IconColor, "testColor")); + + // Assert + cut.MarkupMatches( + ""); + + } + [Fact] + public void EventCallbacksAreTriggeredCorrectly() + { + // Arrange + var isCloseButtonClicked = false; + + var cut = RenderComponent(parameters => parameters + .Add(p => p.Id, "test-id") + .Add(p => p.CloseButtonClickedEvent, EventCallback.Factory.Create(this, () => isCloseButtonClicked = true)) + ); + + + // Act + cut.InvokeAsync(() => cut.Instance.CloseClick()); + + // Assert + Assert.True(isCloseButtonClicked); + } + } +} \ No newline at end of file diff --git a/SiemensIXBlazor.Tests/MapNavigationTest.cs b/SiemensIXBlazor.Tests/MapNavigation/MapNavigationTest.cs similarity index 88% rename from SiemensIXBlazor.Tests/MapNavigationTest.cs rename to SiemensIXBlazor.Tests/MapNavigation/MapNavigationTest.cs index 35b162c..174c871 100644 --- a/SiemensIXBlazor.Tests/MapNavigationTest.cs +++ b/SiemensIXBlazor.Tests/MapNavigation/MapNavigationTest.cs @@ -9,9 +9,8 @@ using Bunit; using Microsoft.AspNetCore.Components; -using SiemensIXBlazor.Components.MapNavigation; -namespace SiemensIXBlazor.Tests; +namespace SiemensIXBlazor.Tests.MapNavigation; public class MapNavigationTest : TestContextBase { @@ -19,7 +18,7 @@ public class MapNavigationTest : TestContextBase public void ComponentRendersWithParametersSetCorrectly() { // Arrange - var cut = RenderComponent(parameters => parameters + var cut = RenderComponent(parameters => parameters .Add(p => p.ChildContent, (RenderFragment)(builder => builder.AddMarkupContent(0, "Test content"))) .Add(p => p.Id, "testId") .Add(p => p.ApplicationName, "testApp") @@ -38,7 +37,7 @@ public async Task EventCallbacksTriggered() var contextMenuClickEventWasCalled = false; var navigationToggledEventWasCalled = false; - var cut = RenderComponent(parameters => parameters + var cut = RenderComponent (parameters => parameters .Add(p => p.Id, "testId") .Add(p => p.ContextMenuClickEvent, EventCallback.Factory.Create(this, () => { contextMenuClickEventWasCalled = true; })) diff --git a/SiemensIXBlazor/Components/MapNavigationOverlay/MapNavigationOverlay.razor b/SiemensIXBlazor/Components/MapNavigationOverlay/MapNavigationOverlay.razor new file mode 100644 index 0000000..0743ab7 --- /dev/null +++ b/SiemensIXBlazor/Components/MapNavigationOverlay/MapNavigationOverlay.razor @@ -0,0 +1,13 @@ +@using Microsoft.JSInterop; +@inherits IXBaseComponent +@inject IJSRuntime JSRuntime + + + + \ No newline at end of file diff --git a/SiemensIXBlazor/Components/MapNavigationOverlay/MapNavigationOverlay.razor.cs b/SiemensIXBlazor/Components/MapNavigationOverlay/MapNavigationOverlay.razor.cs new file mode 100644 index 0000000..e8b378e --- /dev/null +++ b/SiemensIXBlazor/Components/MapNavigationOverlay/MapNavigationOverlay.razor.cs @@ -0,0 +1,41 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; +using SiemensIXBlazor.Interops; + +namespace SiemensIXBlazor.Components.MapNavigationOverlay +{ + public partial class MapNavigationOverlay + { + [Parameter, EditorRequired] + public string Id { get; set; } = string.Empty; + [Parameter] + public string? Name { get; set; } + [Parameter] + public string? Icon { get; set; } + + [Parameter] + public string? IconColor { get; set; } + + [Parameter] + public EventCallback CloseButtonClickedEvent { get; set; } + + private BaseInterop _interop; + + protected async override Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + _interop = new(JSRuntime); + + await _interop.AddEventListener(this, Id, "closeClick", "CloseButtonClickedEvent"); + } + } + + + [JSInvokable] + public async Task CloseClick() + { + await CloseButtonClickedEvent.InvokeAsync(); + } + } +} From 7caafa58313a72fc9b67a1a4a26117abc3afa309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Faruk=20Korkmaz?= Date: Wed, 2 Oct 2024 14:54:04 +0300 Subject: [PATCH 2/2] Readme updated --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 7f89c8c..6d5f25c 100644 --- a/README.md +++ b/README.md @@ -344,6 +344,11 @@ menuAboutElement.ToggleSettings(true);
Content
``` +## Map Navigation Overlay + +```razor + +``` ## Popover News