From 586c72647be2b4b2f545c7bfdee8972518613ecc Mon Sep 17 00:00:00 2001 From: charlie Date: Thu, 26 Jun 2025 15:33:54 +0800 Subject: [PATCH] enhance(mobile): redirect to journals tab when switched graph --- src/main/capacitor/components/app.cljs | 6 ++++-- src/main/capacitor/state.cljs | 9 +++++++-- src/main/frontend/handler/events/ui.cljs | 5 ++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/capacitor/components/app.cljs b/src/main/capacitor/components/app.cljs index cd0fcee207..dbc178d3b2 100644 --- a/src/main/capacitor/components/app.cljs +++ b/src/main/capacitor/components/app.cljs @@ -199,8 +199,10 @@ nil)) [current-tab]) (ion/tabs - {:onIonTabsDidChange (fn [^js e] - (state/set-tab! (.-tab (.-detail e))))} + {:id "app-ion-tabs" + :onIonTabsDidChange (fn [^js e] + (state/set-tab! (.-tab (.-detail e)) + (.-target e)))} (ion/tab {:tab "home"} (ion/content diff --git a/src/main/capacitor/state.cljs b/src/main/capacitor/state.cljs index 44fee7288e..d34017f186 100644 --- a/src/main/capacitor/state.cljs +++ b/src/main/capacitor/state.cljs @@ -2,9 +2,11 @@ (:require [frontend.rum :as r])) (defonce *tab (atom "home")) +(defonce *tabs-el (atom nil)) (defn set-tab! - [tab] - (reset! *tab tab)) + [tab ^js tabs] + (reset! *tab tab) + (reset! *tabs-el tabs)) (defn use-tab [] (r/use-atom *tab)) (defonce *modal-data (atom nil)) @@ -20,3 +22,6 @@ (defn set-popup! [data] (reset! *popup-data data)) + +(defn redirect-to-tab! [name] + (some-> @*tabs-el (.select name))) \ No newline at end of file diff --git a/src/main/frontend/handler/events/ui.cljs b/src/main/frontend/handler/events/ui.cljs index 28ce55e90e..79107029cb 100644 --- a/src/main/frontend/handler/events/ui.cljs +++ b/src/main/frontend/handler/events/ui.cljs @@ -34,6 +34,7 @@ [frontend.mobile.util :as mobile-util] [frontend.modules.instrumentation.sentry :as sentry-event] [frontend.state :as state] + [capacitor.state :as cc-state] [frontend.ui :as ui] [frontend.util :as util] [goog.dom :as gdom] @@ -86,7 +87,9 @@ {:id :https-proxy-panel :center? true :class "lg:max-w-2xl"})) (defmethod events/handle :redirect-to-home [_] - (page-handler/create-today-journal!)) + (page-handler/create-today-journal!) + (when (util/capacitor-new?) + (cc-state/redirect-to-tab! "home"))) (defmethod events/handle :page/show-delete-dialog [[_ selected-rows ok-handler]] (shui/dialog-open!