refactor: simplify handlers

pull/1108/head
charlie 2021-01-14 18:01:27 +08:00
parent cdd9ab8950
commit e7809900a7
2 changed files with 23 additions and 27 deletions

View File

@ -17,7 +17,9 @@ dummy.getRangeAt = function() {};
dummy.getElementsByClassName = function() {}; dummy.getElementsByClassName = function() {};
dummy.containsNode = function() {}; dummy.containsNode = function() {};
dummy.select = function() {}; dummy.select = function() {};
dummy.closest = function () {};
dummy.setAttribute = function() {}; dummy.setAttribute = function() {};
dummy.getAttribute = function() {};
dummy.font = function() {}; dummy.font = function() {};
dummy.measureText = function() {}; dummy.measureText = function() {};
dummy.fillStyle = function() {}; dummy.fillStyle = function() {};

View File

@ -162,34 +162,28 @@
(let [get-block-id #(and % (.getAttribute (.closest % "[blockid]") "blockid")) (let [get-block-id #(and % (.getAttribute (.closest % "[blockid]") "blockid"))
repo (state/get-current-repo) repo (state/get-current-repo)
local-repo? (config/local-db? repo) local-repo? (config/local-db? repo)
sub-feat? (and local-repo? (config/local-asset? text)) sub-feat? (and local-repo? (config/local-asset? text))]
ctl-handlers {:delete
(fn [e]
(let [target (.-target e)
block-id (get-block-id target)
confirm-fn (ui/make-confirm-modal
{:title (t :asset/confirm-delete (.toLocaleLowerCase (t :text/image)))
:sub-title (if sub-feat? :asset/physical-delete "")
:sub-checkbox? sub-feat?
:on-confirm (fn [e {:keys [close-fn sub-selected]}]
(close-fn)
(editor-handler/delete-asset-of-block!
{:block-id block-id
:force-local (and sub-selected (get sub-selected 0))
:repo repo
:href text}))})]
(state/set-modal! confirm-fn)
(util/stop e)))}]
[:div.asset-container [:div.asset-container
{:on-click (fn [e] [[:span.ctl
(let [target (.-target e)] [:a.delete
(some (fn [k] {:title "delete"
(let [selector (str "." (symbol k)) :on-click
el (.closest target selector)] (fn [e]
(when el (let [target (.-target e)
(apply (k ctl-handlers) [e]) block-id (get-block-id target)
true))) [:delete])))} confirm-fn (ui/make-confirm-modal
[[:span.ctl [:a.delete {:title "delete"} svg/trash-sm]] {:title (t :asset/confirm-delete (.toLocaleLowerCase (t :text/image)))
:sub-title (if sub-feat? :asset/physical-delete "")
:sub-checkbox? sub-feat?
:on-confirm (fn [e {:keys [close-fn sub-selected]}]
(close-fn)
(editor-handler/delete-asset-of-block!
{:block-id block-id
:force-local (and sub-selected (get sub-selected 0))
:repo repo
:href text}))})]
(state/set-modal! confirm-fn)
(util/stop e)))} svg/trash-sm]]
child]]))) child]])))
(rum/defcs asset-link < rum/reactive (rum/defcs asset-link < rum/reactive