Skip to content

Commit

Permalink
feat: SLoading (#724)
Browse files Browse the repository at this point in the history
  • Loading branch information
wzh425 authored Aug 7, 2024
1 parent 2dd532e commit f1b9922
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/Masa.Stack.Components/Configs/GlobalConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,13 @@ public class GlobalConfig : IScopedDependency
private bool _mini;
private string _favorite;
private Guid _currentTeamId;
private bool _loading;
private int _navLayer = 2;

public List<int> NavLayerItems = new List<int> { 1, 2, 3 };

public string LoadingText = string.Empty;

public delegate void GlobalConfigChanged();

public event GlobalConfigChanged? OnLanguageChanged;
Expand All @@ -30,6 +33,10 @@ public class GlobalConfig : IScopedDependency

public event NavLayerChanged? OnNavLayerChanged;

public delegate void LoadingChanged(bool loading, string loadingText);

public event LoadingChanged? OnLoadingChanged;

public GlobalConfig(I18n i18n, LocalStorage localStore)

Check warning on line 40 in src/Masa.Stack.Components/Configs/GlobalConfig.cs

View workflow job for this annotation

GitHub Actions / package push

Non-nullable field '_favorite' must contain a non-null value when exiting constructor. Consider declaring the field as nullable.

Check warning on line 40 in src/Masa.Stack.Components/Configs/GlobalConfig.cs

View workflow job for this annotation

GitHub Actions / package push

Non-nullable property 'Menus' must contain a non-null value when exiting constructor. Consider declaring the property as nullable.

Check warning on line 40 in src/Masa.Stack.Components/Configs/GlobalConfig.cs

View workflow job for this annotation

GitHub Actions / package push

Non-nullable field '_favorite' must contain a non-null value when exiting constructor. Consider declaring the field as nullable.
{
_i18N = i18n;
Expand Down Expand Up @@ -109,6 +116,19 @@ public int NavLayer
}
}

public bool Loading
{
get => _loading;
set
{
if (_loading != value)
{
_loading = value;
OnLoadingChanged?.Invoke(_loading, LoadingText);
}
}
}

public async void Initialization()
{
_dark = Convert.ToBoolean(await _localStore.GetItemAsync(DarkStoreKey));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
@implements IDisposable
@inject GlobalConfig GlobalConfig;

<MOverlay ZIndex=9999999 Value="Loading" Class="@Class" Style="@Style" Color="@Color">
<div class="d-flex flex-column">
<MProgressCircular Indeterminate Width="@Width" Size="@Size" Class="align-self-center"></MProgressCircular>
<div class="mt-1">@LoadingText</div>
</div>
</MOverlay>

@code {
[Parameter]
public bool Loading { get; set; }

[Parameter]
public string LoadingText { get; set; } = string.Empty;

[Parameter]
public StringNumber? Size { get; set; } = 64;

[Parameter]
public StringNumber? Width { get; set; }

[Parameter]
public string? Class { get; set; }

[Parameter]
public string? Style { get; set; }

[Parameter]
public string? Color { get; set; }

void Changed(bool loading, string loadingText)
{
Loading = loading;
LoadingText = loadingText;
base.StateHasChanged();
}

protected override void OnInitialized()
{
GlobalConfig.OnLoadingChanged += Changed;
}

public void Dispose()
{
GlobalConfig.OnLoadingChanged -= Changed;
}
}

0 comments on commit f1b9922

Please sign in to comment.