mirror of
https://github.com/penpot/penpot.git
synced 2025-02-08 08:09:14 -05:00
Merge pull request #5349 from penpot/palba-add-event-for-pdf
✨ Add export format info to export-shapes event
This commit is contained in:
commit
c607b61af6
4 changed files with 43 additions and 46 deletions
|
@ -7,6 +7,7 @@
|
||||||
(ns app.main.data.exports.assets
|
(ns app.main.data.exports.assets
|
||||||
(:require
|
(:require
|
||||||
[app.common.uuid :as uuid]
|
[app.common.uuid :as uuid]
|
||||||
|
[app.main.data.events :as ev]
|
||||||
[app.main.data.modal :as modal]
|
[app.main.data.modal :as modal]
|
||||||
[app.main.data.persistence :as dwp]
|
[app.main.data.persistence :as dwp]
|
||||||
[app.main.data.workspace.state-helpers :as wsh]
|
[app.main.data.workspace.state-helpers :as wsh]
|
||||||
|
@ -247,6 +248,12 @@
|
||||||
(rx/map #(clear-export-state @resource-id))
|
(rx/map #(clear-export-state @resource-id))
|
||||||
(rx/take-until (rx/delay 6000 stopper))))))))
|
(rx/take-until (rx/delay 6000 stopper))))))))
|
||||||
|
|
||||||
|
(defn request-export
|
||||||
|
[{:keys [exports] :as params}]
|
||||||
|
(if (= 1 (count exports))
|
||||||
|
(request-simple-export (assoc params :export (first exports)))
|
||||||
|
(request-multiple-export params)))
|
||||||
|
|
||||||
(defn retry-last-export
|
(defn retry-last-export
|
||||||
[]
|
[]
|
||||||
(ptk/reify ::retry-last-export
|
(ptk/reify ::retry-last-export
|
||||||
|
@ -256,3 +263,16 @@
|
||||||
(when (seq params)
|
(when (seq params)
|
||||||
(rx/of (request-multiple-export params)))))))
|
(rx/of (request-multiple-export params)))))))
|
||||||
|
|
||||||
|
(defn export-shapes-event
|
||||||
|
[exports origin]
|
||||||
|
(let [types (reduce (fn [counts {:keys [type]}]
|
||||||
|
(if (#{:png :pdf :svg :jpeg} type)
|
||||||
|
(update counts type inc)
|
||||||
|
counts))
|
||||||
|
{:png 0, :pdf 0, :svg 0, :jpeg 0}
|
||||||
|
exports)]
|
||||||
|
(ptk/event
|
||||||
|
::ev/event (merge types
|
||||||
|
{::ev/name "export-shapes"
|
||||||
|
::ev/origin origin
|
||||||
|
:num-shapes (count exports)}))))
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
[app.common.colors :as clr]
|
[app.common.colors :as clr]
|
||||||
[app.common.data :as d]
|
[app.common.data :as d]
|
||||||
[app.common.data.macros :as dm]
|
[app.common.data.macros :as dm]
|
||||||
[app.main.data.events :as ev]
|
|
||||||
[app.main.data.exports.assets :as de]
|
[app.main.data.exports.assets :as de]
|
||||||
[app.main.data.modal :as modal]
|
[app.main.data.modal :as modal]
|
||||||
[app.main.refs :as refs]
|
[app.main.refs :as refs]
|
||||||
|
@ -23,7 +22,6 @@
|
||||||
[app.util.i18n :as i18n :refer [tr c]]
|
[app.util.i18n :as i18n :refer [tr c]]
|
||||||
[app.util.strings :as ust]
|
[app.util.strings :as ust]
|
||||||
[cuerdas.core :as str]
|
[cuerdas.core :as str]
|
||||||
[potok.v2.core :as ptk]
|
|
||||||
[rumext.v2 :as mf]))
|
[rumext.v2 :as mf]))
|
||||||
|
|
||||||
(def ^:private neutral-icon
|
(def ^:private neutral-icon
|
||||||
|
@ -59,13 +57,8 @@
|
||||||
(fn [event]
|
(fn [event]
|
||||||
(dom/prevent-default event)
|
(dom/prevent-default event)
|
||||||
(st/emit! (modal/hide)
|
(st/emit! (modal/hide)
|
||||||
(de/request-multiple-export
|
(de/request-multiple-export {:exports enabled-exports :cmd cmd})
|
||||||
{:exports enabled-exports
|
(de/export-shapes-event enabled-exports origin)))
|
||||||
:cmd cmd})
|
|
||||||
(ptk/event
|
|
||||||
::ev/event {::ev/name "export-shapes"
|
|
||||||
::ev/origin origin
|
|
||||||
:num-shapes (count enabled-exports)})))
|
|
||||||
|
|
||||||
on-toggle-enabled
|
on-toggle-enabled
|
||||||
(mf/use-fn
|
(mf/use-fn
|
||||||
|
|
|
@ -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.main.data.events :as ev]
|
|
||||||
[app.main.data.exports.assets :as de]
|
[app.main.data.exports.assets :as de]
|
||||||
[app.main.refs :as refs]
|
[app.main.refs :as refs]
|
||||||
[app.main.store :as st]
|
[app.main.store :as st]
|
||||||
|
@ -18,7 +17,6 @@
|
||||||
[app.util.dom :as dom]
|
[app.util.dom :as dom]
|
||||||
[app.util.i18n :refer [tr c]]
|
[app.util.i18n :refer [tr c]]
|
||||||
[app.util.keyboard :as kbd]
|
[app.util.keyboard :as kbd]
|
||||||
[potok.v2.core :as ptk]
|
|
||||||
[rumext.v2 :as mf]))
|
[rumext.v2 :as mf]))
|
||||||
|
|
||||||
(mf/defc exports
|
(mf/defc exports
|
||||||
|
@ -63,15 +61,9 @@
|
||||||
:object-id (-> shapes first :id)}
|
:object-id (-> shapes first :id)}
|
||||||
(cond-> share-id (assoc :share-id share-id)))
|
(cond-> share-id (assoc :share-id share-id)))
|
||||||
exports (mapv #(merge % defaults) @exports)]
|
exports (mapv #(merge % defaults) @exports)]
|
||||||
(if (= 1 (count exports))
|
|
||||||
(st/emit!
|
(st/emit!
|
||||||
(de/request-simple-export {:export (first exports)})
|
(de/request-export {:exports exports})
|
||||||
(ptk/event
|
(de/export-shapes-event exports "viewer")))))
|
||||||
::ev/event {::ev/name "export-shapes" ::ev/origin "viewer" :num-shapes 1}))
|
|
||||||
(st/emit!
|
|
||||||
(de/request-multiple-export {:exports exports})
|
|
||||||
(ptk/event
|
|
||||||
::ev/event {::ev/name "export-shapes" ::ev/origin "viewer" :num-shapes (count exports)}))))))
|
|
||||||
|
|
||||||
add-export
|
add-export
|
||||||
(mf/use-callback
|
(mf/use-callback
|
||||||
|
|
|
@ -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.main.data.events :as ev]
|
|
||||||
[app.main.data.exports.assets :as de]
|
[app.main.data.exports.assets :as de]
|
||||||
[app.main.data.workspace.shapes :as dwsh]
|
[app.main.data.workspace.shapes :as dwsh]
|
||||||
[app.main.data.workspace.state-helpers :as wsh]
|
[app.main.data.workspace.state-helpers :as wsh]
|
||||||
|
@ -21,7 +20,6 @@
|
||||||
[app.util.dom :as dom]
|
[app.util.dom :as dom]
|
||||||
[app.util.i18n :refer [tr c]]
|
[app.util.i18n :refer [tr c]]
|
||||||
[app.util.keyboard :as kbd]
|
[app.util.keyboard :as kbd]
|
||||||
[potok.v2.core :as ptk]
|
|
||||||
[rumext.v2 :as mf]))
|
[rumext.v2 :as mf]))
|
||||||
|
|
||||||
(def exports-attrs
|
(def exports-attrs
|
||||||
|
@ -68,19 +66,18 @@
|
||||||
(if (and (= 1 (count shapes-with-exports)) (= 1 (-> shapes-with-exports first :exports count)))
|
(if (and (= 1 (count shapes-with-exports)) (= 1 (-> shapes-with-exports first :exports count)))
|
||||||
(let [shape (-> shapes-with-exports first)
|
(let [shape (-> shapes-with-exports first)
|
||||||
export (-> shape :exports first)
|
export (-> shape :exports first)
|
||||||
sname (:name shape)
|
|
||||||
suffix (:suffix export)
|
suffix (:suffix export)
|
||||||
|
sname (cond-> (:name shape)
|
||||||
|
(some? suffix)
|
||||||
|
(str suffix))
|
||||||
defaults {:page-id page-id
|
defaults {:page-id page-id
|
||||||
:file-id file-id
|
:file-id file-id
|
||||||
:name sname
|
:name sname
|
||||||
:object-id (:id (first shapes-with-exports))}]
|
:object-id (:id (first shapes-with-exports))}
|
||||||
(cond-> sname
|
full-export (merge export defaults)]
|
||||||
(some? suffix)
|
|
||||||
(str suffix))
|
|
||||||
(st/emit!
|
(st/emit!
|
||||||
(de/request-simple-export {:export (merge export defaults)})
|
(de/request-simple-export {:export full-export})
|
||||||
(ptk/event
|
(de/export-shapes-event [full-export] "workspace:sidebar")))
|
||||||
::ev/event {::ev/name "export-shapes" ::ev/origin "workspace:sidebar" :num-shapes 1})))
|
|
||||||
(st/emit!
|
(st/emit!
|
||||||
(de/show-workspace-export-dialog {:selected (reverse ids) :origin "workspace:sidebar"})))
|
(de/show-workspace-export-dialog {:selected (reverse ids) :origin "workspace:sidebar"})))
|
||||||
|
|
||||||
|
@ -92,16 +89,11 @@
|
||||||
:name sname
|
:name sname
|
||||||
:object-id (first ids)}
|
:object-id (first ids)}
|
||||||
exports (mapv #(merge % defaults) exports)]
|
exports (mapv #(merge % defaults) exports)]
|
||||||
(if (= 1 (count exports))
|
|
||||||
(let [export (first exports)]
|
|
||||||
(st/emit!
|
(st/emit!
|
||||||
(de/request-simple-export {:export export})
|
(de/request-export {:exports exports})
|
||||||
(ptk/event
|
(de/export-shapes-event exports "workspace:sidebar"))))))
|
||||||
::ev/event {::ev/name "export-shapes" ::ev/origin "workspace:sidebar" :num-shapes 1})))
|
|
||||||
(st/emit!
|
|
||||||
(de/request-multiple-export {:exports exports})
|
|
||||||
(ptk/event
|
|
||||||
::ev/event {::ev/name "export-shapes" ::ev/origin "workspace:sidebar" :num-shapes (count exports)})))))))
|
|
||||||
|
|
||||||
;; TODO: maybe move to specific events for avoid to have this logic here?
|
;; TODO: maybe move to specific events for avoid to have this logic here?
|
||||||
add-export
|
add-export
|
||||||
|
|
Loading…
Add table
Reference in a new issue