Merge pull request #6598 from penpot/superalex-deprecate-old-image-type

♻️ Migrations for deprecated types and attributes
This commit is contained in:
Andrey Antukh 2025-06-02 11:29:44 +02:00 committed by GitHub
commit e13d1743da
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1354,6 +1354,58 @@
(update data :pages-index d/update-vals update-page)))
(defmethod migrate-data "0005-deprecate-image-type"
[data _]
(letfn [(update-object [object]
(if (cfh/image-shape? object)
(let [metadata (:metadata object)
fills (into [{:fill-image (assoc metadata :keep-aspect-ratio false)
:opacity 1}]
(:fills object))]
(-> object
(assoc :fills fills)
(dissoc :metadata)
(assoc :type :rect)))
object))
(update-container [container]
(d/update-when container :objects update-vals update-object))]
(-> data
(update :pages-index d/update-vals update-container)
(d/update-when :components d/update-vals update-container))))
(defmethod migrate-data "0006-fix-old-texts-fills"
[data _]
(letfn [(fix-fills [node]
(let [fills (cond
(or (some? (:fill-color node))
(some? (:fill-opacity node))
(some? (:fill-color-gradient node)))
[(d/without-nils (select-keys node [:fill-color :fill-opacity :fill-color-gradient
:fill-color-ref-id :fill-color-ref-file]))]
(nil? (:fills node))
[{:fill-color "#000000" :fill-opacity 1}]
:else
(:fills node))]
(-> node
(assoc :fills fills)
(dissoc :fill-color :fill-opacity :fill-color-gradient
:fill-color-ref-id :fill-color-ref-file))))
(update-object [object]
(if (cfh/text-shape? object)
(update object :content (partial txt/transform-nodes identity fix-fills))
object))
(update-container [container]
(d/update-when container :objects d/update-vals update-object))]
(-> data
(update :pages-index d/update-vals update-container)
(d/update-when :components d/update-vals update-container))))
(def available-migrations
(into (d/ordered-set)
@ -1414,4 +1466,6 @@
"0002-clean-shape-interactions"
"0003-fix-root-shape"
"0003-convert-path-content"
"0004-add-partial-text-touched-flags"]))
"0004-add-partial-text-touched-flags"
"0005-deprecate-image-type"
"0006-fix-old-texts-fills"]))