mirror of
https://github.com/penpot/penpot.git
synced 2025-02-11 01:28:30 -05:00
Merge pull request #3600 from penpot/palba-fix-fixes
🐛 Upgrade the fixes functions to avoid corner cases
This commit is contained in:
commit
74be76c914
1 changed files with 24 additions and 22 deletions
|
@ -101,7 +101,9 @@
|
||||||
(defn fix-components-shaperefs
|
(defn fix-components-shaperefs
|
||||||
([file]
|
([file]
|
||||||
(if-not (contains? (:features file) "components/v2")
|
(if-not (contains? (:features file) "components/v2")
|
||||||
(prn " This file is not v2")
|
(do
|
||||||
|
(prn " This file is not v2")
|
||||||
|
file)
|
||||||
(let [libs (->> (files/get-file-libraries app.srepl.helpers/*conn* (:id file))
|
(let [libs (->> (files/get-file-libraries app.srepl.helpers/*conn* (:id file))
|
||||||
(cons file)
|
(cons file)
|
||||||
(map #(files/get-file app.srepl.helpers/*conn* (:id %) (:features file)))
|
(map #(files/get-file app.srepl.helpers/*conn* (:id %) (:features file)))
|
||||||
|
@ -147,7 +149,7 @@
|
||||||
copies (->> objects
|
copies (->> objects
|
||||||
vals
|
vals
|
||||||
(filter #(and (ctk/instance-head? %) (not (ctk/main-instance? %)))))
|
(filter #(and (ctk/instance-head? %) (not (ctk/main-instance? %)))))
|
||||||
updates (reduce fc [] copies)
|
updates (reduce fc [] copies)
|
||||||
updated-page (reduce (fn [p [id shape-ref]]
|
updated-page (reduce (fn [p [id shape-ref]]
|
||||||
(assoc-in p [:objects id :shape-ref] shape-ref))
|
(assoc-in p [:objects id :shape-ref] shape-ref))
|
||||||
page
|
page
|
||||||
|
@ -156,23 +158,23 @@
|
||||||
updated-page))]
|
updated-page))]
|
||||||
|
|
||||||
(prn (str "Updating " (:name file) " " (:id file)))
|
(prn (str "Updating " (:name file) " " (:id file)))
|
||||||
(update file :data h/update-pages update-page))))
|
(-> file
|
||||||
|
(update :data h/update-pages update-page)
|
||||||
|
(assoc ::updated true)))))
|
||||||
|
|
||||||
([file save?]
|
([file save?]
|
||||||
(let [file (-> file
|
(let [file (-> file
|
||||||
(update :data blob/decode)
|
(update :data blob/decode)
|
||||||
(fix-components-shaperefs))]
|
(fix-components-shaperefs))]
|
||||||
(when save?
|
(when (and save? (::updated file))
|
||||||
(let [features (db/create-array h/*conn* "text" (:features file))
|
(let [data (blob/encode (:data file))]
|
||||||
data (blob/encode (:data file))]
|
|
||||||
(db/update! h/*conn* :file
|
(db/update! h/*conn* :file
|
||||||
{:data data
|
{:data data
|
||||||
;; :revn (:revn file)
|
;; :revn (:revn file)
|
||||||
:features features}
|
}
|
||||||
{:id (:id file)})
|
{:id (:id file)})
|
||||||
|
|
||||||
(when (contains? (:features file) "storage/pointer-map")
|
(files/persist-pointers! h/*conn* (:id file)))))))
|
||||||
(files/persist-pointers! h/*conn* (:id file))))))))
|
|
||||||
|
|
||||||
(defn fix-component-root
|
(defn fix-component-root
|
||||||
([file]
|
([file]
|
||||||
|
@ -198,22 +200,22 @@
|
||||||
(update :data blob/decode)
|
(update :data blob/decode)
|
||||||
(fix-component-root))]
|
(fix-component-root))]
|
||||||
(when save?
|
(when save?
|
||||||
(let [features (db/create-array h/*conn* "text" (:features file))
|
(let [data (blob/encode (:data file))]
|
||||||
data (blob/encode (:data file))]
|
|
||||||
(db/update! h/*conn* :file
|
(db/update! h/*conn* :file
|
||||||
{:data data
|
{:data data
|
||||||
;; :revn (:revn file)
|
;; :revn (:revn file)
|
||||||
:features features}
|
}
|
||||||
{:id (:id file)})
|
{:id (:id file)})
|
||||||
|
|
||||||
(when (contains? (:features file) "storage/pointer-map")
|
(files/persist-pointers! h/*conn* (:id file)))))))
|
||||||
(files/persist-pointers! h/*conn* (:id file))))))))
|
|
||||||
|
|
||||||
(defn update-near-components
|
(defn update-near-components
|
||||||
([file]
|
([file]
|
||||||
(prn (str "Updating " (:name file) " " (:id file)))
|
(prn (str "Updating " (:name file) " " (:id file)))
|
||||||
(if-not (contains? (:features file) "components/v2")
|
(if-not (contains? (:features file) "components/v2")
|
||||||
(prn " This file is not v2")
|
(do
|
||||||
|
(prn " This file is not v2")
|
||||||
|
file)
|
||||||
(let [libs (->> (files/get-file-libraries h/*conn* (:id file))
|
(let [libs (->> (files/get-file-libraries h/*conn* (:id file))
|
||||||
(cons file)
|
(cons file)
|
||||||
(map #(files/get-file h/*conn* (:id %) (:features file)))
|
(map #(files/get-file h/*conn* (:id %) (:features file)))
|
||||||
|
@ -262,20 +264,20 @@
|
||||||
(prn (str "Page " (:name page)))
|
(prn (str "Page " (:name page)))
|
||||||
(h/update-shapes page (partial update-shape page)))]
|
(h/update-shapes page (partial update-shape page)))]
|
||||||
|
|
||||||
(update file :data h/update-pages update-page))))
|
(-> file
|
||||||
|
(update :data h/update-pages update-page)
|
||||||
|
(assoc ::updated true)))))
|
||||||
|
|
||||||
([file save?]
|
([file save?]
|
||||||
(let [file (-> file
|
(let [file (-> file
|
||||||
(update :data blob/decode)
|
(update :data blob/decode)
|
||||||
(update-near-components))]
|
(update-near-components))]
|
||||||
(when save?
|
(when (and save? (::updated file))
|
||||||
(let [features (db/create-array h/*conn* "text" (:features file))
|
(let [data (blob/encode (:data file))]
|
||||||
data (blob/encode (:data file))]
|
|
||||||
(db/update! h/*conn* :file
|
(db/update! h/*conn* :file
|
||||||
{:data data
|
{:data data
|
||||||
;; :revn (:revn file)
|
;; :revn (:revn file)
|
||||||
:features features}
|
}
|
||||||
{:id (:id file)})
|
{:id (:id file)})
|
||||||
|
|
||||||
(when (contains? (:features file) "storage/pointer-map")
|
(files/persist-pointers! h/*conn* (:id file)))))))
|
||||||
(files/persist-pointers! h/*conn* (:id file))))))))
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue