mirror of
https://github.com/penpot/penpot.git
synced 2025-03-13 16:21:57 -05:00
🐛 Fix text shapes wrongly converted to path in comp-v2 migration
This commit is contained in:
parent
66c07e1336
commit
df4be5106b
1 changed files with 32 additions and 1 deletions
|
@ -33,6 +33,7 @@
|
|||
[app.common.types.pages-list :as ctpl]
|
||||
[app.common.types.shape :as cts]
|
||||
[app.common.types.shape-tree :as ctst]
|
||||
[app.common.types.shape.text :as ctsx]
|
||||
[app.common.uuid :as uuid]
|
||||
[app.db :as db]
|
||||
[app.db.sql :as sql]
|
||||
|
@ -106,6 +107,9 @@
|
|||
(def valid-stroke? (sm/lazy-validator ::cts/stroke))
|
||||
(def valid-flow? (sm/lazy-validator ::ctp/flow))
|
||||
|
||||
(def valid-text-content?
|
||||
(sm/lazy-validator ::ctsx/content))
|
||||
|
||||
(defn- prepare-file-data
|
||||
"Apply some specific migrations or fixes to things that are allowed in v1 but not in v2,
|
||||
or that are the result of old bugs."
|
||||
|
@ -241,6 +245,32 @@
|
|||
(update :pages-index update-vals fix-container)
|
||||
(d/update-when :components update-vals fix-container))))
|
||||
|
||||
;; There are some bugs in the past that allows convert text to
|
||||
;; path and this fix tries to identify this cases and fix them converting
|
||||
;; the shape back to text shape
|
||||
|
||||
fix-text-shapes-converted-to-path
|
||||
(fn [file-data]
|
||||
(letfn [(fix-container [container]
|
||||
(d/update-when container :objects update-vals fix-shape))
|
||||
|
||||
(fix-shape [shape]
|
||||
(if (and (cfh/path-shape? shape)
|
||||
(contains? shape :content)
|
||||
(some? (:selrect shape))
|
||||
(valid-text-content? (:content shape)))
|
||||
(let [selrect (:selrect shape)]
|
||||
(-> shape
|
||||
(assoc :x (:x selrect))
|
||||
(assoc :y (:y selrect))
|
||||
(assoc :width (:width selrect))
|
||||
(assoc :height (:height selrect))
|
||||
(assoc :type :text)))
|
||||
shape))]
|
||||
(-> file-data
|
||||
(update :pages-index update-vals fix-container)
|
||||
(d/update-when :components update-vals fix-container))))
|
||||
|
||||
fix-recent-colors
|
||||
(fn [file-data]
|
||||
;; Remove invalid colors in :recent-colors
|
||||
|
@ -509,7 +539,7 @@
|
|||
;; Find any copy that is referencing a shape inside a component that have
|
||||
;; been detached in a previous fix. If so, undo the nested copy, converting
|
||||
;; it into a direct copy.
|
||||
;;
|
||||
;;
|
||||
;; WARNING: THIS SHOULD BE CALLED AT THE END OF THE PROCESS.
|
||||
(letfn [(fix-container [container]
|
||||
(d/update-when container :objects update-vals fix-shape))
|
||||
|
@ -531,6 +561,7 @@
|
|||
(fix-misc-shape-issues)
|
||||
(fix-recent-colors)
|
||||
(fix-missing-image-metadata)
|
||||
(fix-text-shapes-converted-to-path)
|
||||
(delete-big-geometry-shapes)
|
||||
(fix-broken-parents)
|
||||
(fix-orphan-shapes)
|
||||
|
|
Loading…
Add table
Reference in a new issue