mirror of
https://github.com/penpot/penpot.git
synced 2025-02-13 18:48:37 -05:00
Merge pull request #2886 from penpot/hiru-dashboard-names
🐛 Fix weird numeration creating elements in dashboard
This commit is contained in:
commit
297ba10e9d
19 changed files with 256 additions and 239 deletions
|
@ -5,6 +5,7 @@
|
|||
### :bug: Bugs fixed
|
||||
- Fix components groups items show the component name in list mode [Taiga #4770](https://tree.taiga.io/project/penpot/issue/4770)
|
||||
- Fix typing CMD+Z on MacOS turns the cursor into a Zoom cursor [Taiga #4778](https://tree.taiga.io/project/penpot/issue/4778)
|
||||
- Fix weird numeration creating new elements in dashboard [Taiga #4755](https://tree.taiga.io/project/penpot/issue/4755)
|
||||
|
||||
|
||||
## 1.17.0
|
||||
|
|
|
@ -154,7 +154,7 @@
|
|||
(t/is (th/success? out))
|
||||
(let [[thread :as result] (:result out)]
|
||||
(t/is (= 1 (count result)))
|
||||
(t/is (= "Page-1" (:page-name thread)))
|
||||
(t/is (= "Page 1" (:page-name thread)))
|
||||
(t/is (= "hello world" (:content thread)))
|
||||
(t/is (= 2 (:count-comments thread)))
|
||||
(t/is (true? (:is-resolved thread))))))
|
||||
|
|
|
@ -200,7 +200,7 @@
|
|||
|
||||
(assert (nil? (:current-component-id file)))
|
||||
(let [page-id (or (:id data) (uuid/next))
|
||||
page (-> (ctp/make-empty-page page-id "Page-1")
|
||||
page (-> (ctp/make-empty-page page-id "Page 1")
|
||||
(d/deep-merge data))]
|
||||
(-> file
|
||||
(commit-change
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
(dm/export common/file-version)
|
||||
(dm/export common/default-color)
|
||||
(dm/export common/component-sync-attrs)
|
||||
(dm/export common/retrieve-used-names)
|
||||
(dm/export common/generate-unique-name)
|
||||
|
||||
;; Focus
|
||||
(dm/export focus/focus-objects)
|
||||
|
|
|
@ -7,7 +7,10 @@
|
|||
(ns app.common.pages.common
|
||||
(:require
|
||||
[app.common.colors :as clr]
|
||||
[app.common.uuid :as uuid]))
|
||||
[app.common.data :as d]
|
||||
[app.common.spec :as us]
|
||||
[app.common.uuid :as uuid]
|
||||
[clojure.spec.alpha :as s]))
|
||||
|
||||
(def file-version 20)
|
||||
(def default-color clr/gray-20)
|
||||
|
@ -580,3 +583,31 @@
|
|||
:layout-item-min-w
|
||||
:layout-item-align-self}})
|
||||
|
||||
(defn retrieve-used-names
|
||||
"Return a set with the all unique names used in the
|
||||
elements (any entity thas has a :name)"
|
||||
[elements]
|
||||
(into #{} (comp (map :name) (remove nil?)) (vals elements)))
|
||||
|
||||
(defn- extract-numeric-suffix
|
||||
[basename]
|
||||
(if-let [[_ p1 p2] (re-find #"(.*) ([0-9]+)$" basename)]
|
||||
[p1 (+ 1 (d/parse-integer p2))]
|
||||
[basename 1]))
|
||||
|
||||
(s/def ::set-of-strings
|
||||
(s/every ::us/string :kind set?))
|
||||
|
||||
(defn generate-unique-name
|
||||
"A unique name generator"
|
||||
[used basename]
|
||||
(us/assert! ::set-of-strings used)
|
||||
(us/assert! ::us/string basename)
|
||||
(if-not (contains? used basename)
|
||||
basename
|
||||
(let [[prefix initial] (extract-numeric-suffix basename)]
|
||||
(loop [counter initial]
|
||||
(let [candidate (str prefix " " counter)]
|
||||
(if (contains? used candidate)
|
||||
(recur (inc counter))
|
||||
candidate))))))
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
[app.common.data.macros :as dm]
|
||||
[app.common.geom.point :as gpt]
|
||||
[app.common.geom.shapes :as gsh]
|
||||
[app.common.pages.common :as common]
|
||||
[app.common.spec :as us]
|
||||
[app.common.types.shape-tree :as ctst]
|
||||
[clojure.spec.alpha :as s]))
|
||||
|
@ -130,7 +131,7 @@
|
|||
delta (gpt/subtract position orig-pos)
|
||||
|
||||
objects (:objects container)
|
||||
unames (volatile! (ctst/retrieve-used-names objects))
|
||||
unames (volatile! (common/retrieve-used-names objects))
|
||||
|
||||
frame-id (ctst/frame-id-by-position objects (gpt/add orig-pos delta))
|
||||
frame-ids-map (volatile! {})
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
|
||||
([file-id page-id]
|
||||
(let [page (when (some? page-id)
|
||||
(ctp/make-empty-page page-id "Page-1"))]
|
||||
(ctp/make-empty-page page-id "Page 1"))]
|
||||
(cond-> (-> empty-file-data
|
||||
(assoc :id file-id))
|
||||
|
||||
|
|
|
@ -284,35 +284,6 @@
|
|||
[frame]
|
||||
(not (mth/almost-zero? (:rotation frame 0))))
|
||||
|
||||
(defn retrieve-used-names
|
||||
[objects]
|
||||
(into #{} (comp (map :name) (remove nil?)) (vals objects)))
|
||||
|
||||
(defn- extract-numeric-suffix
|
||||
[basename]
|
||||
(if-let [[_ p1 p2] (re-find #"(.*)-([0-9]+)$" basename)]
|
||||
[p1 (+ 1 (d/parse-integer p2))]
|
||||
[basename 1]))
|
||||
|
||||
(s/def ::set-of-strings
|
||||
(s/every ::us/string :kind set?))
|
||||
|
||||
(defn generate-unique-name
|
||||
"A unique name generator"
|
||||
[used basename]
|
||||
(us/assert! ::set-of-strings used)
|
||||
(us/assert! ::us/string basename)
|
||||
;; We have add a condition because UX doesn't want numbers on
|
||||
;; layer names.
|
||||
(if-not (contains? used basename)
|
||||
basename
|
||||
(let [[prefix initial] (extract-numeric-suffix basename)]
|
||||
(loop [counter initial]
|
||||
(let [candidate (str prefix "-" counter)]
|
||||
(if (contains? used candidate)
|
||||
(recur (inc counter))
|
||||
candidate))))))
|
||||
|
||||
(defn clone-object
|
||||
"Gets a copy of the object and all its children, with new ids
|
||||
and with the parent-children links correctly set. Admits functions
|
||||
|
|
|
@ -126,7 +126,7 @@
|
|||
(fn [file-data]
|
||||
(let [id (uuid/next)
|
||||
props (merge {:id id
|
||||
:name "Color-1"
|
||||
:name "Color 1"
|
||||
:color "#000000"
|
||||
:opacity 1}
|
||||
props)]
|
||||
|
@ -140,7 +140,7 @@
|
|||
(fn [file-data]
|
||||
(let [id (uuid/next)
|
||||
props (merge {:id id
|
||||
:name "Typography-1"
|
||||
:name "Typography 1"
|
||||
:font-id "sourcesanspro"
|
||||
:font-family "sourcesanspro"
|
||||
:font-size "14"
|
||||
|
|
|
@ -101,7 +101,7 @@
|
|||
;; false)
|
||||
|
||||
(t/is (= (count pages) 2))
|
||||
(t/is (= (:name (first pages)) "Page-1"))
|
||||
(t/is (= (:name (first pages)) "Page 1"))
|
||||
(t/is (= (:name (second pages)) "Library backup"))
|
||||
|
||||
(t/is (= (count components) 1))
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
(ns app.main.data.dashboard
|
||||
(:require
|
||||
[app.common.data :as d]
|
||||
[app.common.pages :as cp]
|
||||
[app.common.spec :as us]
|
||||
[app.common.uuid :as uuid]
|
||||
[app.config :as cf]
|
||||
|
@ -664,10 +665,12 @@
|
|||
(ptk/reify ::create-project
|
||||
ptk/WatchEvent
|
||||
(watch [_ state _]
|
||||
(let [name (name (gensym (str (tr "dashboard.new-project-prefix") " ")))
|
||||
team-id (:current-team-id state)
|
||||
params {:name name
|
||||
:team-id team-id}
|
||||
(let [projects (get state :dashboard-projects)
|
||||
unames (cp/retrieve-used-names projects)
|
||||
name (cp/generate-unique-name unames (str (tr "dashboard.new-project-prefix") " 1"))
|
||||
team-id (:current-team-id state)
|
||||
params {:name name
|
||||
:team-id team-id}
|
||||
{:keys [on-success on-error]
|
||||
:or {on-success identity
|
||||
on-error rx/throw}} (meta params)]
|
||||
|
@ -875,7 +878,9 @@
|
|||
:or {on-success identity
|
||||
on-error rx/throw}} (meta params)
|
||||
|
||||
name (name (gensym (str (tr "dashboard.new-file-prefix") " ")))
|
||||
files (get state :dashboard-files)
|
||||
unames (cp/retrieve-used-names files)
|
||||
name (cp/generate-unique-name unames (str (tr "dashboard.new-file-prefix") " 1"))
|
||||
features (cond-> #{}
|
||||
(features/active-feature? state :components-v2)
|
||||
(conj "components/v2"))
|
||||
|
@ -1067,8 +1072,12 @@
|
|||
pparams (:path-params route)
|
||||
in-project? (contains? pparams :project-id)
|
||||
name (if in-project?
|
||||
(name (gensym (str (tr "dashboard.new-file-prefix") " ")))
|
||||
(name (gensym (str (tr "dashboard.new-project-prefix") " "))))
|
||||
(let [files (get state :dashboard-files)
|
||||
unames (cp/retrieve-used-names files)]
|
||||
(cp/generate-unique-name unames (str (tr "dashboard.new-file-prefix") " 1")))
|
||||
(let [projects (get state :dashboard-projects)
|
||||
unames (cp/retrieve-used-names projects)]
|
||||
(cp/generate-unique-name unames (str (tr "dashboard.new-project-prefix") " 1"))))
|
||||
params (if in-project?
|
||||
{:project-id (:project-id pparams)
|
||||
:name name}
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
[app.common.geom.proportions :as gpp]
|
||||
[app.common.geom.shapes :as gsh]
|
||||
[app.common.logging :as log]
|
||||
[app.common.pages :as cp]
|
||||
[app.common.pages.changes-builder :as pcb]
|
||||
[app.common.pages.helpers :as cph]
|
||||
[app.common.spec :as us]
|
||||
|
@ -408,8 +409,8 @@
|
|||
ptk/WatchEvent
|
||||
(watch [it state _]
|
||||
(let [pages (get-in state [:workspace-data :pages-index])
|
||||
unames (ctst/retrieve-used-names pages)
|
||||
name (ctst/generate-unique-name unames "Page-1")
|
||||
unames (cp/retrieve-used-names pages)
|
||||
name (cp/generate-unique-name unames "Page 1")
|
||||
|
||||
changes (-> (pcb/empty-changes it)
|
||||
(pcb/add-empty-page id name))]
|
||||
|
@ -423,9 +424,9 @@
|
|||
(watch [it state _]
|
||||
(let [id (uuid/next)
|
||||
pages (get-in state [:workspace-data :pages-index])
|
||||
unames (ctst/retrieve-used-names pages)
|
||||
unames (cp/retrieve-used-names pages)
|
||||
page (get-in state [:workspace-data :pages-index page-id])
|
||||
name (ctst/generate-unique-name unames (:name page))
|
||||
name (cp/generate-unique-name unames (:name page))
|
||||
|
||||
no_thumbnails_objects (->> (:objects page)
|
||||
(d/mapm (fn [_ val] (dissoc val :use-for-thumbnail?))))
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
(:require
|
||||
[app.common.data :as d]
|
||||
[app.common.geom.point :as gpt]
|
||||
[app.common.pages :as cp]
|
||||
[app.common.pages.changes-builder :as pcb]
|
||||
[app.common.pages.helpers :as cph]
|
||||
[app.common.spec :as us]
|
||||
|
@ -33,7 +34,7 @@
|
|||
|
||||
flows (get-in page [:options :flows] [])
|
||||
unames (into #{} (map :name flows))
|
||||
name (ctst/generate-unique-name unames "Flow-1")
|
||||
name (cp/generate-unique-name unames "Flow 1")
|
||||
|
||||
new-flow {:id (uuid/next)
|
||||
:name name
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
(pcb/with-objects objects))]
|
||||
(let [group-name (if (= 1 (count shapes))
|
||||
(:name (first shapes))
|
||||
"Component-1")]
|
||||
"Component 1")]
|
||||
(dwg/prepare-create-group it
|
||||
objects
|
||||
page-id
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
[app.common.pages.helpers :as cph]
|
||||
[app.common.spec :as us]
|
||||
[app.common.types.page :as ctp]
|
||||
[app.common.types.shape-tree :as ctt]
|
||||
[app.common.types.shape.interactions :as ctsi]
|
||||
[app.common.uuid :as uuid]
|
||||
[app.main.data.modal :as md]
|
||||
|
@ -290,7 +289,7 @@
|
|||
move to the desired position, and recalculate parents and frames as needed."
|
||||
[all-objects page ids delta it]
|
||||
(let [shapes (map (d/getf all-objects) ids)
|
||||
unames (volatile! (ctt/retrieve-used-names (:objects page)))
|
||||
unames (volatile! (cp/retrieve-used-names (:objects page)))
|
||||
update-unames! (fn [new-name] (vswap! unames conj new-name))
|
||||
all-ids (reduce #(into %1 (cons %2 (cph/get-children-ids all-objects %2))) (d/ordered-set) ids)
|
||||
ids-map (into {} (map #(vector % (uuid/next))) all-ids)
|
||||
|
@ -367,7 +366,7 @@
|
|||
(let [update-flows (fn [flows]
|
||||
(reduce
|
||||
(fn [flows frame]
|
||||
(let [name (ctt/generate-unique-name @unames "Flow-1")
|
||||
(let [name (cp/generate-unique-name @unames "Flow 1")
|
||||
_ (vswap! unames conj name)
|
||||
new-flow {:id (uuid/next)
|
||||
:name name
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
[app.common.geom.point :as gpt]
|
||||
[app.common.geom.shapes :as gsh]
|
||||
[app.common.math :as mth]
|
||||
[app.common.pages :as cp]
|
||||
[app.common.pages.changes-builder :as pcb]
|
||||
[app.common.pages.helpers :as cph]
|
||||
[app.common.spec :as us :refer [max-safe-int min-safe-int]]
|
||||
|
@ -493,7 +494,7 @@
|
|||
(- y vb-y (/ vb-height 2))
|
||||
y))
|
||||
|
||||
unames (ctst/retrieve-used-names objects)
|
||||
unames (cp/retrieve-used-names objects)
|
||||
|
||||
svg-name (str/replace (:name svg-data) ".svg" "")
|
||||
|
||||
|
|
|
@ -166,12 +166,12 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Component-1* #--> Component-1
|
||||
; Component 1* #--> Component 1
|
||||
; #{:shapes-group}
|
||||
; Rect 2 ---> Rect 2
|
||||
;
|
||||
; [Component-1]
|
||||
; Component-1
|
||||
; [Component 1]
|
||||
; Component 1
|
||||
; Rect 1
|
||||
; Rect 2
|
||||
;
|
||||
|
@ -180,14 +180,14 @@
|
|||
new-state
|
||||
(thp/id :instance1))]
|
||||
|
||||
(t/is (= (:name group) "Component-1"))
|
||||
(t/is (= (:name group) "Component 1"))
|
||||
(t/is (= (:touched group) #{:shapes-group}))
|
||||
(t/is (not= (:shape-ref group) nil))
|
||||
(t/is (= (:name shape2) "Rect 2"))
|
||||
(t/is (= (:touched shape2) nil))
|
||||
(t/is (not= (:shape-ref shape2) nil))
|
||||
|
||||
(t/is (= (:name c-group) "Component-1"))
|
||||
(t/is (= (:name c-group) "Component 1"))
|
||||
(t/is (= (:touched c-group) nil))
|
||||
(t/is (= (:shape-ref c-group) nil))
|
||||
(t/is (= (:name c-shape2) "Rect 1"))
|
||||
|
@ -227,14 +227,14 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Component-1* #--> Component-1
|
||||
; Component 1* #--> Component 1
|
||||
; #{:shapes-group}
|
||||
; Rect 2 ---> Rect 2
|
||||
; Rect 1 ---> Rect 1
|
||||
; Rect 3 ---> Rect 3
|
||||
;
|
||||
; [Component-1]
|
||||
; Component-1
|
||||
; [Component 1]
|
||||
; Component 1
|
||||
; Rect 1
|
||||
; Rect 2
|
||||
; Rect 3
|
||||
|
@ -245,7 +245,7 @@
|
|||
new-state
|
||||
(thp/id :instance1))]
|
||||
|
||||
(t/is (= (:name group) "Component-1"))
|
||||
(t/is (= (:name group) "Component 1"))
|
||||
(t/is (= (:touched group) #{:shapes-group}))
|
||||
(t/is (= (:name shape1) "Rect 2"))
|
||||
(t/is (= (:touched shape1) nil))
|
||||
|
@ -257,7 +257,7 @@
|
|||
(t/is (= (:touched shape3) nil))
|
||||
(t/is (not= (:shape-ref shape3) nil))
|
||||
|
||||
(t/is (= (:name c-group) "Component-1"))
|
||||
(t/is (= (:name c-group) "Component 1"))
|
||||
(t/is (= (:touched c-group) nil))
|
||||
(t/is (= (:shape-ref c-group) nil))
|
||||
(t/is (= (:name c-shape1) "Rect 1"))
|
||||
|
@ -389,7 +389,7 @@
|
|||
new-state
|
||||
(thp/id :instance2))]
|
||||
|
||||
; TODO: get and check the instance inside component [Group-1]
|
||||
; TODO: get and check the instance inside component [Group 1]
|
||||
|
||||
(t/is (= (:name instance2) "Group"))
|
||||
(t/is (= (:touched instance2) nil))
|
||||
|
@ -478,7 +478,7 @@
|
|||
new-state
|
||||
(thp/id :instance2))]
|
||||
|
||||
; TODO: get and check the instance inside component [Group-1]
|
||||
; TODO: get and check the instance inside component [Group 1]
|
||||
|
||||
(t/is (= (:name instance2) "Group"))
|
||||
(t/is (= (:touched instance2) nil))
|
||||
|
@ -567,7 +567,7 @@
|
|||
new-state
|
||||
(thp/id :instance2))]
|
||||
|
||||
; TODO: get and check the instance inside component [Group-1]
|
||||
; TODO: get and check the instance inside component [Group 1]
|
||||
|
||||
(t/is (= (:name instance2) "Group"))
|
||||
(t/is (= (:touched instance2) nil))
|
||||
|
@ -737,12 +737,12 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Component-1 #--> Component-1
|
||||
; Component 1 #--> Component 1
|
||||
; Rect 1 ---> Rect 1
|
||||
; Rect 2 ---> Rect 2
|
||||
;
|
||||
; [Component-1]
|
||||
; Component-1
|
||||
; [Component 1]
|
||||
; Component 1
|
||||
; Rect 1
|
||||
; Rect 2
|
||||
;
|
||||
|
@ -752,7 +752,7 @@
|
|||
new-state
|
||||
(thp/id :instance1))]
|
||||
|
||||
(t/is (= (:name group) "Component-1"))
|
||||
(t/is (= (:name group) "Component 1"))
|
||||
(t/is (= (:touched group) nil))
|
||||
(t/is (not= (:shape-ref group) nil))
|
||||
(t/is (= (:name shape1) "Rect 1"))
|
||||
|
@ -762,7 +762,7 @@
|
|||
(t/is (= (:touched shape2) nil))
|
||||
(t/is (not= (:shape-ref shape2) nil))
|
||||
|
||||
(t/is (= (:name c-group) "Component-1"))
|
||||
(t/is (= (:name c-group) "Component 1"))
|
||||
(t/is (= (:touched c-group) nil))
|
||||
(t/is (= (:shape-ref c-group) nil))
|
||||
(t/is (= (:name c-shape1) "Rect 1"))
|
||||
|
@ -803,13 +803,13 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Component-1 #--> Component-1
|
||||
; Component 1 #--> Component 1
|
||||
; Rect 1 ---> Rect 1
|
||||
; Rect 2 ---> Rect 2
|
||||
; Rect 3 ---> Rect 3
|
||||
;
|
||||
; [Component-1]
|
||||
; Component-1
|
||||
; [Component 1]
|
||||
; Component 1
|
||||
; Rect 1
|
||||
; Rect 2
|
||||
; Rect 3
|
||||
|
@ -819,7 +819,7 @@
|
|||
new-state
|
||||
(thp/id :instance1))]
|
||||
|
||||
(t/is (= (:name group) "Component-1"))
|
||||
(t/is (= (:name group) "Component 1"))
|
||||
(t/is (= (:touched group) nil))
|
||||
(t/is (not= (:shape-ref group) nil))
|
||||
(t/is (= (:name shape1) "Rect 1"))
|
||||
|
@ -832,7 +832,7 @@
|
|||
(t/is (= (:touched shape3) nil))
|
||||
(t/is (not= (:shape-ref shape3) nil))
|
||||
|
||||
(t/is (= (:name c-group) "Component-1"))
|
||||
(t/is (= (:name c-group) "Component 1"))
|
||||
(t/is (= (:touched c-group) nil))
|
||||
(t/is (= (:shape-ref c-group) nil))
|
||||
(t/is (= (:name c-shape1) "Rect 1"))
|
||||
|
@ -1144,7 +1144,7 @@
|
|||
new-state
|
||||
(thp/id :instance2))]
|
||||
|
||||
; TODO: get and check the instance inside component [Group-1]
|
||||
; TODO: get and check the instance inside component [Group 1]
|
||||
|
||||
(t/is (= (:name instance2) "Group"))
|
||||
(t/is (= (:touched instance2) nil))
|
||||
|
@ -1517,11 +1517,11 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Component-1 #--> Component-1
|
||||
; Component 1 #--> Component 1
|
||||
; Rect 2 ---> Rect 2
|
||||
;
|
||||
; [Component-1]
|
||||
; Component-1
|
||||
; [Component 1]
|
||||
; Component 1
|
||||
; Rect 2
|
||||
;
|
||||
(let [[[group shape2] [c-group c-shape2] component]
|
||||
|
@ -1529,14 +1529,14 @@
|
|||
new-state
|
||||
(thp/id :instance1))]
|
||||
|
||||
(t/is (= (:name group) "Component-1"))
|
||||
(t/is (= (:name group) "Component 1"))
|
||||
(t/is (= (:touched group) nil))
|
||||
(t/is (not= (:shape-ref group) nil))
|
||||
(t/is (= (:name shape2) "Rect 2"))
|
||||
(t/is (= (:touched shape2) nil))
|
||||
(t/is (not= (:shape-ref shape2) nil))
|
||||
|
||||
(t/is (= (:name c-group) "Component-1"))
|
||||
(t/is (= (:name c-group) "Component 1"))
|
||||
(t/is (= (:touched c-group) nil))
|
||||
(t/is (= (:shape-ref c-group) nil))
|
||||
(t/is (= (:name c-shape2) "Rect 2"))
|
||||
|
@ -1576,13 +1576,13 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Component-1 #--> Component-1
|
||||
; Component 1 #--> Component 1
|
||||
; Rect 2 ---> Rect 2
|
||||
; Rect 1 ---> Rect 1
|
||||
; Rect 3 ---> Rect 3
|
||||
;
|
||||
; [Component-1]
|
||||
; Component-1
|
||||
; [Component 1]
|
||||
; Component 1
|
||||
; Rect 2
|
||||
; Rect 1
|
||||
; Rect 3
|
||||
|
@ -1592,7 +1592,7 @@
|
|||
new-state
|
||||
(thp/id :instance1))]
|
||||
|
||||
(t/is (= (:name group) "Component-1"))
|
||||
(t/is (= (:name group) "Component 1"))
|
||||
(t/is (= (:touched group) nil))
|
||||
(t/is (not= (:shape-ref group) nil))
|
||||
(t/is (= (:touched shape1) nil))
|
||||
|
@ -1605,7 +1605,7 @@
|
|||
(t/is (not= (:shape-ref shape3) nil))
|
||||
(t/is (= (:name shape3) "Rect 3"))
|
||||
|
||||
(t/is (= (:name c-group) "Component-1"))
|
||||
(t/is (= (:name c-group) "Component 1"))
|
||||
(t/is (= (:touched c-group) nil))
|
||||
(t/is (= (:shape-ref c-group) nil))
|
||||
(t/is (= (:name c-shape1) "Rect 2"))
|
||||
|
@ -1737,7 +1737,7 @@
|
|||
new-state
|
||||
(thp/id :instance2))]
|
||||
|
||||
; TODO: get and check the instance inside component [Group-1]
|
||||
; TODO: get and check the instance inside component [Group 1]
|
||||
|
||||
(t/is (= (:name instance2) "Group"))
|
||||
(t/is (= (:touched instance2) nil))
|
||||
|
@ -1826,7 +1826,7 @@
|
|||
new-state
|
||||
(thp/id :instance2))]
|
||||
|
||||
; TODO: get and check the instance inside component [Group-1]
|
||||
; TODO: get and check the instance inside component [Group 1]
|
||||
|
||||
(t/is (= (:name instance2) "Group"))
|
||||
(t/is (= (:touched instance2) nil))
|
||||
|
@ -1916,7 +1916,7 @@
|
|||
new-state
|
||||
(thp/id :instance2))]
|
||||
|
||||
; TODO: get and check the instance inside component [Group-1]
|
||||
; TODO: get and check the instance inside component [Group 1]
|
||||
|
||||
(t/is (= (:name instance2) "Group"))
|
||||
(t/is (= (:touched instance2) nil))
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"}))
|
||||
{:name "Rect 1"}))
|
||||
|
||||
store (the/prepare-store state done
|
||||
(fn [new-state]
|
||||
|
@ -43,12 +43,12 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Rect-1 #--> Rect-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; Rect 1 #--> Rect 1
|
||||
; Rect 1 ---> Rect 1
|
||||
;
|
||||
; [Rect-1]
|
||||
; Rect-1
|
||||
; Rect-1
|
||||
; [Rect 1]
|
||||
; Rect 1
|
||||
; Rect 1
|
||||
;
|
||||
(let [shape1 (thp/get-shape new-state :shape1)
|
||||
|
||||
|
@ -59,11 +59,11 @@
|
|||
|
||||
file (wsh/get-local-file new-state)]
|
||||
|
||||
(t/is (= (:name shape1) "Rect-1"))
|
||||
(t/is (= (:name group) "Rect-1"))
|
||||
(t/is (= (:name component) "Rect-1"))
|
||||
(t/is (= (:name c-shape1) "Rect-1"))
|
||||
(t/is (= (:name c-group) "Rect-1"))
|
||||
(t/is (= (:name shape1) "Rect 1"))
|
||||
(t/is (= (:name group) "Rect 1"))
|
||||
(t/is (= (:name component) "Rect 1"))
|
||||
(t/is (= (:name c-shape1) "Rect 1"))
|
||||
(t/is (= (:name c-group) "Rect 1"))
|
||||
|
||||
(thl/is-from-file group file))))]
|
||||
|
||||
|
@ -81,7 +81,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"}))]
|
||||
{:name "Rect 1"}))]
|
||||
|
||||
(->> state
|
||||
(the/do-update (dw/select-shape (thp/id :shape1)))
|
||||
|
@ -97,11 +97,11 @@
|
|||
|
||||
file (wsh/get-local-file new-state)]
|
||||
|
||||
(t/is (= (:name shape1) "Rect-1"))
|
||||
(t/is (= (:name group) "Component-1"))
|
||||
(t/is (= (:name component) "Component-1"))
|
||||
(t/is (= (:name c-shape1) "Rect-1"))
|
||||
(t/is (= (:name c-group) "Component-1"))
|
||||
(t/is (= (:name shape1) "Rect 1"))
|
||||
(t/is (= (:name group) "Component 1"))
|
||||
(t/is (= (:name component) "Component 1"))
|
||||
(t/is (= (:name c-shape1) "Rect 1"))
|
||||
(t/is (= (:name c-group) "Component 1"))
|
||||
|
||||
(thl/is-from-file group file))))
|
||||
|
||||
|
@ -113,7 +113,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"})
|
||||
{:name "Rect 1"})
|
||||
(thp/sample-shape :shape2 :rect
|
||||
{:name "Rect-2"}))
|
||||
|
||||
|
@ -123,13 +123,13 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Component-1 #--> Component-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; Component 1 #--> Component 1
|
||||
; Rect 1 ---> Rect 1
|
||||
; Rect-2 ---> Rect-2
|
||||
;
|
||||
; [Component-1]
|
||||
; Component-1
|
||||
; Rect-1
|
||||
; [Component 1]
|
||||
; Component 1
|
||||
; Rect 1
|
||||
; Rect-2
|
||||
;
|
||||
(let [shape1 (thp/get-shape new-state :shape1)
|
||||
|
@ -143,12 +143,12 @@
|
|||
|
||||
file (wsh/get-local-file new-state)]
|
||||
|
||||
(t/is (= (:name group) "Component-1"))
|
||||
(t/is (= (:name shape1) "Rect-1"))
|
||||
(t/is (= (:name group) "Component 1"))
|
||||
(t/is (= (:name shape1) "Rect 1"))
|
||||
(t/is (= (:name shape2) "Rect-2"))
|
||||
(t/is (= (:name component) "Component-1"))
|
||||
(t/is (= (:name c-group) "Component-1"))
|
||||
(t/is (= (:name c-shape1) "Rect-1"))
|
||||
(t/is (= (:name component) "Component 1"))
|
||||
(t/is (= (:name c-group) "Component 1"))
|
||||
(t/is (= (:name c-shape1) "Rect 1"))
|
||||
(t/is (= (:name c-shape2) "Rect-2"))
|
||||
|
||||
(thl/is-from-file group file))))]
|
||||
|
@ -166,7 +166,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"})
|
||||
{:name "Rect 1"})
|
||||
(thp/sample-shape :shape2 :rect
|
||||
{:name "Rect-2"})
|
||||
(thp/group-shapes :group1
|
||||
|
@ -180,12 +180,12 @@
|
|||
; [Page]
|
||||
; Root Frame
|
||||
; Group #--> Group
|
||||
; Rect-1 ---> Rect-1
|
||||
; Rect 1 ---> Rect 1
|
||||
; Rect-2 ---> Rect-2
|
||||
;
|
||||
; [Group]
|
||||
; Group
|
||||
; Rect-1
|
||||
; Rect 1
|
||||
; Rect-2
|
||||
;
|
||||
(let [[[group shape1 shape2]
|
||||
|
@ -197,11 +197,11 @@
|
|||
|
||||
file (wsh/get-local-file new-state)]
|
||||
|
||||
(t/is (= (:name shape1) "Rect-1"))
|
||||
(t/is (= (:name shape1) "Rect 1"))
|
||||
(t/is (= (:name shape2) "Rect-2"))
|
||||
(t/is (= (:name group) "Group"))
|
||||
(t/is (= (:name component) "Group"))
|
||||
(t/is (= (:name c-shape1) "Rect-1"))
|
||||
(t/is (= (:name c-shape1) "Rect 1"))
|
||||
(t/is (= (:name c-shape2) "Rect-2"))
|
||||
(t/is (= (:name c-group) "Group"))
|
||||
|
||||
|
@ -219,7 +219,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"})
|
||||
{:name "Rect 1"})
|
||||
(thp/make-component :instance1 :component1
|
||||
[(thp/id :shape1)]))
|
||||
|
||||
|
@ -229,18 +229,18 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Rect-1 #--> Rect-1
|
||||
; Rect-1 @--> Rect-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; Rect 1 #--> Rect 1
|
||||
; Rect 1 @--> Rect 1
|
||||
; Rect 1 ---> Rect 1
|
||||
;
|
||||
; [Rect-1]
|
||||
; Rect-1
|
||||
; Rect-1
|
||||
; [Rect 1]
|
||||
; Rect 1
|
||||
; Rect 1
|
||||
;
|
||||
; [Rect-1]
|
||||
; Rect-1
|
||||
; Rect-1 @--> Rect-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; [Rect 1]
|
||||
; Rect 1
|
||||
; Rect 1 @--> Rect 1
|
||||
; Rect 1 ---> Rect 1
|
||||
;
|
||||
(let [[[instance1 shape1]
|
||||
[c-instance1 c-shape1]
|
||||
|
@ -257,19 +257,19 @@
|
|||
new-state
|
||||
(:parent-id instance1))]
|
||||
|
||||
(t/is (= (:name shape1) "Rect-1"))
|
||||
(t/is (= (:name instance1) "Rect-1"))
|
||||
(t/is (= (:name component1) "Rect-1"))
|
||||
(t/is (= (:name c-shape1) "Rect-1"))
|
||||
(t/is (= (:name c-instance1) "Rect-1"))
|
||||
(t/is (= (:name shape1) "Rect 1"))
|
||||
(t/is (= (:name instance1) "Rect 1"))
|
||||
(t/is (= (:name component1) "Rect 1"))
|
||||
(t/is (= (:name c-shape1) "Rect 1"))
|
||||
(t/is (= (:name c-instance1) "Rect 1"))
|
||||
|
||||
(t/is (= (:name shape1') "Rect-1"))
|
||||
(t/is (= (:name instance1') "Rect-1"))
|
||||
(t/is (= (:name instance2) "Rect-1"))
|
||||
(t/is (= (:name component2) "Rect-1"))
|
||||
(t/is (= (:name c-shape1') "Rect-1"))
|
||||
(t/is (= (:name c-instance1') "Rect-1"))
|
||||
(t/is (= (:name c-instance2) "Rect-1")))))]
|
||||
(t/is (= (:name shape1') "Rect 1"))
|
||||
(t/is (= (:name instance1') "Rect 1"))
|
||||
(t/is (= (:name instance2) "Rect 1"))
|
||||
(t/is (= (:name component2) "Rect 1"))
|
||||
(t/is (= (:name c-shape1') "Rect 1"))
|
||||
(t/is (= (:name c-instance1') "Rect 1"))
|
||||
(t/is (= (:name c-instance2) "Rect 1")))))]
|
||||
|
||||
(ptk/emit!
|
||||
store
|
||||
|
@ -283,7 +283,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"})
|
||||
{:name "Rect 1"})
|
||||
(thp/make-component :instance1 :component-1
|
||||
[(thp/id :shape1)]))
|
||||
|
||||
|
@ -296,11 +296,11 @@
|
|||
; [Page]
|
||||
; Root Frame
|
||||
; Rect-2 #--> Renamed component
|
||||
; Rect-1 ---> Rect-1
|
||||
; Rect 1 ---> Rect 1
|
||||
;
|
||||
; [Renamed]
|
||||
; Renamed component
|
||||
; Rect-1
|
||||
; Rect 1
|
||||
(let [libs (wsh/get-libraries new-state)
|
||||
component (cph/get-component libs
|
||||
(:component-file instance1)
|
||||
|
@ -319,7 +319,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"})
|
||||
{:name "Rect 1"})
|
||||
(thp/make-component :instance1 :component-1
|
||||
[(thp/id :shape1)]))
|
||||
|
||||
|
@ -332,16 +332,16 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Rect-1 #--> Rect-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; Rect 1 #--> Rect 1
|
||||
; Rect 1 ---> Rect 1
|
||||
;
|
||||
; [Rect-1]
|
||||
; Rect-1
|
||||
; Rect-1
|
||||
; [Rect 1]
|
||||
; Rect 1
|
||||
; Rect 1
|
||||
;
|
||||
; [Rect-1]
|
||||
; Rect-1
|
||||
; Rect-1
|
||||
; [Rect 1]
|
||||
; Rect 1
|
||||
; Rect 1
|
||||
;
|
||||
(let [new-component-id (->> (get-in new-state
|
||||
[:workspace-data
|
||||
|
@ -363,7 +363,7 @@
|
|||
new-state
|
||||
new-component-id)]
|
||||
|
||||
(t/is (= (:name component2) "Rect-1")))))]
|
||||
(t/is (= (:name component2) "Rect 1")))))]
|
||||
|
||||
(ptk/emit!
|
||||
store
|
||||
|
@ -376,7 +376,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"})
|
||||
{:name "Rect 1"})
|
||||
(thp/make-component :instance1 :component-1
|
||||
[(thp/id :shape1)]))
|
||||
|
||||
|
@ -392,7 +392,7 @@
|
|||
; [Page]
|
||||
; Root Frame
|
||||
; Rect-2
|
||||
; Rect-1
|
||||
; Rect 1
|
||||
;
|
||||
(let [[instance1 shape1]
|
||||
(thl/resolve-noninstance
|
||||
|
@ -420,7 +420,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"})
|
||||
{:name "Rect 1"})
|
||||
(thp/make-component :instance1 :component-1
|
||||
[(thp/id :shape1)]))
|
||||
|
||||
|
@ -434,14 +434,14 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Rect-1 #--> Rect-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; Rect-1 #--> Rect-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; Rect 1 #--> Rect 1
|
||||
; Rect 1 ---> Rect 1
|
||||
; Rect 1 #--> Rect 1
|
||||
; Rect 1 ---> Rect 1
|
||||
;
|
||||
; [Rect-1]
|
||||
; Rect-1
|
||||
; Rect-1
|
||||
; [Rect 1]
|
||||
; Rect 1
|
||||
; Rect 1
|
||||
;
|
||||
(let [new-instance-id (-> new-state
|
||||
wsh/lookup-selected
|
||||
|
@ -456,10 +456,10 @@
|
|||
|
||||
(t/is (not= (:id instance1) (:id instance2)))
|
||||
(t/is (= (:id component) component-id))
|
||||
(t/is (= (:name instance2) "Rect-1"))
|
||||
(t/is (= (:name shape2) "Rect-1"))
|
||||
(t/is (= (:name c-instance2) "Rect-1"))
|
||||
(t/is (= (:name c-shape2) "Rect-1"))
|
||||
(t/is (= (:name instance2) "Rect 1"))
|
||||
(t/is (= (:name shape2) "Rect 1"))
|
||||
(t/is (= (:name c-instance2) "Rect 1"))
|
||||
(t/is (= (:name c-shape2) "Rect 1"))
|
||||
(t/is (= (:component-file instance2)
|
||||
thp/current-file-id)))))]
|
||||
|
||||
|
@ -476,7 +476,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"})
|
||||
{:name "Rect 1"})
|
||||
(thp/make-component :instance1 :component-1
|
||||
[(thp/id :shape1)])
|
||||
(thp/move-to-library :lib1 "Library 1")
|
||||
|
@ -491,8 +491,8 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Rect-1 #--> <Library 1> Rect-1
|
||||
; Rect-1 ---> <Library 1> Rect-1
|
||||
; Rect 1 #--> <Library 1> Rect 1
|
||||
; Rect 1 ---> <Library 1> Rect 1
|
||||
;
|
||||
(let [new-instance-id (-> new-state
|
||||
wsh/lookup-selected
|
||||
|
@ -506,10 +506,10 @@
|
|||
new-instance-id)]
|
||||
|
||||
(t/is (= (:id component) component-id))
|
||||
(t/is (= (:name instance2) "Rect-1"))
|
||||
(t/is (= (:name shape2) "Rect-1"))
|
||||
(t/is (= (:name c-instance2) "Rect-1"))
|
||||
(t/is (= (:name c-shape2) "Rect-1"))
|
||||
(t/is (= (:name instance2) "Rect 1"))
|
||||
(t/is (= (:name shape2) "Rect 1"))
|
||||
(t/is (= (:name c-instance2) "Rect 1"))
|
||||
(t/is (= (:name c-shape2) "Rect 1"))
|
||||
(t/is (= (:component-file instance2) library-id)))))]
|
||||
|
||||
(ptk/emit!
|
||||
|
@ -525,7 +525,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"})
|
||||
{:name "Rect 1"})
|
||||
(thp/make-component :instance1 :component-1
|
||||
[(thp/id :shape1)]))
|
||||
|
||||
|
@ -539,11 +539,11 @@
|
|||
; [Page]
|
||||
; Root Frame
|
||||
; Rect-2
|
||||
; Rect-1
|
||||
; Rect 1
|
||||
;
|
||||
; [Rect-2]
|
||||
; Rect-2
|
||||
; Rect-1
|
||||
; Rect 1
|
||||
;
|
||||
(let [[instance1 shape1]
|
||||
(thl/resolve-noninstance
|
||||
|
@ -564,7 +564,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"}))
|
||||
{:name "Rect 1"}))
|
||||
|
||||
file (wsh/get-local-file state)
|
||||
instance1 (thp/get-shape state :instance1)
|
||||
|
@ -577,17 +577,17 @@
|
|||
; [Page]
|
||||
; Root Frame
|
||||
; Group #--> Group
|
||||
; Rect-1 @--> Rect-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; Rect 1 @--> Rect 1
|
||||
; Rect 1 ---> Rect 1
|
||||
;
|
||||
; [Rect-1]
|
||||
; Rect-1
|
||||
; Rect-1
|
||||
; [Rect 1]
|
||||
; Rect 1
|
||||
; Rect 1
|
||||
;
|
||||
; [Group]
|
||||
; Group
|
||||
; Rect-1 @--> Rect-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; Rect 1 @--> Rect 1
|
||||
; Rect 1 ---> Rect 1
|
||||
;
|
||||
(let [page (thp/current-page new-state)
|
||||
shape1 (thp/get-shape new-state :shape1)
|
||||
|
@ -601,12 +601,12 @@
|
|||
(:parent-id parent1))]
|
||||
|
||||
(t/is (= (:name group) "Group"))
|
||||
(t/is (= (:name shape1) "Rect-1"))
|
||||
(t/is (= (:name shape2) "Rect-1"))
|
||||
(t/is (= (:name shape1) "Rect 1"))
|
||||
(t/is (= (:name shape2) "Rect 1"))
|
||||
(t/is (= (:name component) "Group"))
|
||||
(t/is (= (:name c-group) "Group"))
|
||||
(t/is (= (:name c-shape1) "Rect-1"))
|
||||
(t/is (= (:name c-shape2) "Rect-1")))))]
|
||||
(t/is (= (:name c-shape1) "Rect 1"))
|
||||
(t/is (= (:name c-shape2) "Rect 1")))))]
|
||||
|
||||
(ptk/emit!
|
||||
store
|
||||
|
@ -622,7 +622,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"})
|
||||
{:name "Rect 1"})
|
||||
(thp/make-component :instance1 :component-1
|
||||
[(thp/id :shape1)])
|
||||
(thp/group-shapes :group1
|
||||
|
@ -641,21 +641,21 @@
|
|||
;
|
||||
; [Page]
|
||||
; Root Frame
|
||||
; Rect-1 #--> Rect-1
|
||||
; Rect-1 @--> Rect-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; Rect-1 #--> Rect-1
|
||||
; Rect-1 @--> Rect-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; Rect 1 #--> Rect 1
|
||||
; Rect 1 @--> Rect 1
|
||||
; Rect 1 ---> Rect 1
|
||||
; Rect 1 #--> Rect 1
|
||||
; Rect 1 @--> Rect 1
|
||||
; Rect 1 ---> Rect 1
|
||||
;
|
||||
; [Rect-1]
|
||||
; Rect-1
|
||||
; Rect-1
|
||||
; [Rect 1]
|
||||
; Rect 1
|
||||
; Rect 1
|
||||
;
|
||||
; [Rect-1]
|
||||
; Rect-1
|
||||
; Rect-1 @--> Rect-1
|
||||
; Rect-1 ---> Rect-1
|
||||
; [Rect 1]
|
||||
; Rect 1
|
||||
; Rect 1 @--> Rect 1
|
||||
; Rect 1 ---> Rect 1
|
||||
;
|
||||
(let [new-instance-id (-> new-state
|
||||
wsh/lookup-selected
|
||||
|
@ -672,12 +672,12 @@
|
|||
|
||||
(t/is (not= (:id instance1) (:id instance3)))
|
||||
(t/is (= (:id component) component-id))
|
||||
(t/is (= (:name instance3) "Rect-1"))
|
||||
(t/is (= (:name shape3) "Rect-1"))
|
||||
(t/is (= (:name shape4) "Rect-1"))
|
||||
(t/is (= (:name c-instance3) "Rect-1"))
|
||||
(t/is (= (:name c-shape3) "Rect-1"))
|
||||
(t/is (= (:name c-shape4) "Rect-1")))))]
|
||||
(t/is (= (:name instance3) "Rect 1"))
|
||||
(t/is (= (:name shape3) "Rect 1"))
|
||||
(t/is (= (:name shape4) "Rect 1"))
|
||||
(t/is (= (:name c-instance3) "Rect 1"))
|
||||
(t/is (= (:name c-shape3) "Rect 1"))
|
||||
(t/is (= (:name c-shape4) "Rect 1")))))]
|
||||
|
||||
(ptk/emit!
|
||||
store
|
||||
|
@ -692,7 +692,7 @@
|
|||
(let [state (-> thp/initial-state
|
||||
(thp/sample-page)
|
||||
(thp/sample-shape :shape1 :rect
|
||||
{:name "Rect-1"})
|
||||
{:name "Rect 1"})
|
||||
(thp/make-component :instance1 :component-1
|
||||
[(thp/id :shape1)])
|
||||
(thp/move-to-library :lib1 "Library 1")
|
||||
|
@ -711,13 +711,13 @@
|
|||
; [Page]
|
||||
; Root Frame
|
||||
; Group #--> Group
|
||||
; Rect-1 @--> <Library 1> Rect-1
|
||||
; Rect-1 ---> <Library 1> Rect-1
|
||||
; Rect 1 @--> <Library 1> Rect 1
|
||||
; Rect 1 ---> <Library 1> Rect 1
|
||||
;
|
||||
; [Group]
|
||||
; Group
|
||||
; Rect-1 @--> <Library 1> Rect-1
|
||||
; Rect-1 ---> <Library 1> Rect-1
|
||||
; Rect 1 @--> <Library 1> Rect 1
|
||||
; Rect 1 ---> <Library 1> Rect 1
|
||||
;
|
||||
(let [instance2 (thp/get-shape new-state :instance2)
|
||||
|
||||
|
@ -727,11 +727,11 @@
|
|||
(:parent-id instance2))]
|
||||
|
||||
(t/is (= (:name group1) "Group"))
|
||||
(t/is (= (:name shape1) "Rect-1"))
|
||||
(t/is (= (:name shape2) "Rect-1"))
|
||||
(t/is (= (:name shape1) "Rect 1"))
|
||||
(t/is (= (:name shape2) "Rect 1"))
|
||||
(t/is (= (:name c-group1) "Group"))
|
||||
(t/is (= (:name c-shape1) "Rect-1"))
|
||||
(t/is (= (:name c-shape2) "Rect-1"))
|
||||
(t/is (= (:name c-shape1) "Rect 1"))
|
||||
(t/is (= (:name c-shape2) "Rect 1"))
|
||||
(t/is (= (:component-file group1) thp/current-file-id))
|
||||
(t/is (= (:component-file shape1) library-id))
|
||||
(t/is (= (:component-file shape2) nil))
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
(t/testing "Add empty page (only root-frame)"
|
||||
(let [page (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/get-current-page))
|
||||
|
||||
data (-> (sd/make-snap-data)
|
||||
|
@ -28,7 +28,7 @@
|
|||
|
||||
(t/testing "Create simple shape on root"
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/create-rect
|
||||
{:x 0
|
||||
:y 0
|
||||
|
@ -57,7 +57,7 @@
|
|||
|
||||
(t/testing "Add page with single empty frame"
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/add-artboard
|
||||
{:x 0
|
||||
:y 0
|
||||
|
@ -81,7 +81,7 @@
|
|||
|
||||
(t/testing "Add page with some shapes inside frames"
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/add-artboard
|
||||
{:x 0
|
||||
:y 0
|
||||
|
@ -112,7 +112,7 @@
|
|||
|
||||
(t/testing "Add a global guide"
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/add-guide {:position 50 :axis :x})
|
||||
(fb/add-artboard {:x 200 :y 200 :width 100 :height 100})
|
||||
(fb/close-artboard))
|
||||
|
@ -140,7 +140,7 @@
|
|||
|
||||
(t/testing "Add a frame guide"
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/add-artboard {:x 200 :y 200 :width 100 :height 100})
|
||||
(fb/close-artboard))
|
||||
|
||||
|
@ -171,7 +171,7 @@
|
|||
(t/deftest test-update-index
|
||||
(t/testing "Create frame on root and then remove it."
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/add-artboard
|
||||
{:x 0
|
||||
:y 0
|
||||
|
@ -201,7 +201,7 @@
|
|||
|
||||
(t/testing "Create simple shape on root. Then remove it"
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/create-rect
|
||||
{:x 0
|
||||
:y 0
|
||||
|
@ -229,7 +229,7 @@
|
|||
|
||||
(t/testing "Create shape inside frame, then remove it"
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/add-artboard
|
||||
{:x 0
|
||||
:y 0
|
||||
|
@ -260,7 +260,7 @@
|
|||
|
||||
(t/testing "Create global guide then remove it"
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/add-guide {:position 50 :axis :x}))
|
||||
|
||||
guide-id (:last-id file)
|
||||
|
@ -293,7 +293,7 @@
|
|||
|
||||
(t/testing "Create frame guide then remove it"
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/add-artboard {:x 200 :y 200 :width 100 :height 100})
|
||||
(fb/close-artboard))
|
||||
|
||||
|
@ -324,7 +324,7 @@
|
|||
|
||||
(t/testing "Update frame coordinates"
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/add-artboard
|
||||
{:x 0
|
||||
:y 0
|
||||
|
@ -358,7 +358,7 @@
|
|||
|
||||
(t/testing "Update shape coordinates"
|
||||
(let [file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/create-rect
|
||||
{:x 0
|
||||
:y 0
|
||||
|
@ -388,7 +388,7 @@
|
|||
(t/testing "Update global guide"
|
||||
(let [guide {:position 50 :axis :x}
|
||||
file (-> (fb/create-file "Test")
|
||||
(fb/add-page {:name "Page-1"})
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/add-guide guide))
|
||||
|
||||
guide-id (:last-id file)
|
||||
|
|
Loading…
Add table
Reference in a new issue