aboutsummaryrefslogtreecommitdiff
path: root/src/frontend
diff options
context:
space:
mode:
authorMiguel Ángel Moreno <mail@migalmoreno.com>2024-12-19 22:46:41 +0100
committerMiguel Ángel Moreno <mail@migalmoreno.com>2024-12-19 22:46:41 +0100
commitd787d6c6139d365f5d7f4fa7b37e5455ecc1dca1 (patch)
tree2f8decba50169726b39beebcb50b2be382a830aa /src/frontend
parentead190b485080a656451fa952bf27d8864da5725 (diff)
feat: simplify settings event handlers
Diffstat (limited to 'src/frontend')
-rw-r--r--src/frontend/tubo/settings/events.cljs40
-rw-r--r--src/frontend/tubo/settings/views.cljs8
2 files changed, 19 insertions, 29 deletions
diff --git a/src/frontend/tubo/settings/events.cljs b/src/frontend/tubo/settings/events.cljs
index 57e173f..da1a8d1 100644
--- a/src/frontend/tubo/settings/events.cljs
+++ b/src/frontend/tubo/settings/events.cljs
@@ -6,9 +6,10 @@
(rf/reg-event-fx
:settings/change
[(rf/inject-cofx :store)]
- (fn [{:keys [db store]} [_ key val]]
- {:db (assoc-in db [:settings key] val)
- :store (assoc store key val)}))
+ (fn [{:keys [db store]} [_ keys val]]
+ (let [update-settings #(assoc-in % (into [:settings] keys) val)]
+ {:db (update-settings db)
+ :store (update-settings store)})))
(rf/reg-event-fx
:settings/load-kiosks
@@ -22,21 +23,17 @@
default-kiosk (if (some #(= % default-service-kiosk)
(:available-kiosks kiosks-res))
default-service-kiosk
- (:default-kiosk kiosks-res))]
- {:db (update-in db
- [:settings :default-service]
- assoc
- :id service-name
- :service-id service-id
- :available-kiosks (:available-kiosks kiosks-res)
- :default-kiosk default-kiosk)
- :store (update-in store
- [:default-service]
- assoc
- :id service-name
- :service-id service-id
- :available-kiosks (:available-kiosks kiosks-res)
- :default-kiosk default-kiosk)})))
+ (:default-kiosk kiosks-res))
+ update-settings #(update-in %
+ [:settings :default-service]
+ assoc
+ :id service-name
+ :service-id service-id
+ :available-kiosks (:available-kiosks
+ kiosks-res)
+ :default-kiosk default-kiosk)]
+ {:db (update-settings db)
+ :store (update-settings store)})))
(rf/reg-event-fx
:settings/change-service
@@ -54,13 +51,6 @@
[:bad-response]))))
(rf/reg-event-fx
- :settings/change-kiosk
- [(rf/inject-cofx :store)]
- (fn [{:keys [db store]} [_ val]]
- {:db (assoc-in db [:settings :default-service :default-kiosk] val)
- :store (assoc-in store [:default-service :default-kiosk] val)}))
-
-(rf/reg-event-fx
:settings/fetch-page
(fn [{:keys [db]} _]
(let [id (-> db
diff --git a/src/frontend/tubo/settings/views.cljs b/src/frontend/tubo/settings/views.cljs
index 415d474..3afed5e 100644
--- a/src/frontend/tubo/settings/views.cljs
+++ b/src/frontend/tubo/settings/views.cljs
@@ -5,15 +5,15 @@
[tubo.layout.views :as layout]))
(defn boolean-input
- [label key value]
+ [label keys value]
[layout/boolean-input label value
- #(rf/dispatch [:settings/change key (not value)])])
+ #(rf/dispatch [:settings/change keys (not value)])])
(defn select-input
- [label key value options on-change]
+ [label keys value options on-change]
[layout/select-input label value options
(or on-change
- #(rf/dispatch [:settings/change key (.. % -target -value)]))])
+ #(rf/dispatch [:settings/change keys (.. % -target -value)]))])
(defn general-settings
[{:keys [theme default-service items-layout]}]