diff --git a/src/Connected.Components.Showcase.Runner/Connected.Components.Showcase.Runner.csproj b/src/Connected.Components.Showcase.Runner/Connected.Components.Showcase.Runner.csproj
index f6e0064..3d030ec 100644
--- a/src/Connected.Components.Showcase.Runner/Connected.Components.Showcase.Runner.csproj
+++ b/src/Connected.Components.Showcase.Runner/Connected.Components.Showcase.Runner.csproj
@@ -24,6 +24,8 @@
+
+
diff --git a/src/Connected.Components.Showcase.Runner/Pages/ComponentsExamples/ButtonExample.razor b/src/Connected.Components.Showcase.Runner/Pages/ComponentsExamples/ButtonExample.razor
new file mode 100644
index 0000000..ad9c628
--- /dev/null
+++ b/src/Connected.Components.Showcase.Runner/Pages/ComponentsExamples/ButtonExample.razor
@@ -0,0 +1,28 @@
+@page "/button"
+@using Connected.Components;
+@using Connected.Enums;
+@using Connected.Models.Modal;
+@using Connected.Models;
+@using Connected.Services;
+@using Connected.Utilities;
+
+
BUTTON EXAMPLE
+
+
+
+
+
+Text:
@text
+
+@code {
+ string text = "Some random text";
+
+ string Hello = "Hello my friend";
+
+ private void TextChange(string new_text="Some random text.. but new")
+ {
+ text = new_text;
+ StateHasChanged();
+ }
+
+}
\ No newline at end of file
diff --git a/src/Connected.Components.Showcase.Runner/Pages/ComponentsExamples/ModalDialogExample.razor b/src/Connected.Components.Showcase.Runner/Pages/ComponentsExamples/ModalDialogExample.razor
new file mode 100644
index 0000000..5d187f9
--- /dev/null
+++ b/src/Connected.Components.Showcase.Runner/Pages/ComponentsExamples/ModalDialogExample.razor
@@ -0,0 +1,92 @@
+@page "/modal"
+@using Connected.Components;
+@using Connected.Enums;
+@using Connected.Models.Modal;
+@using Connected.Models;
+@using Connected.Services;
+@using Connected.Utilities;
+
+@inject ModalDialogService modalDialog;
+
+
+MODAL DIALOG EXAMPLE
+
+
+
+
+Modal result: @test_modal_result
+
+Value: @value.ToString()
+
+
+@code {
+ int value = 0;
+
+ string test_modal_result = string.Empty;
+
+ ModalOptions options = new ModalOptions();
+
+
+ public void OpenModalDialog()
+ {
+ modalDialog.ShowDialog(
+ /*
+ MODAL TITLE
+ *
+ */
+ "Title",
+
+ /*
+ MODAL CONTENT !!!starting with @
+ *
+ */
+ @
+
Change the number input aand watch the value variable behind the modal change
+
+
,
+
+ /*
+ MODAL BUTTONS WITH ACTIONS
+ *
+ */
+ new List()
+ {
+ new ModalButton(
+ new Event(ChangeText, new object[]{"OK clicked"}), //event triggered on button click
+ "OK", //button text
+ ModalButtonType.OkButton, //button type: OK, Cancel, Regular
+ true //close modal on click
+ ),
+ new ModalButton(
+ new Event(ChangeText, new object[]{"Cancel clicked"}), //event triggered on button click - first parameter = method name, second parameter = method parameters --> array of objects
+ "Cancel", //button text
+ ModalButtonType.CancelButton, //button type: OK, Cancel, Regular
+ true //close modal on click
+ ),
+ new ModalButton(
+ new Event(ChangeText, new object[]{"Regular clicked"}), //event triggered on button click - first parameter = method name, second parameter = method parameters --> array of objects
+ "Click me", //button text
+ ModalButtonType.RegularButton, //button type: OK, Cancel, Regular
+ true //close modal on click
+ )
+ },
+
+ /*
+ MODAL OPTIONS
+ *
+ */
+ new ModalOptions(false,true,false)); //modal dialog options - optional
+ }
+
+ private void ChangeValue(int val)
+ {
+ value = val;
+ StateHasChanged();
+ }
+
+ public void ChangeText(string some_parameter)
+ {
+ test_modal_result = some_parameter;
+ StateHasChanged();
+ }
+}
\ No newline at end of file
diff --git a/src/Connected.Components.Showcase.Runner/Pages/Index.razor b/src/Connected.Components.Showcase.Runner/Pages/Index.razor
index e5de230..057b2b3 100644
--- a/src/Connected.Components.Showcase.Runner/Pages/Index.razor
+++ b/src/Connected.Components.Showcase.Runner/Pages/Index.razor
@@ -1,33 +1,20 @@
@page "/"
@using Connected.Components;
+@using Connected.Enums;
@using Connected.Models.Modal;
+@using Connected.Models;
@using Connected.Services;
+@using Connected.Utilities;
-@inject ModalDialogService modalDialog;
+Component Example page
+
-Component Sandbox
-
-
-
-
-
-
-
-
-Modal value @value.ToString()
@code {
- DateTime date = DateTime.Today;
-
- int value = 0;
- bool ResultDialogShown = false;
-
-
- private void OpenValueDialog()
- {
- ResultDialogShown = !ResultDialogShown;
- StateHasChanged();
- }
+
}
\ No newline at end of file
diff --git a/src/Connected.Components/Components/Link.razor b/src/Connected.Components/Components/Link.razor
index b4863c4..f07b8c7 100644
--- a/src/Connected.Components/Components/Link.razor
+++ b/src/Connected.Components/Components/Link.razor
@@ -3,4 +3,4 @@
href="@Url"
target="@_target">
@Text
-
+
\ No newline at end of file
diff --git a/src/Connected.Components/Components/Link.razor.cs b/src/Connected.Components/Components/Link.razor.cs
index dfdd460..ca0a8d7 100644
--- a/src/Connected.Components/Components/Link.razor.cs
+++ b/src/Connected.Components/Components/Link.razor.cs
@@ -1,13 +1,14 @@
using Connected.Enums;
using Connected.Utilities;
using Microsoft.AspNetCore.Components;
+using static Connected.Colors;
namespace Connected.Components;
public partial class Link
{
///
/// URL of the link
- /// Options: Any valid web page adress
+ /// Options: Any valid URL adress
/// Default: string.Empty
///
[Parameter, EditorRequired]
@@ -49,7 +50,9 @@ public partial class Link
{
get
{
- return new CssBuilder()
+ return new CssBuilder("btn")
+ .AddClass("btn-sm")
+ .AddClass("btn-link-core")
.AddClass(Class)
.Build();
}
diff --git a/src/Connected.Components/Components/ModalDialog.razor.cs b/src/Connected.Components/Components/ModalDialog.razor.cs
index 9c41215..0bc8114 100644
--- a/src/Connected.Components/Components/ModalDialog.razor.cs
+++ b/src/Connected.Components/Components/ModalDialog.razor.cs
@@ -44,6 +44,7 @@ public partial class ModalDialog : IDisposable
StateHasChanged();
}
+
public void CloseModal(ModalButton? button)
{
if (button is not null)
diff --git a/src/Connected.Components/Models/Modal/ModalOptions.cs b/src/Connected.Components/Models/Modal/ModalOptions.cs
index 50c3ae5..efba56e 100644
--- a/src/Connected.Components/Models/Modal/ModalOptions.cs
+++ b/src/Connected.Components/Models/Modal/ModalOptions.cs
@@ -5,4 +5,21 @@ public class ModalOptions
public bool DisableBackdropClick { get; set; } = false;
public bool NoHeader { get; set; } = false;
+ public ModalOptions()
+ {
+ }
+
+ public ModalOptions(ModalOptions options)
+ {
+ DisableBackdropClick = options.DisableBackdropClick;
+ NoHeader = options.NoHeader;
+ DisableEscKey = options.DisableEscKey;
+ }
+
+ public ModalOptions(bool disableEscKey, bool disableBackdropClick, bool noHeader)
+ {
+ DisableEscKey = disableEscKey;
+ DisableBackdropClick = disableBackdropClick;
+ NoHeader = noHeader;
+ }
}
diff --git a/src/Connected.Components/Models/Modal/ModalResult.cs b/src/Connected.Components/Models/Modal/ModalResult.cs
deleted file mode 100644
index 20eaec8..0000000
--- a/src/Connected.Components/Models/Modal/ModalResult.cs
+++ /dev/null
@@ -1,5 +0,0 @@
-namespace Connected.Models.Modal;
-internal class ModalResult
-{
- public object Result { get; set; }
-}
diff --git a/src/Connected.Components/Services/ModalDialogService.cs b/src/Connected.Components/Services/ModalDialogService.cs
index c07bc8b..581050b 100644
--- a/src/Connected.Components/Services/ModalDialogService.cs
+++ b/src/Connected.Components/Services/ModalDialogService.cs
@@ -1,5 +1,6 @@
using Connected.Models.Modal;
using Microsoft.AspNetCore.Components;
+using System.ComponentModel;
namespace Connected.Services;
public class ModalDialogService
@@ -7,15 +8,22 @@ public class ModalDialogService
public event Action, ModalOptions> OnShow;
public event Action OnClose;
- public void ShowDialog(string title, RenderFragment content, List buttons, ModalOptions options)
+ public void ShowDialog(string title, RenderFragment Content, List buttons, ModalOptions options)
{
- OnShow?.Invoke(title, content, buttons, options);
+ var body = Content;
+ OnShow?.Invoke(title, body, buttons, options);
}
- public void ShowDialog(string title, MarkupString contentMarkup, List buttons, ModalOptions options)
+ public void ShowDialog(string title, MarkupString content, List buttons, ModalOptions options)
{
- var content = new RenderFragment(x => x.AddContent(1, contentMarkup));
- OnShow?.Invoke(title, content, buttons, options);
+ var body = new RenderFragment(x => x.AddContent(1, content));
+ OnShow?.Invoke(title, body, buttons, options);
+ }
+
+ public void ShowDialog(string title, MarkupString content, List buttons)
+ {
+ var body = new RenderFragment(x => x.AddContent(1, content));
+ OnShow?.Invoke(title, body, buttons, new ModalOptions());
}
public void Close()
diff --git a/src/Connected.Components/Utilities/Helper.cs b/src/Connected.Components/Utilities/Helper.cs
index 4771980..ca038bb 100644
--- a/src/Connected.Components/Utilities/Helper.cs
+++ b/src/Connected.Components/Utilities/Helper.cs
@@ -1,4 +1,5 @@
-using System;
+using Microsoft.AspNetCore.Components;
+using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
@@ -159,4 +160,17 @@ public static class Helper
return false;
}
}
+
+ public static RenderFragment HtmlString(string raw)
+ {
+ return builder => {
+ builder.AddContent(0, raw);
+ };
+ }
+
+ public static MarkupString HtmlMarkup(string raw)
+ {
+ return (MarkupString)raw;
+ }
+
}