mirror of
https://github.com/penpot/penpot.git
synced 2025-02-08 08:09:14 -05:00
Move transform and download functionality to core.cljs
This commit is contained in:
parent
bbb09567f6
commit
0a73cbc6f1
2 changed files with 22 additions and 25 deletions
|
@ -9,11 +9,13 @@
|
||||||
[app.common.data :as d :refer [ordered-map]]
|
[app.common.data :as d :refer [ordered-map]]
|
||||||
[app.common.types.shape.radius :as ctsr]
|
[app.common.types.shape.radius :as ctsr]
|
||||||
[app.common.types.token :as ctt]
|
[app.common.types.token :as ctt]
|
||||||
|
[app.libs.file-builder :as fb]
|
||||||
[app.main.data.tokens :as dt]
|
[app.main.data.tokens :as dt]
|
||||||
[app.main.data.workspace :as udw]
|
[app.main.data.workspace :as udw]
|
||||||
[app.main.data.workspace.changes :as dch]
|
[app.main.data.workspace.changes :as dch]
|
||||||
[app.main.data.workspace.shape-layout :as dwsl]
|
[app.main.data.workspace.shape-layout :as dwsl]
|
||||||
[app.main.data.workspace.transforms :as dwt]
|
[app.main.data.workspace.transforms :as dwt]
|
||||||
|
[app.main.refs :as refs]
|
||||||
[app.main.store :as st]
|
[app.main.store :as st]
|
||||||
[app.main.ui.workspace.tokens.style-dictionary :as sd]
|
[app.main.ui.workspace.tokens.style-dictionary :as sd]
|
||||||
[promesa.core :as p]))
|
[promesa.core :as p]))
|
||||||
|
@ -128,6 +130,25 @@
|
||||||
(st/emit!
|
(st/emit!
|
||||||
(dwsl/update-layout [shape-id] layout-update)))))
|
(dwsl/update-layout [shape-id] layout-update)))))
|
||||||
|
|
||||||
|
;; JSON export functions -------------------------------------------------------
|
||||||
|
(defn transform-tokens-into-json-format [tokens]
|
||||||
|
(let [grouped-tokens (group-by (comp keyword :type second) tokens)
|
||||||
|
map-token (fn [[_ token]]
|
||||||
|
[(keyword (:name token))
|
||||||
|
{:value (:value token)
|
||||||
|
:type (:type token)}])]
|
||||||
|
{:core (into (sorted-map)
|
||||||
|
(map (fn [[type tokens]]
|
||||||
|
[type
|
||||||
|
(into (sorted-map)
|
||||||
|
(map map-token tokens))])
|
||||||
|
grouped-tokens))}))
|
||||||
|
|
||||||
|
(defn download-tokens-as-json []
|
||||||
|
(let [all-tokens (deref refs/workspace-tokens)
|
||||||
|
transformed-tokens-json (transform-tokens-into-json-format all-tokens)]
|
||||||
|
(fb/export-tokens-file transformed-tokens-json)))
|
||||||
|
|
||||||
;; Token types -----------------------------------------------------------------
|
;; Token types -----------------------------------------------------------------
|
||||||
|
|
||||||
(def token-types
|
(def token-types
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
(:require-macros [app.main.style :as stl])
|
(:require-macros [app.main.style :as stl])
|
||||||
(:require
|
(:require
|
||||||
[app.common.data :as d]
|
[app.common.data :as d]
|
||||||
[app.libs.file-builder :as fb]
|
|
||||||
[app.main.data.modal :as modal]
|
[app.main.data.modal :as modal]
|
||||||
[app.main.data.tokens :as dt]
|
[app.main.data.tokens :as dt]
|
||||||
[app.main.refs :as refs]
|
[app.main.refs :as refs]
|
||||||
|
@ -29,29 +28,6 @@
|
||||||
(def ^:private download-icon
|
(def ^:private download-icon
|
||||||
(i/icon-xref :download (stl/css :download-icon)))
|
(i/icon-xref :download (stl/css :download-icon)))
|
||||||
|
|
||||||
(defn transform-tokens [tokens]
|
|
||||||
(let [grouped-tokens (group-by (comp keyword :type second) tokens)
|
|
||||||
map-token (fn [[_ token]]
|
|
||||||
[(keyword (:name token))
|
|
||||||
{:value (:value token)
|
|
||||||
:type (:type token)}])]
|
|
||||||
(js/console.log grouped-tokens)
|
|
||||||
(js/console.log map-token)
|
|
||||||
{:core (into (sorted-map)
|
|
||||||
(map (fn [[type tokens]]
|
|
||||||
[type
|
|
||||||
(into (sorted-map)
|
|
||||||
(map map-token tokens))])
|
|
||||||
grouped-tokens))}))
|
|
||||||
|
|
||||||
(defn download-tokens-as-json []
|
|
||||||
(let [all-tokens (deref refs/workspace-tokens)
|
|
||||||
transformed-tokens-json (transform-tokens all-tokens)]
|
|
||||||
(js/console.log transformed-tokens-json)
|
|
||||||
(fb/export-tokens-file transformed-tokens-json)))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(mf/defc token-pill
|
(mf/defc token-pill
|
||||||
{::mf/wrap-props false}
|
{::mf/wrap-props false}
|
||||||
[{:keys [on-click token highlighted? on-context-menu]}]
|
[{:keys [on-click token highlighted? on-context-menu]}]
|
||||||
|
@ -192,6 +168,6 @@
|
||||||
[:div {:class (stl/css :sidebar-tab-wrapper)}
|
[:div {:class (stl/css :sidebar-tab-wrapper)}
|
||||||
[:& tokens-explorer]
|
[:& tokens-explorer]
|
||||||
[:button {:class (stl/css :download-json-button)
|
[:button {:class (stl/css :download-json-button)
|
||||||
:on-click download-tokens-as-json} "Download Tokens as JSON"
|
:on-click wtc/download-tokens-as-json} "Download Tokens as JSON"
|
||||||
[:span.separator]
|
[:span.separator]
|
||||||
download-icon]])
|
download-icon]])
|
||||||
|
|
Loading…
Add table
Reference in a new issue