From 73fbf2e0be181cf84537fcd464852373a989a0d1 Mon Sep 17 00:00:00 2001 From: quexeky Date: Wed, 12 Feb 2025 09:29:03 +1100 Subject: [PATCH] feat(library): Reactive library updating Signed-off-by: quexeky --- desktop/components/Header.vue | 4 +- desktop/composables/current-page-engine.ts | 4 +- desktop/pages/library.vue | 74 ++++++++++++---------- desktop/pages/settings.vue | 8 +-- desktop/src-tauri/src/games/commands.rs | 1 - desktop/src-tauri/src/games/library.rs | 11 ++-- 6 files changed, 57 insertions(+), 45 deletions(-) diff --git a/desktop/components/Header.vue b/desktop/components/Header.vue index 75537eb1..c8a82d3f 100644 --- a/desktop/components/Header.vue +++ b/desktop/components/Header.vue @@ -11,7 +11,7 @@ v-for="(nav, navIdx) in navigation" :class="[ 'transition uppercase font-display font-semibold text-md', - navIdx === currentPageIndex + navIdx === currentNavigation ? 'text-zinc-100' : 'text-zinc-400 hover:text-zinc-200', ]" @@ -78,7 +78,7 @@ const navigation: Array = [ }, ]; -const currentPageIndex = useCurrentNavigationIndex(navigation); +const {currentNavigation} = useCurrentNavigationIndex(navigation); const quickActions: Array = [ { diff --git a/desktop/composables/current-page-engine.ts b/desktop/composables/current-page-engine.ts index 463ad197..0990195c 100644 --- a/desktop/composables/current-page-engine.ts +++ b/desktop/composables/current-page-engine.ts @@ -26,5 +26,7 @@ export const useCurrentNavigationIndex = ( currentNavigation.value = calculateCurrentNavIndex(to); }); - return currentNavigation; + return {currentNavigation, recalculateNavigation: () => { + currentNavigation.value = calculateCurrentNavIndex(route); + }}; }; diff --git a/desktop/pages/library.vue b/desktop/pages/library.vue index 182699dd..6c8f6d3f 100644 --- a/desktop/pages/library.vue +++ b/desktop/pages/library.vue @@ -1,28 +1,17 @@ diff --git a/desktop/pages/settings.vue b/desktop/pages/settings.vue index 3c39c653..2b92ff94 100644 --- a/desktop/pages/settings.vue +++ b/desktop/pages/settings.vue @@ -10,13 +10,13 @@
  • { let mut db_handle = borrow_db_mut_checked(); db_handle.applications.transient_statuses.remove(&meta); + db_handle + .applications + .installed_game_version + .remove(&meta.id); db_handle .applications .game_statuses @@ -282,6 +282,7 @@ pub fn uninstall_game_logic(meta: DownloadableMetadata, app_handle: &AppHandle) save_db(); debug!("uninstalled game id {}", &meta.id); + app_handle.emit("update_library", {}).unwrap(); push_game_update( &app_handle,