🐛 Fix CI

This commit is contained in:
Andrés Moya 2023-09-12 11:15:51 +02:00
parent 51ab11e91e
commit b943a034c9
2 changed files with 36 additions and 5 deletions

View file

@ -94,7 +94,7 @@
(map #(get-shape container %) (:shapes shape))) (map #(get-shape container %) (:shapes shape)))
(defn get-component-shape (defn get-component-shape
"Get the parent shape linked to a component for this shape, if any" "Get the parent top shape linked to a component for this shape, if any"
([objects shape] (get-component-shape objects shape nil)) ([objects shape] (get-component-shape objects shape nil))
([objects shape {:keys [allow-main?] :or {allow-main? false} :as options}] ([objects shape {:keys [allow-main?] :or {allow-main? false} :as options}]
(cond (cond
@ -113,6 +113,26 @@
:else :else
(get-component-shape objects (get objects (:parent-id shape)) options)))) (get-component-shape objects (get objects (:parent-id shape)) options))))
(defn get-head-shape
"Get the parent top or nested shape linked to a component for this shape, if any"
([objects shape] (get-head-shape objects shape nil))
([objects shape {:keys [allow-main?] :or {allow-main? false} :as options}]
(cond
(nil? shape)
nil
(cph/root? shape)
nil
(ctk/instance-head? shape)
shape
(and (not (ctk/in-component-copy? shape)) (not allow-main?))
nil
:else
(get-head-shape objects (get objects (:parent-id shape)) options))))
(defn get-instance-root (defn get-instance-root
"Get the parent shape at the top of the component instance (main or copy)." "Get the parent shape at the top of the component instance (main or copy)."
[objects shape] [objects shape]

View file

@ -177,15 +177,26 @@
(defn find-ref-shape (defn find-ref-shape
"Locate the near component in the local file or libraries, and retrieve the shape "Locate the near component in the local file or libraries, and retrieve the shape
referenced by the instance shape." referenced by the instance shape."
[file page libraries shape] [file page libraries shape & {:keys [include-deleted?] :or {include-deleted? false}}]
(let [root-shape (ctn/get-component-shape (:objects page) shape) (let [root-shape (ctn/get-component-shape (:objects page) shape)
component-file (if (= (:component-file root-shape) (:id file)) component-file (if (= (:component-file root-shape) (:id file))
file file
(get libraries (:component-file root-shape))) (get libraries (:component-file root-shape)))
component (when component-file component (when component-file
(ctkl/get-component (:data component-file) (:component-id root-shape)))] (ctkl/get-component (:data component-file) (:component-id root-shape) include-deleted?))
(when component ref-shape (when component
(get-ref-shape (:data component-file) component shape)))) (get-ref-shape (:data component-file) component shape))]
(if (some? ref-shape) ; There is a case when we have a nested orphan copy. In this case there is no near
ref-shape ; component for this copy, so shape-ref points to the remote main.
(let [head-shape (ctn/get-head-shape (:objects page) shape)
head-file (if (= (:component-file head-shape) (:id file))
file
(get libraries (:component-file head-shape)))
head-component (when (some? head-file)
(ctkl/get-component (:data head-file) (:component-id head-shape) include-deleted?))]
(when (some? head-component)
(get-ref-shape (:data head-file) head-component shape))))))
(defn find-remote-shape (defn find-remote-shape
"Recursively go back by the :shape-ref of the shape until find the correct shape of the original component" "Recursively go back by the :shape-ref of the shape until find the correct shape of the original component"