Skip to content

Commit 9d81145

Browse files
authored
Merge pull request #110 from TechnologyEnhancedLearning/refactor-warnings
chore(warnings): tidying
2 parents 7526cf0 + ef7a9db commit 9d81145

File tree

7 files changed

+23
-30
lines changed

7 files changed

+23
-30
lines changed

TELBlazor.Components.ShowCase.E2ETests/Pages/BaseComponentPages/TELButtonPageTests.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ public TELButtonPageTests()
4141
public async Task TELBlazorButtonMeetsAxeAccesibilityStandards(string browserType, bool jsEnabled, ViewportHelper.ViewportType viewport)
4242
{
4343

44-
45-
4644
using IPlaywright playwright = await Microsoft.Playwright.Playwright.CreateAsync();
4745

4846
IBrowserContext browserContext = await BrowserHelper.CreateBrowserContextAsync(playwright, browserType, jsEnabled, viewport, BaseUrl);
@@ -61,7 +59,8 @@ await browserContext.Tracing.StartAsync(new()
6159

6260
await page.GotoOnceNetworkIsIdleAsync("TELButton");
6361

64-
await page.WaitForSelectorAsync("button");
62+
// await page.WaitForSelectorAsync("button");
63+
await page.GetByRole(AriaRole.Button, new() { Name = "Click Counter" }).WaitForAsync();
6564
ILocator button = page.GetByRole(AriaRole.Button, new() { Name = "Click Counter" });
6665

6766
AxeResult axeResults = await button.RunAxe();

TELBlazor.Components/Components/BaseComponents/TELButton.razor

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
ToolTipTitle="@ToolTipTitle"
1414
AdditionalCssClasses="@AdditionalCssClasses"
1515
PreventDoubleClick="@PreventDoubleClick"
16-
/>
16+
DisableButton="@DisableButton" />
1717
}
1818
else
1919
{
@@ -38,7 +38,7 @@ else
3838
ToolTipTitle="@ToolTipTitle"
3939
AdditionalCssClasses="@AdditionalCssClasses"
4040
PreventDoubleClick="@PreventDoubleClick"
41-
/>
41+
DisableButton="@DisableButton" />
4242
</EditForm>
4343
}
4444

@@ -55,7 +55,7 @@ else
5555
///</summary>
5656
[Parameter] public bool IsSubmitButtonForEditForm { get; set; } = false;
5757
[Parameter] public Dictionary<string, string> FormData { get; set; } = new();
58-
[Parameter] public string NoJSActionUrl { get; set; } = null; // URL for the form submission (not required because there may be a parent form with it if its a submit for a form)
58+
[Parameter] public string? NoJSActionUrl { get; set; } = null; // URL for the form submission (not required because there may be a parent form with it if its a submit for a form)
5959
[Parameter] public EventCallback OnClick { get; set; } // Not required because the submit wont use it, when its placed in a form.
6060
[Parameter] public bool PreventDoubleClick { get; set; } = false; // View Component equivalent behaviour
6161
@@ -64,6 +64,7 @@ else
6464
// -----------------------------
6565
[EditorRequired, Parameter] public required string ButtonText { get; set; }
6666
[Parameter] public TELButtonStyle ButtonStyle { get; set; } = TELButtonStyle.Primary;
67+
[Parameter] public bool DisableButton { get; set; } = false; // Disable the button if true
6768
[Parameter] public string AdditionalCssClasses { get; set; } = "";
6869
[EditorRequired, Parameter] public required string ToolTipTitle { get; set; }
6970

@@ -83,7 +84,6 @@ else
8384
// -----------------------------
8485
// Internal State
8586
// -----------------------------
86-
private bool isButtonDisabled = false;
8787
private bool isClickedRecently = false;
8888

8989
// -----------------------------
@@ -101,7 +101,6 @@ else
101101
if (PreventDoubleClick && !isClickedRecently)
102102
{
103103
isClickedRecently = true;
104-
isButtonDisabled = true;
105104

106105
if (OnClick.HasDelegate)
107106
{
@@ -110,7 +109,6 @@ else
110109

111110
await Task.Delay(1000); // Re-enable after 1 sec
112111
isClickedRecently = false;
113-
isButtonDisabled = false;
114112
}
115113
else if (!PreventDoubleClick && OnClick.HasDelegate) // Just call the OnClick handler if double-click prevention is not needed
116114
{

TELBlazor.Components/Components/BaseComponents/TELButtonSubComponent.razor

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
role="@AriaRole"
88
aria-describedby="@AriaDescribedBy"
99
title="@ToolTipTitle"
10-
tabindex="@TabIndex">
10+
tabindex="@TabIndex"
11+
disabled="@DisableButton"
12+
>
1113
<span class="button-text">@ButtonText</span>
1214
@if (!string.IsNullOrEmpty(AssistiveText))
1315
{
@@ -20,13 +22,7 @@
2022
/// <summary>
2123
/// Guid generated on creation to link elements for screen readers
2224
/// </summary>
23-
private string _ariaDescribedBy;
24-
public string AriaDescribedBy => _ariaDescribedBy;
25-
26-
protected override void OnInitialized()
27-
{
28-
_ariaDescribedBy = $"assistive-text-{Guid.NewGuid()}";
29-
}
25+
public string AriaDescribedBy {get;} = $"assistive-text-{Guid.NewGuid()}";
3026

3127
/// <summary>
3228
/// Button Options
@@ -37,6 +33,8 @@
3733
[EditorRequired, Parameter]
3834
public required string ButtonText { get; set; }
3935

36+
[Parameter] public bool DisableButton { get; set; } = false; // Disable the button if true
37+
4038
[Parameter] public string AdditionalCssClasses { get; set; } = ""; // Custom CSS classes for additional styling
4139
4240
[Parameter]

TELBlazor.Components/Core/Models/Logging/LocalStorageLogLevel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace TELBlazor.Components.Core.Models.Logging
88
{
99
public class LocalStorageLogLevel : ILocalStorageLogLevel
1010
{
11-
public string Level { get; set; } = null;
11+
public required string Level { get; set; }
1212
public DateTime Expires { get; set; }
1313
}
1414
}

TELBlazor.Components/Core/Services/HelperServices/ILogLevelSwitcherService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public interface ILogLevelSwitcherService
1010
{
1111
public string GetCurrentLogLevel();// String so can be more generic
1212

13-
public string SetLogLevel(string level);
13+
public Task<string> SetLogLevel(string level);
1414

1515
public List<string> GetAvailableLogLevels();
1616
public bool IsInitialized { get; set; }

TELBlazor.Components/OptionalImplementations/Core/Services/HelperServices/SerilogLogLevelSwitcher.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ public async Task InitializeLogLevelFromAsyncSourceIfAvailable()
3737

3838
try
3939
{
40-
string storedLevel = await GetStoredLogLevelWithExpiration();
40+
string? storedLevel = await GetStoredLogLevelWithExpiration();
4141
if (!string.IsNullOrEmpty(storedLevel))
4242
{
4343
if (Enum.TryParse(storedLevel, true, out LogEventLevel logLevel) && logLevel > _loggingLevelSwitch.MinimumLevel)
4444
{
45-
SetLogLevel(logLevel.ToString());
45+
await SetLogLevel(logLevel.ToString());
4646
_logger.LogInformation("Log level initialized from local storage: {Level}", logLevel);
4747
}
4848
}
@@ -55,7 +55,7 @@ public async Task InitializeLogLevelFromAsyncSourceIfAvailable()
5555
}
5656
}
5757

58-
public List<string> GetAvailableLogLevels() => Enum.GetNames(typeof(LogEventLevel)).ToList();
58+
public List<string> GetAvailableLogLevels() => Enum.GetNames(typeof(LogEventLevel)).ToList<string>();
5959

6060
public string GetCurrentLogLevel()
6161
{
@@ -65,7 +65,7 @@ public string GetCurrentLogLevel()
6565
return logLevel;
6666
}
6767

68-
public string SetLogLevel(string level)
68+
public async Task<string> SetLogLevel(string level)
6969
{
7070
LogAllLevels("Before Change");
7171
if (string.IsNullOrWhiteSpace(level))
@@ -83,7 +83,7 @@ public string SetLogLevel(string level)
8383
_loggingLevelSwitch.MinimumLevel.ToString(), logLevel.ToString());
8484

8585
_loggingLevelSwitch.MinimumLevel = logLevel;
86-
StoreLogLevelWithTimestamp(logLevel.ToString());
86+
await StoreLogLevelWithTimestamp(logLevel.ToString());
8787
LogAllLevels("After Change");
8888
return GetCurrentLogLevel();
8989
}
@@ -100,7 +100,7 @@ private void LogAllLevels(string phase)
100100
}
101101

102102

103-
private async Task<string> GetStoredLogLevelWithExpiration()
103+
private async Task<string?> GetStoredLogLevelWithExpiration()
104104
{
105105
try
106106
{

TELBlazor.Components/OptionalImplementations/Test/TestComponents/LogLevelSwitcher.razor

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
CurrentLogLevel = LogLevelSwitcherService.GetCurrentLogLevel();
2323
}
2424

25-
private void SetLogLevel(string level)
25+
private async void SetLogLevel(string level)
2626
{
27-
CurrentLogLevel = LogLevelSwitcherService.SetLogLevel(level);
27+
CurrentLogLevel = await LogLevelSwitcherService.SetLogLevel(level);
2828
// No StateHasChanged needed here. The component will re-render
2929
// when CurrentLogLevel is updated due to how Blazor change detection works.
3030
}
@@ -33,11 +33,9 @@
3333
{
3434
if (e.Value is string selectedLevel) // Safe casting
3535
{
36-
CurrentLogLevel = e.Value.ToString();
36+
CurrentLogLevel = selectedLevel; // Use the safely casted value
3737
LogLevelSwitcherService.SetLogLevel(CurrentLogLevel);
3838
StateHasChanged();
3939
}
4040
}
41-
4241
}
43-

0 commit comments

Comments
 (0)