Replace enum type with available choices (#10438)

* Add type schema for enum values

* Refactor: closed values instead of enum to limit values

There's no need to add the enum type, we just want to limit the
values.

* feat: :page type supports closed values

* fix: can't set property values for text/number types

* fix: don't trigger on-chosen when unmounting any select component

* fix: can't apply both page classes limitation and closed values

* fix: merge conflicts

* fix: ui not refresh when changing closed value

* fix: can't set icon for closed value
This commit is contained in:
Tienson Qin
2023-11-14 18:48:34 +08:00
committed by GitHub
parent ade1af5874
commit 6a47648c6c
14 changed files with 538 additions and 447 deletions

View File

@@ -87,7 +87,9 @@
[(-> prop-ent
:block/name
keyword)
(if (= :enum (get-in prop-ent [:block/schema :type]))
(:block/content (db/entity [:block/uuid v]))
(if (seq (get-in prop-ent [:block/schema :values])) ; closed values
(when-let [block (db/entity [:block/uuid v])]
(or (:block/original-name block)
(get-in block [:block/schema :value])))
v)])))
(into {})))