Skip to content
Open
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
SubClasses="componentSubClasses"
GitHubUrl="../Utils/Params/BitCascadingValueProvider.cs"
GitHubDemoUrl="Utilities/CascadingValueProvider/BitCascadingValueProviderDemo.razor">
<DemoExample Title="Basic" RazorCode="@example1RazorCode" CsharpCode="@example1CsharpCode" Id="example1">
<DemoExample Title="Basic" RazorCode="@example1RazorCode" Id="example1">
<div>Checkout the basic usage of the BitCascadingValueProvider in action here.</div>

<br /><br />
Expand All @@ -23,7 +23,7 @@
new(new CascadingDemoUser("Saleh Xafan", "CTO"), "NamedUser"),
new(new CascadingDemoUser("Yaser Moradi", "CEO"))
])">
<CascadingValueConsumer />
<CascadingValueDemoConsumer />
</BitCascadingValueProvider>
</DemoExample>

Expand All @@ -43,7 +43,7 @@
<br /><br />

<BitCascadingValueProvider Values="values">
<CascadingValueConsumer Title="Changing cascading values:" />
<CascadingValueDemoConsumer Title="Changing cascading values:" />
</BitCascadingValueProvider>
</DemoExample>

Expand All @@ -61,7 +61,7 @@
{ nullableNamedUser, "UserInfo" },
{ nullableTypedUser }
})">
<CascadingValueConsumer Title="ValueList cascading values:" />
<CascadingValueDemoConsumer Title="ValueList cascading values:" />
</BitCascadingValueProvider>
</DemoExample>
</DemoPage>
Original file line number Diff line number Diff line change
Expand Up @@ -126,77 +126,11 @@ public partial class BitCascadingValueProviderDemo
new(new CascadingDemoUser(""Saleh Xafan"", ""CTO""), ""NamedUser""),
new(new CascadingDemoUser(""Yaser Moradi"", ""CEO""))
])"">
<CascadingValueConsumer />
<!-- Place components with cascading parameters here.
The demo CascadingValueDemoConsumer's source code is located at https://github.com/bitfoundation/bitplatform/tree/develop/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/CascadingValueProvider/CascadingValueDemoConsumer.razor
CascadingDemoUser's source code can be found at https://github.com/bitfoundation/bitplatform/tree/develop/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/CascadingValueProvider/CascadingDemoUser.cs -->
<CascadingValueDemoConsumer />
</BitCascadingValueProvider>";
private readonly string example1CsharpCode = @"
public sealed class CascadingValueConsumer : ComponentBase
{
[Parameter] public string? Title { get; set; }

[CascadingParameter(Name = ""Theme"")]
public string? Theme { get; set; }

[CascadingParameter(Name = ""NotificationCount"")]
public int? NotificationCount { get; set; }

[CascadingParameter(Name = ""IsAuthenticated"")]
public bool? IsAuthenticated { get; set; }

[CascadingParameter(Name = ""NamedUser"")]
public CascadingDemoUser? NamedUser { get; set; }

[CascadingParameter]
public CascadingDemoUser? TypedUser { get; set; }

protected override void BuildRenderTree(RenderTreeBuilder builder)
{
var seq = 0;

builder.OpenElement(seq++, ""div"");

builder.OpenElement(seq++, ""div"");
builder.AddAttribute(seq++, ""style"", ""font-weight:bold;font-size:20px"");
builder.AddContent(seq++, Title ?? ""Child component with cascading parameters:"");
builder.CloseElement();

builder.AddMarkupContent(seq++, ""<br />"");

builder.OpenElement(seq++, ""div"");

AddValueRow(ref seq, builder, ""Theme: "", Theme ?? ""null"");

AddValueRow(ref seq, builder, ""Notifications: "", NotificationCount?.ToString() ?? ""null"");

AddValueRow(ref seq, builder, ""Authenticated: "", IsAuthenticated?.ToString() ?? ""null"");

AddValueRow(ref seq, builder, ""User (named parameter): "", FormatUser(NamedUser) ?? ""null"");
AddValueRow(ref seq, builder, ""User (typed parameter): "", FormatUser(TypedUser) ?? ""null"");

builder.CloseElement();

builder.CloseElement();
}

private static void AddValueRow(ref int seq, RenderTreeBuilder builder, string caption, string? value)
{
if (value is null) return;

builder.OpenElement(seq++, ""div"");

builder.OpenElement(seq++, ""span"");
builder.AddAttribute(seq++, ""style"", ""font-weight:bold"");
builder.AddContent(seq++, caption);
builder.CloseElement();

builder.OpenElement(seq++, ""span"");
builder.AddContent(seq++, value);
builder.CloseElement();

builder.CloseElement();
}

private static string? FormatUser(CascadingDemoUser? user) => user is null ? null : $""{user.Name} [{user.Role}]"";
}";

private readonly string example2RazorCode = @"
<BitButton OnClick=""() => currentTheme = nextTheme"">Switch to @nextTheme theme</BitButton>
Expand All @@ -207,7 +141,10 @@ private static void AddValueRow(ref int seq, RenderTreeBuilder builder, string c


<BitCascadingValueProvider Values=""values"">
<CascadingValueConsumer Title=""Values"" />
<!-- Place components with cascading parameters here.
The demo CascadingValueDemoConsumer's source code is located at https://github.com/bitfoundation/bitplatform/tree/develop/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/CascadingValueProvider/CascadingValueDemoConsumer.razor
CascadingDemoUser's source code can be found at https://github.com/bitfoundation/bitplatform/tree/develop/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/CascadingValueProvider/CascadingDemoUser.cs -->
<CascadingValueDemoConsumer />
</BitCascadingValueProvider>";
private readonly string example2CsharpCode = @"
private bool isAuthenticated = true;
Expand All @@ -225,78 +162,7 @@ private static void AddValueRow(ref int seq, RenderTreeBuilder builder, string c
(notificationCount, ""NotificationCount""),
new (new CascadingDemoUser(""Saleh Xafan"", ""CTO""), ""NamedUser""),
new (new CascadingDemoUser(userName, userRole))
];



public sealed class CascadingValueConsumer : ComponentBase
{
[Parameter] public string? Title { get; set; }

[CascadingParameter(Name = ""Theme"")]
public string? Theme { get; set; }

[CascadingParameter(Name = ""NotificationCount"")]
public int? NotificationCount { get; set; }

[CascadingParameter(Name = ""IsAuthenticated"")]
public bool? IsAuthenticated { get; set; }

[CascadingParameter(Name = ""NamedUser"")]
public CascadingDemoUser? NamedUser { get; set; }

[CascadingParameter]
public CascadingDemoUser? TypedUser { get; set; }

protected override void BuildRenderTree(RenderTreeBuilder builder)
{
var seq = 0;

builder.OpenElement(seq++, ""div"");

builder.OpenElement(seq++, ""div"");
builder.AddAttribute(seq++, ""style"", ""font-weight:bold;font-size:20px"");
builder.AddContent(seq++, Title ?? ""Child component with cascading parameters:"");
builder.CloseElement();

builder.AddMarkupContent(seq++, ""<br />"");

builder.OpenElement(seq++, ""div"");

AddValueRow(ref seq, builder, ""Theme: "", Theme ?? ""null"");

AddValueRow(ref seq, builder, ""Notifications: "", NotificationCount?.ToString() ?? ""null"");

AddValueRow(ref seq, builder, ""Authenticated: "", IsAuthenticated?.ToString() ?? ""null"");

AddValueRow(ref seq, builder, ""User (named parameter): "", FormatUser(NamedUser) ?? ""null"");
AddValueRow(ref seq, builder, ""User (typed parameter): "", FormatUser(TypedUser) ?? ""null"");

builder.CloseElement();

builder.CloseElement();
}

private static void AddValueRow(ref int seq, RenderTreeBuilder builder, string caption, string? value)
{
if (value is null) return;

builder.OpenElement(seq++, ""div"");

builder.OpenElement(seq++, ""span"");
builder.AddAttribute(seq++, ""style"", ""font-weight:bold"");
builder.AddContent(seq++, caption);
builder.CloseElement();

builder.OpenElement(seq++, ""span"");
builder.AddContent(seq++, value);
builder.CloseElement();

builder.CloseElement();
}

private static string? FormatUser(CascadingDemoUser? user) => user is null ? null : $""{user.Name} [{user.Role}]"";
}";
];";

private readonly string example3RazorCode = @"
<BitCascadingValueProvider
Expand All @@ -308,83 +174,15 @@ private static void AddValueRow(ref int seq, RenderTreeBuilder builder, string c
{ nullableNamedUser, ""UserInfo"" },
{ nullableTypedUser }
})"">
<CascadingValueConsumer Title=""ValueList"" />
<!-- Place components with cascading parameters here.
The demo CascadingValueDemoConsumer's source code is located at https://github.com/bitfoundation/bitplatform/tree/develop/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/CascadingValueProvider/CascadingValueDemoConsumer.razor
CascadingDemoUser's source code can be found at https://github.com/bitfoundation/bitplatform/tree/develop/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Pages/Components/Utilities/CascadingValueProvider/CascadingDemoUser.cs -->
<CascadingValueDemoConsumer />
</BitCascadingValueProvider>";
private readonly string example3CsharpCode = @"
private readonly string? nullableTheme = null;
private readonly bool? nullableIsAuthenticated = null;
private readonly int? nullableNotificationCount = null;
private readonly CascadingDemoUser? nullableNamedUser = null;
private readonly CascadingDemoUser? nullableTypedUser = null;



public sealed class CascadingValueConsumer : ComponentBase
{
[Parameter] public string? Title { get; set; }

[CascadingParameter(Name = ""Theme"")]
public string? Theme { get; set; }

[CascadingParameter(Name = ""NotificationCount"")]
public int? NotificationCount { get; set; }

[CascadingParameter(Name = ""IsAuthenticated"")]
public bool? IsAuthenticated { get; set; }

[CascadingParameter(Name = ""NamedUser"")]
public CascadingDemoUser? NamedUser { get; set; }

[CascadingParameter]
public CascadingDemoUser? TypedUser { get; set; }

protected override void BuildRenderTree(RenderTreeBuilder builder)
{
var seq = 0;

builder.OpenElement(seq++, ""div"");

builder.OpenElement(seq++, ""div"");
builder.AddAttribute(seq++, ""style"", ""font-weight:bold;font-size:20px"");
builder.AddContent(seq++, Title ?? ""Child component with cascading parameters:"");
builder.CloseElement();

builder.AddMarkupContent(seq++, ""<br />"");

builder.OpenElement(seq++, ""div"");

AddValueRow(ref seq, builder, ""Theme: "", Theme ?? ""null"");

AddValueRow(ref seq, builder, ""Notifications: "", NotificationCount?.ToString() ?? ""null"");

AddValueRow(ref seq, builder, ""Authenticated: "", IsAuthenticated?.ToString() ?? ""null"");

AddValueRow(ref seq, builder, ""User (named parameter): "", FormatUser(NamedUser) ?? ""null"");
AddValueRow(ref seq, builder, ""User (typed parameter): "", FormatUser(TypedUser) ?? ""null"");

builder.CloseElement();

builder.CloseElement();
}

private static void AddValueRow(ref int seq, RenderTreeBuilder builder, string caption, string? value)
{
if (value is null) return;

builder.OpenElement(seq++, ""div"");

builder.OpenElement(seq++, ""span"");
builder.AddAttribute(seq++, ""style"", ""font-weight:bold"");
builder.AddContent(seq++, caption);
builder.CloseElement();

builder.OpenElement(seq++, ""span"");
builder.AddContent(seq++, value);
builder.CloseElement();

builder.CloseElement();
}

private static string? FormatUser(CascadingDemoUser? user) => user is null ? null : $""{user.Name} [{user.Role}]"";
}";
private readonly CascadingDemoUser? nullableTypedUser = null;";
}

This file was deleted.

Loading
Loading