mirror of
https://github.com/penpot/penpot.git
synced 2025-05-28 17:36:11 +02:00
✨ Reorder grid tracks moving content
This commit is contained in:
parent
e75fb67eec
commit
39b41d7037
5 changed files with 88 additions and 20 deletions
|
@ -285,7 +285,7 @@
|
|||
(dwu/commit-undo-transaction undo-id))))))
|
||||
|
||||
(defn reorder-layout-track
|
||||
[ids type from-index to-index]
|
||||
[ids type from-index to-index move-content?]
|
||||
(assert (#{:row :column} type))
|
||||
|
||||
(ptk/reify ::reorder-layout-track
|
||||
|
@ -297,8 +297,8 @@
|
|||
ids
|
||||
(fn [shape]
|
||||
(case type
|
||||
:row (ctl/reorder-grid-row shape from-index to-index)
|
||||
:column (ctl/reorder-grid-column shape from-index to-index))))
|
||||
:row (ctl/reorder-grid-row shape from-index to-index move-content?)
|
||||
:column (ctl/reorder-grid-column shape from-index to-index move-content?))))
|
||||
(ptk/data-event :layout/update ids)
|
||||
(dwu/commit-undo-transaction undo-id))))))
|
||||
|
||||
|
|
|
@ -21,6 +21,15 @@
|
|||
(let [percent-val (mth/precision (* value 100) precision)]
|
||||
(dm/str percent-val "%"))))))
|
||||
|
||||
(defn format-frs
|
||||
([value]
|
||||
(format-frs value nil))
|
||||
([value {:keys [precision] :or {precision 2}}]
|
||||
(let [value (if (string? value) (d/parse-double value) value)]
|
||||
(when (d/num? value)
|
||||
(let [value (mth/precision value precision)]
|
||||
(dm/str value "fr"))))))
|
||||
|
||||
(defn format-number
|
||||
([value]
|
||||
(format-number value nil))
|
||||
|
|
|
@ -171,7 +171,7 @@
|
|||
(cleanup)
|
||||
(rx/push! global-drag-end nil)
|
||||
(when (fn? on-drop)
|
||||
(on-drop side drop-data))))
|
||||
(on-drop side drop-data event))))
|
||||
|
||||
on-drag-end
|
||||
(fn [event]
|
||||
|
|
|
@ -24,10 +24,12 @@
|
|||
[app.main.ui.components.select :refer [select]]
|
||||
[app.main.ui.components.title-bar :refer [title-bar]]
|
||||
[app.main.ui.context :as ctx]
|
||||
[app.main.ui.formats :as fmt]
|
||||
[app.main.ui.hooks :as h]
|
||||
[app.main.ui.icons :as i]
|
||||
[app.util.dom :as dom]
|
||||
[app.util.i18n :as i18n :refer [tr]]
|
||||
[app.util.keyboard :as kbd]
|
||||
[cuerdas.core :as str]
|
||||
[rumext.v2 :as mf]))
|
||||
|
||||
|
@ -951,9 +953,9 @@
|
|||
(defn manage-values [{:keys [value type]}]
|
||||
(case type
|
||||
:auto "auto"
|
||||
:percent (dm/str value "%")
|
||||
:flex (dm/str value "fr")
|
||||
:fixed (dm/str value "px")
|
||||
:percent (fmt/format-percent value)
|
||||
:flex (fmt/format-frs value)
|
||||
:fixed (fmt/format-pixels value)
|
||||
value))
|
||||
|
||||
(mf/defc grid-track-info
|
||||
|
@ -963,8 +965,8 @@
|
|||
drop-track
|
||||
(mf/use-fn
|
||||
(mf/deps type reorder-track index)
|
||||
(fn [drop-position data]
|
||||
(reorder-track type (:index data) (if (= :top drop-position) (dec index) index))))
|
||||
(fn [drop-position data event]
|
||||
(reorder-track type (:index data) (if (= :top drop-position) (dec index) index) (kbd/mod? event))))
|
||||
|
||||
pointer-enter
|
||||
(mf/use-fn
|
||||
|
@ -1688,8 +1690,8 @@
|
|||
reorder-track
|
||||
(mf/use-fn
|
||||
(mf/deps ids)
|
||||
(fn [type from-index to-index]
|
||||
(st/emit! (dwsl/reorder-layout-track ids type from-index to-index))))
|
||||
(fn [type from-index to-index move-content?]
|
||||
(st/emit! (dwsl/reorder-layout-track ids type from-index to-index move-content?))))
|
||||
|
||||
hover-track
|
||||
(mf/use-fn
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue