From a440be4df759c7d317c1574ce1132fab807494f2 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Sun, 17 Sep 2023 22:51:50 +1000 Subject: Consolidated user session state and made it persistent across all scopes pertaining to a session --- Pages/Component/NsfwSwitch.razor | 4 ++-- Pages/Component/TagSelectDialog.razor | 10 +++++----- Pages/Gallery.razor | 10 +++++----- Pages/TagDefinitions.razor | 10 +++++----- 4 files changed, 17 insertions(+), 17 deletions(-) (limited to 'Pages') diff --git a/Pages/Component/NsfwSwitch.razor b/Pages/Component/NsfwSwitch.razor index d0f499d..b96606d 100644 --- a/Pages/Component/NsfwSwitch.razor +++ b/Pages/Component/NsfwSwitch.razor @@ -1,8 +1,8 @@ @inject IUserService userService - + @code { private void ToggleNsfw(bool showNsfw) => - userService.ShowNsfw = showNsfw; + userService.UserSessionState.ShowNsfw = showNsfw; } \ No newline at end of file diff --git a/Pages/Component/TagSelectDialog.razor b/Pages/Component/TagSelectDialog.razor index 7be5c43..20be31e 100644 --- a/Pages/Component/TagSelectDialog.razor +++ b/Pages/Component/TagSelectDialog.razor @@ -71,7 +71,7 @@ public void Hide() => Visible = false; protected override void OnInitialized() { - userService.ShowNsfwChanged += ShowNsfwChanged; + userService.UserSessionState.OnStateChange += ShowNsfwChanged; LoadTags(); } @@ -81,7 +81,7 @@ var selected = SelectedTags.Select(td => td.Guid); int[] nsfwTags = Array.Empty(); - if(!userService.ShowNsfw) + if(!userService.UserSessionState.ShowNsfw) nsfwTags = tagService.TagsThatImply(HBContext.NsfwTag) .Select(td => td.ObjectId) .ToArray(); @@ -91,7 +91,7 @@ .Where(td => td.Source == TagSource.UserTag) .OrderBy(td => td.Name) .AsEnumerable() - .Where(td => userService.ShowNsfw || !td.ImplicitTags + .Where(td => userService.UserSessionState.ShowNsfw || !td.ImplicitTags .IntersectBy(nsfwTags, td => td.ObjectId) .Any()) .Select(td => new Tuple( @@ -170,7 +170,7 @@ StateHasChanged(); } - public async void ShowNsfwChanged(object? sender, bool showNsfw) => + public async void ShowNsfwChanged(UserSessionState userSessionState) => await InvokeAsync(() => { LoadTags(); StateHasChanged(); @@ -178,6 +178,6 @@ public void Dispose() { db.Dispose(); - userService.ShowNsfwChanged -= ShowNsfwChanged; + userService.UserSessionState.OnStateChange -= ShowNsfwChanged; } } diff --git a/Pages/Gallery.razor b/Pages/Gallery.razor index d473c28..762ef7f 100644 --- a/Pages/Gallery.razor +++ b/Pages/Gallery.razor @@ -10,7 +10,7 @@ @Title -@if(Ingest && !userService.ShowNsfw) { +@if(Ingest && !userService.UserSessionState.ShowNsfw) {

Ingest feed is not available unless NSFW mode is enabled!

You must enable NSFW mode to continue...

@@ -68,7 +68,7 @@ private IEnumerator mediaEnumerator; protected override void OnInitialized() => - userService.ShowNsfwChanged += ShowNsfwChanged; + userService.UserSessionState.OnStateChange += ShowNsfwChanged; protected override void OnParametersSet() => LoadMedia(); @@ -124,7 +124,7 @@ break; Media? m = enumerator.Current; - if(!userService.ShowNsfw) + if(!userService.UserSessionState.ShowNsfw) if(m.Tags.Select(t => t.TagDefinitionId).Intersect(nsfwTags).Any() || m.IsIngest) continue; @@ -135,7 +135,7 @@ } } - private async void ShowNsfwChanged(object? sender, bool showNsfw) { + private async void ShowNsfwChanged(UserSessionState userSessionState) { await InvokeAsync(() => { LoadMedia(); StateHasChanged(); @@ -144,6 +144,6 @@ public void Dispose() { mediaEnumerator.Dispose(); - userService.ShowNsfwChanged -= ShowNsfwChanged; + userService.UserSessionState.OnStateChange -= ShowNsfwChanged; } } diff --git a/Pages/TagDefinitions.razor b/Pages/TagDefinitions.razor index f728631..3840c6d 100644 --- a/Pages/TagDefinitions.razor +++ b/Pages/TagDefinitions.razor @@ -94,14 +94,14 @@ private string?[] tagNamespaces; protected override void OnInitialized() => - userService.ShowNsfwChanged += ShowNsfwChanged; + userService.UserSessionState.OnStateChange += ShowNsfwChanged; protected override void OnParametersSet() => LoadTags(); private void LoadTags() { int[] nsfwTags = Array.Empty(); - if(!userService.ShowNsfw) + if(!userService.UserSessionState.ShowNsfw) nsfwTags = tagService.TagsThatImply(HBContext.NsfwTag) .Select(td => td.ObjectId) .ToArray(); @@ -112,7 +112,7 @@ .OrderBy(td => td.Namespace) .ThenBy(td => td.Name) .AsEnumerable() - .Where(td => userService.ShowNsfw || !td.ImplicitTags + .Where(td => userService.UserSessionState.ShowNsfw || !td.ImplicitTags .IntersectBy(nsfwTags, td => td.ObjectId) .Any()) .ToArray(); @@ -176,12 +176,12 @@ StateHasChanged(); } - private async void ShowNsfwChanged(object? sender, bool showNsfw) => + private async void ShowNsfwChanged(UserSessionState userSessionState) => await InvokeAsync(() => { LoadTags(); StateHasChanged(); }); public void Dispose() => - userService.ShowNsfwChanged -= ShowNsfwChanged; + userService.UserSessionState.OnStateChange -= ShowNsfwChanged; } -- cgit v1.3