From 3cba2b609bd39f1788876ce95922133a45477163 Mon Sep 17 00:00:00 2001 From: ManorDev Date: Sat, 15 Aug 2026 00:41:36 +0300 Subject: [PATCH] fix: make settings back button return to origin --- .../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