mirror of
https://github.com/penpot/penpot.git
synced 2025-07-09 00:07:18 +02:00
Fix token deletion menu
This commit is contained in:
parent
cfec4ae958
commit
a59e391b38
7 changed files with 22 additions and 54 deletions
|
@ -779,10 +779,12 @@
|
||||||
(apply-changes-local)))
|
(apply-changes-local)))
|
||||||
|
|
||||||
(defn delete-token
|
(defn delete-token
|
||||||
[changes set-name token-id token-name]
|
[changes set-name token-name]
|
||||||
(assert-library! changes)
|
(assert-library! changes)
|
||||||
(let [library-data (::library-data (meta changes))
|
(let [library-data (::library-data (meta changes))
|
||||||
prev-token (get-in library-data [:tokens token-id])]
|
prev-token (some-> (get library-data :tokens-lib)
|
||||||
|
(ctob/get-set set-name)
|
||||||
|
(ctob/get-token token-name))]
|
||||||
(-> changes
|
(-> changes
|
||||||
(update :redo-changes conj {:type :del-token :set-name set-name :name token-name})
|
(update :redo-changes conj {:type :del-token :set-name set-name :name token-name})
|
||||||
(update :undo-changes conj {:type :add-token :set-name set-name :token prev-token})
|
(update :undo-changes conj {:type :add-token :set-name set-name :token prev-token})
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
[:name token-name-ref]
|
[:name token-name-ref]
|
||||||
[:type [::sm/one-of token-types]]
|
[:type [::sm/one-of token-types]]
|
||||||
[:value :any]
|
[:value :any]
|
||||||
[:description {:optional true} :string]
|
[:description {:optional true} [:maybe :string]]
|
||||||
[:modified-at {:optional true} ::sm/inst]])
|
[:modified-at {:optional true} ::sm/inst]])
|
||||||
|
|
||||||
(sm/register! ::color
|
(sm/register! ::color
|
||||||
|
|
|
@ -260,17 +260,16 @@
|
||||||
(dch/commit-changes changes))))))
|
(dch/commit-changes changes))))))
|
||||||
|
|
||||||
(defn delete-token
|
(defn delete-token
|
||||||
[set-name id name]
|
[set-name token-name]
|
||||||
(dm/assert! (string? set-name))
|
(dm/assert! (string? set-name))
|
||||||
(dm/assert! (uuid? id))
|
(dm/assert! (string? token-name))
|
||||||
(dm/assert! (string? name))
|
|
||||||
(ptk/reify ::delete-token
|
(ptk/reify ::delete-token
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [it state _]
|
(watch [it state _]
|
||||||
(let [data (get state :workspace-data)
|
(let [data (get state :workspace-data)
|
||||||
changes (-> (pcb/empty-changes it)
|
changes (-> (pcb/empty-changes it)
|
||||||
(pcb/with-library-data data)
|
(pcb/with-library-data data)
|
||||||
(pcb/delete-token set-name id name))]
|
(pcb/delete-token set-name token-name))]
|
||||||
(rx/of (dch/commit-changes changes))))))
|
(rx/of (dch/commit-changes changes))))))
|
||||||
|
|
||||||
(defn duplicate-token
|
(defn duplicate-token
|
||||||
|
@ -280,42 +279,6 @@
|
||||||
(update :name #(str/concat % "-copy")))]
|
(update :name #(str/concat % "-copy")))]
|
||||||
(update-create-token new-token)))
|
(update-create-token new-token)))
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; TEMP (Move to test)
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
(comment
|
|
||||||
(def shape-1 {:r3 3})
|
|
||||||
|
|
||||||
(def token-1 {:rx 1
|
|
||||||
:ry 1})
|
|
||||||
|
|
||||||
|
|
||||||
(def shape-after-token-1-is-applied {:rx 1
|
|
||||||
:ry 1
|
|
||||||
:r3 3})
|
|
||||||
|
|
||||||
(def token-2 {:r3 1})
|
|
||||||
|
|
||||||
|
|
||||||
(def shape-after-token-2-is-applied {:rx 1
|
|
||||||
:ry 1
|
|
||||||
:r3 1})
|
|
||||||
|
|
||||||
(def token-3 {:r3 1})
|
|
||||||
|
|
||||||
(def shape-after-token-3-is-applied {:rx 1
|
|
||||||
:ry 1})
|
|
||||||
|
|
||||||
(= (toggle-or-apply-token shape-1 token-1)
|
|
||||||
shape-after-token-1-is-applied)
|
|
||||||
(= (toggle-or-apply-token shape-after-token-1-is-applied token-2)
|
|
||||||
shape-after-token-2-is-applied)
|
|
||||||
(= (toggle-or-apply-token shape-after-token-2-is-applied token-3)
|
|
||||||
shape-after-token-3-is-applied)
|
|
||||||
nil)
|
|
||||||
|
|
||||||
(defn set-token-type-section-open
|
(defn set-token-type-section-open
|
||||||
[token-type open?]
|
[token-type open?]
|
||||||
(ptk/reify ::set-token-type-section-open
|
(ptk/reify ::set-token-type-section-open
|
||||||
|
@ -326,7 +289,7 @@
|
||||||
;; Token Context Menu Functions -------------------------------------------------
|
;; Token Context Menu Functions -------------------------------------------------
|
||||||
|
|
||||||
(defn show-token-context-menu
|
(defn show-token-context-menu
|
||||||
[{:keys [position _token-id] :as params}]
|
[{:keys [position _token-name] :as params}]
|
||||||
(dm/assert! (gpt/point? position))
|
(dm/assert! (gpt/point? position))
|
||||||
(ptk/reify ::show-token-context-menu
|
(ptk/reify ::show-token-context-menu
|
||||||
ptk/UpdateEvent
|
ptk/UpdateEvent
|
||||||
|
@ -340,7 +303,7 @@
|
||||||
(assoc-in state [:workspace-local :token-context-menu] nil))))
|
(assoc-in state [:workspace-local :token-context-menu] nil))))
|
||||||
|
|
||||||
(defn show-token-set-context-menu
|
(defn show-token-set-context-menu
|
||||||
[{:keys [position _token-set-id] :as params}]
|
[{:keys [position _token-set-name] :as params}]
|
||||||
(dm/assert! (gpt/point? position))
|
(dm/assert! (gpt/point? position))
|
||||||
(ptk/reify ::show-token-set-context-menu
|
(ptk/reify ::show-token-set-context-menu
|
||||||
ptk/UpdateEvent
|
ptk/UpdateEvent
|
||||||
|
|
|
@ -492,6 +492,13 @@
|
||||||
(def workspace-active-theme-sets-tokens
|
(def workspace-active-theme-sets-tokens
|
||||||
(l/derived #(or (some-> % ctob/get-active-themes-set-tokens) {}) tokens-lib))
|
(l/derived #(or (some-> % ctob/get-active-themes-set-tokens) {}) tokens-lib))
|
||||||
|
|
||||||
|
(def workspace-selected-token-set-token
|
||||||
|
(fn [token-name]
|
||||||
|
(l/derived
|
||||||
|
#(some-> (wtts/get-selected-token-set %)
|
||||||
|
(ctob/get-token token-name))
|
||||||
|
st/state)))
|
||||||
|
|
||||||
(def workspace-selected-token-set-tokens
|
(def workspace-selected-token-set-tokens
|
||||||
(l/derived #(or (wtts/get-selected-token-set-tokens %) {}) st/state))
|
(l/derived #(or (wtts/get-selected-token-set-tokens %) {}) st/state))
|
||||||
|
|
||||||
|
|
|
@ -202,16 +202,14 @@
|
||||||
(generic-attribute-actions #{:y} "Y" (assoc context-data :on-update-shape wtch/update-shape-position))))}))
|
(generic-attribute-actions #{:y} "Y" (assoc context-data :on-update-shape wtch/update-shape-position))))}))
|
||||||
|
|
||||||
(defn default-actions [{:keys [token selected-token-set-id]}]
|
(defn default-actions [{:keys [token selected-token-set-id]}]
|
||||||
(let [{:keys [modal]} (wtty/get-token-properties token)
|
(let [{:keys [modal]} (wtty/get-token-properties token)]
|
||||||
selected-token-set (dt/get-token-set-data-from-token-set-id selected-token-set-id)]
|
|
||||||
[{:title "Delete Token"
|
[{:title "Delete Token"
|
||||||
:action #(st/emit! (dt/delete-token (:name selected-token-set) (:id token) (:name token)))}
|
:action #(st/emit! (dt/delete-token selected-token-set-id (:name token)))}
|
||||||
{:title "Duplicate Token"
|
{:title "Duplicate Token"
|
||||||
:action #(st/emit! (dt/duplicate-token (:id token)))}
|
:action #(st/emit! (dt/duplicate-token (:name token)))}
|
||||||
{:title "Edit Token"
|
{:title "Edit Token"
|
||||||
:action (fn [event]
|
:action (fn [event]
|
||||||
(let [{:keys [key fields]} modal
|
(let [{:keys [key fields]} modal]
|
||||||
token (dt/get-token-data-from-token-id (:id token))]
|
|
||||||
(st/emit! dt/hide-token-context-menu)
|
(st/emit! dt/hide-token-context-menu)
|
||||||
(dom/stop-propagation event)
|
(dom/stop-propagation event)
|
||||||
(modal/show! key {:x (.-clientX ^js event)
|
(modal/show! key {:x (.-clientX ^js event)
|
||||||
|
@ -303,7 +301,6 @@
|
||||||
|
|
||||||
(mf/defc token-context-menu-tree
|
(mf/defc token-context-menu-tree
|
||||||
[{:keys [width] :as mdata}]
|
[{:keys [width] :as mdata}]
|
||||||
(js/console.log "mdata" mdata)
|
|
||||||
(let [objects (mf/deref refs/workspace-page-objects)
|
(let [objects (mf/deref refs/workspace-page-objects)
|
||||||
selected (mf/deref refs/selected-shapes)
|
selected (mf/deref refs/selected-shapes)
|
||||||
selected-shapes (into [] (keep (d/getf objects)) selected)
|
selected-shapes (into [] (keep (d/getf objects)) selected)
|
||||||
|
|
|
@ -93,7 +93,6 @@
|
||||||
(st/emit!
|
(st/emit!
|
||||||
(wdt/show-token-set-context-menu
|
(wdt/show-token-set-context-menu
|
||||||
{:position (dom/get-client-position event)
|
{:position (dom/get-client-position event)
|
||||||
:token-set-id name
|
|
||||||
:token-set-name name})))))]
|
:token-set-name name})))))]
|
||||||
[:div {:class (stl/css :set-item-container)
|
[:div {:class (stl/css :set-item-container)
|
||||||
:on-click on-select
|
:on-click on-select
|
||||||
|
|
|
@ -96,7 +96,7 @@
|
||||||
(dom/stop-propagation event)
|
(dom/stop-propagation event)
|
||||||
(st/emit! (dt/show-token-context-menu {:type :token
|
(st/emit! (dt/show-token-context-menu {:type :token
|
||||||
:position (dom/get-client-position event)
|
:position (dom/get-client-position event)
|
||||||
:token-id (:id token)}))))
|
:token-name (:name token)}))))
|
||||||
|
|
||||||
on-toggle-open-click (mf/use-fn
|
on-toggle-open-click (mf/use-fn
|
||||||
(mf/deps open? tokens)
|
(mf/deps open? tokens)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue