Improve app theme naming and doc strings (#21107)
This commit is contained in:
parent
4d26934949
commit
6bf1aecb6d
|
@ -99,9 +99,9 @@
|
||||||
(rf/defn system-theme-mode-changed
|
(rf/defn system-theme-mode-changed
|
||||||
{:events [:system-theme-mode-changed]}
|
{:events [:system-theme-mode-changed]}
|
||||||
[{:keys [db] :as cofx} _]
|
[{:keys [db] :as cofx} _]
|
||||||
(let [current-theme-type (get-in cofx [:db :profile/profile :appearance])]
|
(let [appearance-type (get-in cofx [:db :profile/profile :appearance])]
|
||||||
(when (and (multiaccounts.model/logged-in? db)
|
(when (and (multiaccounts.model/logged-in? db)
|
||||||
(= current-theme-type status-im.constants/theme-type-system))
|
(= appearance-type status-im.constants/appearance-type-system))
|
||||||
{:dispatch [:theme/switch]})))
|
{:dispatch [:theme/switch]})))
|
||||||
|
|
||||||
(defn- on-biometric-auth-fail
|
(defn- on-biometric-auth-fail
|
||||||
|
|
|
@ -2,23 +2,42 @@
|
||||||
(:require
|
(:require
|
||||||
[re-frame.core :as re-frame]
|
[re-frame.core :as re-frame]
|
||||||
[status-im.common.theme.core :as theme]
|
[status-im.common.theme.core :as theme]
|
||||||
[status-im.common.theme.utils :as utils]))
|
[status-im.constants :as constants]))
|
||||||
|
|
||||||
(re-frame/reg-fx
|
(re-frame/reg-fx
|
||||||
:theme/init-theme
|
:theme/init-theme
|
||||||
(fn []
|
(fn []
|
||||||
(theme/add-device-theme-change-listener)))
|
(theme/add-device-theme-change-listener)))
|
||||||
|
|
||||||
|
(defn- appearance-type->theme
|
||||||
|
"Converts appearance type identifier to a theme keyword.
|
||||||
|
Returns `:light` or `:dark` based on `appearance-type`:
|
||||||
|
- `appearance-type-light` (1): Light theme.
|
||||||
|
- `appearance-type-dark` (2): Dark theme.
|
||||||
|
- `appearance-type-system` (0): Uses system preference."
|
||||||
|
[appearance-type]
|
||||||
|
(condp = appearance-type
|
||||||
|
constants/appearance-type-dark :dark
|
||||||
|
constants/appearance-type-light :light
|
||||||
|
constants/appearance-type-system (if (theme/device-theme-dark?) :dark :light)
|
||||||
|
:dark))
|
||||||
|
|
||||||
|
;; Switches the theme and triggers related effects.
|
||||||
|
;;
|
||||||
|
;; Parameters:
|
||||||
|
;; - `theme`: Optional theme keyword to apply. If not provided, defaults to the theme determined by
|
||||||
|
;; `appearance-type`.
|
||||||
|
;; - `appearance-type`: Optional appearance type to determine the theme. If not provided, defaults to
|
||||||
|
;; the appearance type from the user's profile.
|
||||||
|
;; - `view-id`: Optional view ID for updating status and navigation color. If not provided, uses the
|
||||||
|
;; current view ID from the database. `view-id` is required because status and navigation bar colors
|
||||||
|
;; depends on the screen. For example, on the home screen, the navigation color should always be dark,
|
||||||
|
;; regardless of the theme, due to the bottom tabs.
|
||||||
(re-frame/reg-event-fx
|
(re-frame/reg-event-fx
|
||||||
:theme/switch
|
:theme/switch
|
||||||
(fn [{db :db} [{:keys [theme view-id theme-type]}]]
|
(fn [{db :db} [{:keys [theme view-id appearance-type]}]]
|
||||||
"Switches the theme and triggers related effects.
|
(let [appearance-type (or appearance-type (get-in db [:profile/profile :appearance]))
|
||||||
Parameters:
|
theme (or theme (appearance-type->theme appearance-type))]
|
||||||
- theme: Optional theme keyword to apply. If not provided, defaults to the theme determined by theme-type.
|
|
||||||
- theme-type: Optional theme type to determine the theme. If not provided, defaults to the theme type from the user's profile.
|
|
||||||
- view-id: Optional view ID for updating status color. If not provided, uses the current view ID from the database."
|
|
||||||
(let [theme-type (or theme-type (get-in db [:profile/profile :appearance]))
|
|
||||||
theme (or theme (utils/theme-type->theme-value theme-type))]
|
|
||||||
{:db (assoc db :theme theme)
|
{:db (assoc db :theme theme)
|
||||||
:fx [[:theme/legacy-theme-fx theme]
|
:fx [[:theme/legacy-theme-fx theme]
|
||||||
[:dispatch
|
[:dispatch
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
(ns status-im.common.theme.utils
|
|
||||||
(:require
|
|
||||||
[status-im.common.theme.core :as theme]
|
|
||||||
[status-im.constants :as constants]))
|
|
||||||
|
|
||||||
(defn theme-type->theme-value
|
|
||||||
"Converts theme type identifier to a theme keyword.
|
|
||||||
Returns `:light` or `:dark` based on `theme-type`:
|
|
||||||
- `theme-type-light` (1): Light theme.
|
|
||||||
- `theme-type-dark` (2): Dark theme.
|
|
||||||
- `theme-type-system` (0): Uses system preference."
|
|
||||||
[theme-type]
|
|
||||||
(condp = theme-type
|
|
||||||
constants/theme-type-dark :dark
|
|
||||||
constants/theme-type-light :light
|
|
||||||
constants/theme-type-system (if (theme/device-theme-dark?) :dark :light)
|
|
||||||
:dark))
|
|
|
@ -425,9 +425,9 @@
|
||||||
"We prefix our keys with 0xe701 prior to serialisation them"
|
"We prefix our keys with 0xe701 prior to serialisation them"
|
||||||
"0xe701")
|
"0xe701")
|
||||||
|
|
||||||
(def ^:const theme-type-system 0)
|
(def ^:const appearance-type-system 0)
|
||||||
(def ^:const theme-type-light 1)
|
(def ^:const appearance-type-light 1)
|
||||||
(def ^:const theme-type-dark 2)
|
(def ^:const appearance-type-dark 2)
|
||||||
(def ^:const bottom-sheet-animation-delay 450)
|
(def ^:const bottom-sheet-animation-delay 450)
|
||||||
|
|
||||||
(def ^:const local-pair-event-process-success "process-success")
|
(def ^:const local-pair-event-process-success "process-success")
|
||||||
|
|
|
@ -95,7 +95,7 @@
|
||||||
(rf/reg-event-fx :profile.settings/change-appearance
|
(rf/reg-event-fx :profile.settings/change-appearance
|
||||||
(fn [_ [theme]]
|
(fn [_ [theme]]
|
||||||
{:fx [[:dispatch [:profile.settings/profile-update :appearance theme]]
|
{:fx [[:dispatch [:profile.settings/profile-update :appearance theme]]
|
||||||
[:dispatch [:theme/switch {:theme-type theme}]]]}))
|
[:dispatch [:theme/switch {:appearance-type theme}]]]}))
|
||||||
|
|
||||||
(rf/reg-fx :profile.settings/get-profile-picture
|
(rf/reg-fx :profile.settings/get-profile-picture
|
||||||
(fn [key-uid]
|
(fn [key-uid]
|
||||||
|
|
Loading…
Reference in New Issue