Skip to content

Commit a742185

Browse files
committed
support multiple dialogs
1 parent 7121258 commit a742185

File tree

3 files changed

+18
-16
lines changed

3 files changed

+18
-16
lines changed

src/renderer/dialog/events.cljs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,26 @@
77
(rf/reg-event-db
88
::cmdk
99
(fn [db [_]]
10-
(assoc db :dialog {:content [cmdk/root]
11-
:attrs {:class "dialog-content dialog-cmdk-content"}})))
10+
(update db :dialogs conj {:content [cmdk/root]
11+
:attrs {:class "dialog-content dialog-cmdk-content"}})))
1212

1313
(rf/reg-event-db
1414
::about
1515
(fn [db [_]]
16-
(assoc db :dialog {:content [v/about]})))
16+
(update db :dialogs conj {:content [v/about]})))
1717

1818
(rf/reg-event-db
1919
::save
2020
(fn [db [_ k]]
21-
(assoc db :dialog {:content [v/save k]
22-
:attrs {:onOpenAutoFocus #(.preventDefault %)}})))
21+
(update db :dialogs conj {:content [v/save k]
22+
:attrs {:onOpenAutoFocus #(.preventDefault %)}})))
2323

2424
#_(rf/reg-event-db
2525
::confirmation
2626
(fn [db [_ data]]
27-
(assoc db :dialog {:content [v/confirmation data]})))
27+
(update db :dialogs conj {:content [v/confirmation data]})))
2828

2929
(rf/reg-event-db
3030
::close
3131
(fn [db [_]]
32-
(dissoc db :dialog)))
32+
(update db :dialogs pop)))

src/renderer/dialog/subs.cljs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
[re-frame.core :as rf]))
44

55
(rf/reg-sub
6-
::dialog
7-
:-> :dialog)
6+
::dialogs
7+
:-> :dialogs)

src/renderer/dialog/views.cljs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,13 +73,15 @@
7373

7474
(defn root
7575
[]
76-
(let [dialog @(rf/subscribe [::dialog.s/dialog])]
76+
(let [dialogs @(rf/subscribe [::dialog.s/dialogs])]
7777
[:> Dialog/Root
78-
{:open dialog
78+
{:open (seq dialogs)
7979
:on-open-change #(rf/dispatch [::dialog.e/close])}
8080
[:> Dialog/Portal
81-
[:> Dialog/Overlay {:class "backdrop"}]
82-
[:> Dialog/Content
83-
(merge {:class "dialog-content"}
84-
(:attrs dialog))
85-
(:content dialog)]]]))
81+
[:<>
82+
[:> Dialog/Overlay {:class "backdrop"}]
83+
(for [dialog dialogs]
84+
[:> Dialog/Content
85+
(merge {:class "dialog-content"}
86+
(:attrs dialog))
87+
(:content dialog)])]]]))

0 commit comments

Comments
 (0)