From b00dff425662a4d8f4e5395f0923a6b8bad91dd7 Mon Sep 17 00:00:00 2001 From: Manor Dev Date: Tue, 25 Aug 2026 16:44:08 +0300 Subject: [PATCH] fix: make back button on settings page not count sidebar items (#730) --- .../oneclient_app/src/layout/animated_outlet.rs | 15 +++++++++++++-- .../oneclient_app/src/layout/settings_shell.rs | 7 +++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/oneclient_app/src/layout/animated_outlet.rs b/packages/oneclient_app/src/layout/animated_outlet.rs index c1474ebd..4ea329e3 100644 --- a/packages/oneclient_app/src/layout/animated_outlet.rs +++ b/packages/oneclient_app/src/layout/animated_outlet.rs @@ -65,8 +65,19 @@ impl Component for AnimatedAppOutlet { fn render(&self) -> impl IntoElement { let mut router = use_animated_router::(); - let history = use_previous_and_current(use_route::()); - let back_title = history.read().0.title(); + let route = use_route::(); + let mut origin_route = use_state(|| route.clone()); + let mut last_route = use_state(|| route.clone()); + + use_side_effect_with_deps(&route, move |current| { + let prev = last_route.peek().clone(); + if !(is_sidebar_route(&prev) && is_sidebar_route(current)) { + origin_route.set(prev); + } + last_route.set(current.clone()); + }); + + let back_title = origin_route.read().title(); let anim = use_animation(|_conf| { AnimNum::new(0., 1.) diff --git a/packages/oneclient_app/src/layout/settings_shell.rs b/packages/oneclient_app/src/layout/settings_shell.rs index 9debe367..da971183 100644 --- a/packages/oneclient_app/src/layout/settings_shell.rs +++ b/packages/oneclient_app/src/layout/settings_shell.rs @@ -204,8 +204,7 @@ const SEARCH_INDEX: &[SearchItem] = &[ title: "Free up space", description: "Remove cached packages and leftovers nothing is using.", keywords: &[ - "storage", "clean", "cleanup", "free", "space", "cache", "unused", "orphan", - "leftover", + "storage", "clean", "cleanup", "free", "space", "cache", "unused", "orphan", "leftover", ], route: Route::SettingsStorage {}, }, @@ -576,7 +575,7 @@ fn search_results(query: &SearchQuery, mut search: State) -> Vec