0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-03-12 07:41:43 -05:00

🐛 Fix components with non existing component-ids for v2 migration

This commit is contained in:
Alejandro Alonso 2024-02-07 14:21:45 +01:00 committed by Andrés Moya
parent 0c682ea75d
commit 6fa22c3a04

View file

@ -436,6 +436,28 @@
(-> file-data
(update :components update-vals fix-container))))
fix-non-existing-component-ids
;; Check component ids have valid values.
(fn [file-data]
(let [libraries (assoc-in libraries [(:id file-data) :data] file-data)]
(letfn [(fix-container [container]
(d/update-when container :objects update-vals fix-shape))
(fix-shape [shape]
(let [component-id (:component-id shape)
component-file (:component-file shape)
library (get libraries component-file)]
(cond-> shape
(and (some? component-id)
(some? library)
(nil? (ctkl/get-component (:data library) component-id)))
(ctk/detach-shape))))]
(-> file-data
(update :pages-index update-vals fix-container)
(d/update-when :components update-vals fix-container)))))
fix-misc-shape-issues
(fn [file-data]
(letfn [(fix-container [container]
@ -943,6 +965,7 @@
(fix-shape-geometry)
(fix-empty-components)
(fix-components-with-component-root)
(fix-non-existing-component-ids)
(fix-completly-broken-shapes)
(fix-bad-children)
(fix-broken-parents)