Skip to content

Commit 12d32a0

Browse files
committed
feat(ui): separate components
1 parent 1e427d1 commit 12d32a0

File tree

3 files changed

+40
-22
lines changed

3 files changed

+40
-22
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
(ns parts.frontend.components.auth-status
2+
(:require
3+
[uix.core :refer [defui $ use-state]]
4+
[parts.frontend.context :as ctx]
5+
[parts.frontend.components.login-modal :refer [login-modal]]))
6+
7+
(defui auth-status
8+
"Displays a logged/in out status, and a button to login and log out"
9+
[]
10+
(let [[show-login-modal set-show-login-modal] (use-state false)
11+
{:keys [user loading logout]} (ctx/use-auth)]
12+
($ :div
13+
($ login-modal
14+
{:show show-login-modal
15+
:on-close #(set-show-login-modal false)})
16+
(when loading
17+
($ :span {:class "loading loading-spinner loading-sm"}))
18+
(if user
19+
($ :span
20+
($ :span {:class "status status-success mr-1" :aria-label "Status: logged-in"})
21+
($ :span (:username user))
22+
($ :button {:class "btn btn-xs ml-1" :on-click (fn [] (logout))}
23+
"Log out"))
24+
($ :span
25+
($ :span {:class "status status-error mr-1" :aria-label "Status: logged-out"})
26+
($ :span "Signed out")
27+
($ :button {:class "btn btn-xs ml-1" :on-click #(set-show-login-modal true)}
28+
"Log in"))))))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
(ns parts.frontend.components.sidebar
2+
(:require
3+
[uix.core :refer [defui $]]
4+
[parts.frontend.components.auth-status :refer [auth-status]]))
5+
6+
(defui sidebar
7+
"Display the main sidebar"
8+
[]
9+
($ :div {:class "sidebar p-4"}
10+
($ auth-status)))

src/main/parts/frontend/components/system.cljs

+2-22
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
[clojure.string :as str]
1313
[parts.frontend.components.nodes :refer [node-types]]
1414
[parts.frontend.components.toolbar :refer [parts-toolbar]]
15-
[parts.frontend.components.login-modal :refer [login-modal]]
15+
[parts.frontend.components.sidebar :refer [sidebar]]
1616
[parts.frontend.utils.node-utils :refer [build-updated-part]]
1717
[parts.frontend.context :as ctx]))
1818

@@ -52,25 +52,6 @@
5252
(defn- on-connect-callback [setEdges params]
5353
(setEdges #(addEdge params %)))
5454

55-
(defui auth-status-bar []
56-
(let [[show-login-modal set-show-login-modal] (use-state false)
57-
{:keys [user loading logout]} (ctx/use-auth)]
58-
($ :div
59-
($ login-modal
60-
{:show show-login-modal
61-
:on-close #(set-show-login-modal false)})
62-
(when loading
63-
($ :span "(...) "))
64-
(if user
65-
($ :span
66-
($ :span {:class "user-email"} (str "🟢 " (:username user) " "))
67-
($ :button {:class "btn btn-xs" :on-click (fn [] (logout))}
68-
"Log out"))
69-
($ :span
70-
($ :span "🔴")
71-
($ :button {:class "btn btn-xs" :on-click #(set-show-login-modal true)}
72-
"Log in"))))))
73-
7455
(defui system [{:keys [nodes edges]}]
7556
(let [node-types (uix.core/use-memo (fn [] (clj->js node-types)) [node-types])
7657
[nodes setNodes onNodesChange] (useNodesState (clj->js nodes))
@@ -117,5 +98,4 @@
11798
($ Background {:variant "dots"
11899
:gap 12
119100
:size 1}))))
120-
($ :div {:class "sidebar p-4"}
121-
($ auth-status-bar)))))
101+
($ sidebar))))

0 commit comments

Comments
 (0)