mirror of
https://github.com/penpot/penpot.git
synced 2025-05-08 08:15:54 +02:00
♻️ Refactor main app component.
This commit is contained in:
parent
ccc6eaf4b0
commit
cf7664d446
2 changed files with 31 additions and 35 deletions
|
@ -69,7 +69,7 @@
|
||||||
(when (:auth storage)
|
(when (:auth storage)
|
||||||
(st/emit! (udu/fetch-profile)))
|
(st/emit! (udu/fetch-profile)))
|
||||||
|
|
||||||
(mf/mount (ui/app) (dom/get-element "app"))
|
(mf/mount (mf/element ui/app) (dom/get-element "app"))
|
||||||
(mf/mount (lightbox) (dom/get-element "lightbox"))
|
(mf/mount (lightbox) (dom/get-element "lightbox"))
|
||||||
(mf/mount (mf/element modal) (dom/get-element "modal"))
|
(mf/mount (mf/element modal) (dom/get-element "modal"))
|
||||||
(mf/mount (loader) (dom/get-element "loader"))
|
(mf/mount (loader) (dom/get-element "loader"))
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
[cuerdas.core :as str]
|
[cuerdas.core :as str]
|
||||||
[lentes.core :as l]
|
[lentes.core :as l]
|
||||||
[potok.core :as ptk]
|
[potok.core :as ptk]
|
||||||
[rumext.core :as mx]
|
|
||||||
[rumext.alpha :as mf]
|
[rumext.alpha :as mf]
|
||||||
[uxbox.builtins.icons :as i]
|
[uxbox.builtins.icons :as i]
|
||||||
[uxbox.main.data.auth :refer [logout]]
|
[uxbox.main.data.auth :refer [logout]]
|
||||||
|
@ -81,43 +80,40 @@
|
||||||
|
|
||||||
;; --- Main App (Component)
|
;; --- Main App (Component)
|
||||||
|
|
||||||
(mf/def app
|
(def route-iref
|
||||||
:mixins [mx/reactive]
|
(-> (l/key :route)
|
||||||
|
(l/derive st/state)))
|
||||||
|
|
||||||
:init
|
(mf/defc app
|
||||||
(fn [own props]
|
[props]
|
||||||
(assoc own ::route-ref (l/derive (l/key :route) st/state)))
|
(let [route (mf/deref route-iref)
|
||||||
|
route-id (get-in route [:data :name])]
|
||||||
|
(case route-id
|
||||||
|
:auth/login (mf/element auth/login-page)
|
||||||
|
:auth/register (auth/register-page)
|
||||||
|
:auth/recovery-request (auth/recovery-request-page)
|
||||||
|
|
||||||
:render
|
:auth/recovery
|
||||||
(fn [own props]
|
(let [token (get-in route [:params :path :token])]
|
||||||
(let [route (mx/react (::route-ref own))
|
(auth/recovery-page token))
|
||||||
route-id (get-in route [:data :name])]
|
|
||||||
(case route-id
|
|
||||||
:auth/login (mf/element auth/login-page)
|
|
||||||
:auth/register (auth/register-page)
|
|
||||||
:auth/recovery-request (auth/recovery-request-page)
|
|
||||||
|
|
||||||
:auth/recovery
|
(:settings/profile
|
||||||
(let [token (get-in route [:params :path :token])]
|
:settings/password
|
||||||
(auth/recovery-page token))
|
:settings/notifications)
|
||||||
|
(mf/element settings/settings #js {:route route})
|
||||||
|
|
||||||
(:settings/profile
|
(:dashboard/projects
|
||||||
:settings/password
|
:dashboard/icons
|
||||||
:settings/notifications)
|
:dashboard/images
|
||||||
(mf/element settings/settings #js {:route route})
|
:dashboard/colors)
|
||||||
|
(mf/element dashboard/dashboard #js {:route route})
|
||||||
|
|
||||||
(:dashboard/projects
|
:workspace/page
|
||||||
:dashboard/icons
|
(let [project-id (uuid (get-in route [:params :path :project]))
|
||||||
:dashboard/images
|
page-id (uuid (get-in route [:params :path :page]))]
|
||||||
:dashboard/colors)
|
[:& workspace-page {:project-id project-id
|
||||||
(mf/element dashboard/dashboard #js {:route route})
|
:page-id page-id
|
||||||
|
:key page-id}])
|
||||||
|
|
||||||
:workspace/page
|
nil)))
|
||||||
(let [project-id (uuid (get-in route [:params :path :project]))
|
|
||||||
page-id (uuid (get-in route [:params :path :page]))]
|
|
||||||
[:& workspace-page {:project-id project-id
|
|
||||||
:page-id page-id
|
|
||||||
:key page-id}])
|
|
||||||
|
|
||||||
nil
|
|
||||||
))))
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue