From 116c798db3b798d33f14e40a7432d35b4b4ebbe3 Mon Sep 17 00:00:00 2001 From: estrogen elf <87099578+BlossomiShymae@users.noreply.github.com> Date: Wed, 18 Jun 2025 02:12:49 -0500 Subject: [PATCH] fix: reduce memory usage --- .../ViewModels/Pages/Home/HomeViewModel.cs | 20 ++++++++++++------- .../Views/Pages/Home/HomeView.axaml | 16 +++------------ 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/Needlework.Net/ViewModels/Pages/Home/HomeViewModel.cs b/Needlework.Net/ViewModels/Pages/Home/HomeViewModel.cs index bf32152..f51a0fb 100644 --- a/Needlework.Net/ViewModels/Pages/Home/HomeViewModel.cs +++ b/Needlework.Net/ViewModels/Pages/Home/HomeViewModel.cs @@ -29,13 +29,18 @@ public partial class HomeViewModel : PageBase, IEnableLogger .Select(time => Unit.Default) .Subscribe(_ => { - if (SelectedHextechDocsPostsIndex == HextechDocsPosts.Count - 1) + if (SelectedHextechDocsPost is HextechDocsPostViewModel vm) { - SelectedHextechDocsPostsIndex = 0; - } - else - { - SelectedHextechDocsPostsIndex += 1; + var index = HextechDocsPosts.IndexOf(vm); + if (index == HextechDocsPosts.Count - 1) + { + index = 0; + } + else + { + index += 1; + } + SelectedHextechDocsPost = HextechDocsPosts.ElementAt(index); } }); } @@ -52,7 +57,7 @@ public partial class HomeViewModel : PageBase, IEnableLogger private List _hextechDocsPosts = []; [ObservableProperty] - private int _selectedHextechDocsPostsIndex; + private HextechDocsPostViewModel? _selectedHextechDocsPost; public override async Task InitializeAsync() { @@ -63,6 +68,7 @@ public partial class HomeViewModel : PageBase, IEnableLogger Dispatcher.UIThread.Invoke(() => { HextechDocsPosts = hextechDocsPosts; + SelectedHextechDocsPost = HextechDocsPosts.First(); }); } catch (Exception ex) diff --git a/Needlework.Net/Views/Pages/Home/HomeView.axaml b/Needlework.Net/Views/Pages/Home/HomeView.axaml index af83bcf..aed4a75 100644 --- a/Needlework.Net/Views/Pages/Home/HomeView.axaml +++ b/Needlework.Net/Views/Pages/Home/HomeView.axaml @@ -41,19 +41,9 @@ - - - - - - - - - - + THE PROGRAM IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT, OR OF FITNESS FOR A PARTICULAR PURPOSE. LICENSOR DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE PROGRAM WILL MEET YOUR REQUIREMENTS OR THAT OPERATION WILL BE UNINTERRUPTED OR ERROR FREE. LICENSOR MAKES NO WARRANTIES RESPECTING ANY HARM THAT MAY BE CAUSED BY MALICIOUS USE OF THIS SOFTWARE. LICENSOR FURTHER EXPRESSLY DISCLAIMS ANY WARRANTY OR REPRESENTATION TO AUTHORIZED USERS OR TO ANY THIRD PARTY.