Skip to content

Commit de6a6a1

Browse files
committed
Delete all data option
1 parent 2458c5b commit de6a6a1

6 files changed

Lines changed: 61 additions & 8 deletions

File tree

PocketDDD.BlazorClient/PocketDDD.BlazorClient.LocalStorage/LocalStorageContext.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ protected LocalStorageContext(ILocalStorageService localStorage)
1616
InitialiseKeys(typeof(KeySyncItem<>));
1717
}
1818

19+
public ValueTask DeleteAllDataAsync() => _localStorage.ClearAsync();
20+
1921
private void InitialiseKeys(Type keyType)
2022
{
2123
this.GetType()

PocketDDD.BlazorClient/PocketDDD.BlazorClient/Features/EventFeedback/Components/EventFeedback.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
</MudAppBar>
6464

6565
@code {
66-
[CascadingParameter] MudDialogInstance MudDialog { get; set; }
66+
[CascadingParameter] MudDialogInstance MudDialog { get; set; } = default!;
6767

6868
int _refreshments = 0;
6969
int _venue = 0;

PocketDDD.BlazorClient/PocketDDD.BlazorClient/Features/Security/Store/SecurityActions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ public record LoginAction(string LoginName);
77

88
public record SetLoginSuccessAction(LoginResultDTO User);
99
public record SetCurrentUserAction(LoginResultDTO User);
10-
public record SetLoginFailed();
10+
public record SetLoginFailed();
11+
public record DeleteAllDataAndLogOutAction();

PocketDDD.BlazorClient/PocketDDD.BlazorClient/Features/Security/Store/SecurityEffects.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Net.Http.Json;
22
using Blazored.LocalStorage;
33
using Fluxor;
4+
using Microsoft.AspNetCore.Components;
45
using MudBlazor;
56
using PocketDDD.BlazorClient.Features.EventScore.Store;
67
using PocketDDD.BlazorClient.Features.Home.Store;
@@ -15,15 +16,17 @@ public class SecurityEffects
1516
private readonly LocalStorageContext _localStorage;
1617
private readonly IPocketDDDApiService _pocketDDDAPI;
1718
private readonly IDialogService _dialog;
18-
19+
private readonly NavigationManager _navigationManager;
1920
private IDialogReference? currentDialogReference = null;
2021

21-
public SecurityEffects(IState<SecurityState> state, LocalStorageContext localStorage, IPocketDDDApiService pocketDDDAPI, IDialogService dialog)
22+
public SecurityEffects(IState<SecurityState> state, LocalStorageContext localStorage,
23+
IPocketDDDApiService pocketDDDAPI, IDialogService dialog, NavigationManager navigationManager)
2224
{
2325
_state = state;
2426
_localStorage = localStorage;
2527
_pocketDDDAPI = pocketDDDAPI;
2628
_dialog = dialog;
29+
_navigationManager = navigationManager;
2730
}
2831

2932
[EffectMethod]
@@ -76,4 +79,11 @@ public Task OnLoginSuccess(SetCurrentUserAction action, IDispatcher dispatcher)
7679
_pocketDDDAPI.SetUserAuthToken(action.User.Token);
7780
return Task.CompletedTask;
7881
}
82+
83+
[EffectMethod]
84+
public async Task DeleteAllDataAndLogOut(DeleteAllDataAndLogOutAction action, IDispatcher dispatcher)
85+
{
86+
await _localStorage.DeleteAllDataAsync();
87+
_navigationManager.NavigateTo("/", true);
88+
}
7989
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
@using PocketDDD.BlazorClient.Features.Security.Store;
2+
@inject IDispatcher Dispatcher
3+
4+
@if (_showStart)
5+
{
6+
<MudButton
7+
Variant="Variant.Filled"
8+
StartIcon="@Icons.Material.Filled.Delete"
9+
Color="Color.Error"
10+
Class="mt-2"
11+
OnClick="() => _showStart = false">
12+
Delete All Data & Logout
13+
</MudButton>
14+
}
15+
else
16+
{
17+
<MudButton
18+
Variant="Variant.Filled"
19+
StartIcon="@Icons.Material.Filled.Cancel"
20+
Color="Color.Primary"
21+
Class="mt-2"
22+
OnClick="() => _showStart = true">
23+
Cancel
24+
</MudButton>
25+
<MudButton
26+
Variant="Variant.Filled"
27+
StartIcon="@Icons.Material.Filled.Delete"
28+
Color="Color.Error"
29+
Class="mt-2"
30+
OnClick="HandlerConfirmDelete">
31+
Confirm, delete all data
32+
</MudButton>
33+
}
34+
35+
@code {
36+
private bool _showStart = true;
37+
38+
void HandlerConfirmDelete() => Dispatcher.Dispatch(new DeleteAllDataAndLogOutAction());
39+
}

PocketDDD.BlazorClient/PocketDDD.BlazorClient/Features/Sync/Components/SyncStatus.razor

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@
2828
<MudText Typo="Typo.subtitle1">@State.Value.OutstandingSyncItems</MudText>
2929
</MudCardContent>
3030
</MudCard>
31-
31+
32+
<DeleteAllData></DeleteAllData>
33+
3234
@WhenSyncingShowSyncAlert()
3335

3436
</DialogContent>
@@ -54,10 +56,9 @@
5456
</MudAppBar>
5557

5658
@code {
57-
RenderFragment? WhenSyncingShowSyncAlert() =>
58-
State.Value.IsSyncing
59+
RenderFragment? WhenSyncingShowSyncAlert() => State.Value.IsSyncing
5960
? @<MudAlert Class="mt-2" Severity="Severity.Info" Icon="@Icons.Material.Filled.CloudSync"> Syncing...</MudAlert>
60-
: null;
61+
: null;
6162
}
6263

6364
@code {

0 commit comments

Comments
 (0)