0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-09 16:30:37 -05:00
penpot/frontend/uxbox/ui/dashboard.cljs

146 lines
3.8 KiB
Clojure

(ns uxbox.ui.dashboard
(:require [sablono.core :as html :refer-macros [html]]
[rum.core :as rum]
[cuerdas.core :as str]
[uxbox.rstore :as rs]
[uxbox.ui.icons :as i]
[uxbox.ui.mixins :as mx]
[uxbox.ui.dom :as dom]
[uxbox.ui.util :as util]
[uxbox.data.dashboard :as dd]
[uxbox.ui.library-bar :as ui.library-bar]
[uxbox.ui.dashboard.header :refer (header)]
[uxbox.ui.dashboard.projects :as projects]
[uxbox.ui.dashboard.elements :as elements]
[uxbox.ui.dashboard.icons :as icons]
[uxbox.ui.dashboard.colors :as colors]
))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Page: projects
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn projects-page-render
[own]
(html
[:main.dashboard-main
(header)
[:section.dashboard-content
(projects/menu)
(projects/grid)]]))
(defn projects-page-will-mount
[own]
(rs/emit! (dd/initialize :dashboard/projects))
own)
(defn projects-page-transfer-state
[old-state state]
(rs/emit! (dd/initialize :dashboard/projects))
state)
(def ^:static projects-page
(util/component
{:render projects-page-render
:will-mount projects-page-will-mount
:transfer-state projects-page-transfer-state
:name "projects-page"
:mixins [rum/static]}))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Page: elements
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn elements-page-render
[own]
(html
[:main.dashboard-main
(header)
[:section.dashboard-content
(elements/menu)
(ui.library-bar/library-bar)
[:section.dashboard-grid.library
(elements/page-title)
(elements/grid)]]]))
(defn elements-page-will-mount
[own]
(rs/emit! (dd/initialize :dashboard/elements))
own)
(defn elements-page-transfer-state
[old-state state]
(rs/emit! (dd/initialize :dashboard/elements))
state)
(def ^:static elements-page
(util/component
{:render elements-page-render
:will-mount elements-page-will-mount
:transfer-state elements-page-transfer-state
:name "elements-page"
:mixins [mx/static]}))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Page: icons
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn icons-page-render
[own]
(html
[:main.dashboard-main
(header)
[:section.dashboard-content
(icons/menu)
(icons/nav)
(icons/grid)]]))
(defn icons-page-will-mount
[own]
(rs/emit! (dd/initialize :dashboard/icons))
own)
(defn icons-page-transfer-state
[old-state state]
(rs/emit! (dd/initialize :dashboard/icons))
state)
(def ^:static icons-page
(util/component
{:render icons-page-render
:will-mount icons-page-will-mount
:transfer-state icons-page-transfer-state
:name "icons-page"
:mixins [mx/static]}))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Page: colors
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defn colors-page-render
[own]
(html
[:main.dashboard-main
(header)
[:section.dashboard-content
(colors/menu)
(colors/nav)
(colors/grid)]]))
(defn colors-page-will-mount
[own]
(rs/emit! (dd/initialize :dashboard/colors))
own)
(defn colors-page-transfer-state
[old-state state]
(rs/emit! (dd/initialize :dashboard/colors))
state)
(def ^:static colors-page
(util/component
{:render colors-page-render
:will-mount colors-page-will-mount
:transfer-state colors-page-transfer-state
:name "colors"
:mixins [mx/static]}))