fix: can't remove Many values

This commit is contained in:
Tienson Qin
2024-05-02 18:03:17 +08:00
parent 742ac92561
commit 89edb3af9a
11 changed files with 33 additions and 14 deletions

2
bb.edn
View File

@@ -1,7 +1,7 @@
{:paths ["scripts/src" "src/main" "src/resources"]
:deps
{metosin/malli
{:mvn/version "0.10.0"}
{:mvn/version "0.16.1"}
logseq/bb-tasks
#_{:local/root "../bb-tasks"}
{:git/url "https://github.com/logseq/bb-tasks"

View File

@@ -37,12 +37,12 @@
logseq/outliner {:local/root "deps/outliner"}
logseq/publishing {:local/root "deps/publishing"}
logseq/shui {:local/root "deps/shui"}
metosin/malli {:mvn/version "0.10.0"}
metosin/malli {:mvn/version "0.16.1"}
com.cognitect/transit-cljs {:mvn/version "0.8.280"}
missionary/missionary {:mvn/version "b.39"}}
:aliases {:cljs {:extra-paths ["src/dev-cljs/" "src/test/" "src/electron/"]
:extra-deps {org.clojure/clojurescript {:mvn/version "1.11.54"}
:extra-deps {org.clojure/clojurescript {:mvn/version "1.11.132"}
org.clojure/tools.namespace {:mvn/version "0.2.11"}
cider/cider-nrepl {:mvn/version "0.47.0"}
org.clojars.knubie/cljs-run-test {:mvn/version "1.0.1"}
@@ -50,7 +50,7 @@
:main-opts ["-m" "shadow.cljs.devtools.cli"]}
:test {:extra-paths ["src/test/"]
:extra-deps {org.clojure/clojurescript {:mvn/version "1.11.54"}
:extra-deps {org.clojure/clojurescript {:mvn/version "1.11.132"}
org.clojure/test.check {:mvn/version "1.1.1"}
pjstadig/humane-test-output {:mvn/version "0.11.0"}
org.clojars.knubie/cljs-run-test {:mvn/version "1.0.1"}

View File

@@ -5,7 +5,7 @@
:aliases
{:test {:extra-paths ["test"]
:extra-deps {olical/cljs-test-runner {:mvn/version "3.8.0"}
org.clojure/clojurescript {:mvn/version "1.11.54"}}
org.clojure/clojurescript {:mvn/version "1.11.132"}}
:main-opts ["-m" "cljs-test-runner.main"]}
:clj-kondo
{:replace-deps {clj-kondo/clj-kondo {:mvn/version "2023.05.26"}}

2
deps/db/nbb.edn vendored
View File

@@ -3,6 +3,6 @@
{logseq/common
{:local/root "../common"}
metosin/malli
{:mvn/version "0.10.0"}
{:mvn/version "0.16.1"}
io.github.nextjournal/nbb-test-runner
{:git/sha "60ed57aa04bca8d604f5ba6b28848bd887109347"}}}

View File

@@ -17,7 +17,7 @@
;; with karma, shadow-cljs.edn and headless mode on CI
{:test {:extra-paths ["test"]
:extra-deps {olical/cljs-test-runner {:mvn/version "3.8.0"}
org.clojure/clojurescript {:mvn/version "1.11.54"}}
org.clojure/clojurescript {:mvn/version "1.11.132"}}
:main-opts ["-m" "cljs-test-runner.main"]}
:clj-kondo {:replace-deps {clj-kondo/clj-kondo {:mvn/version "2023.05.26"}}

View File

@@ -5,7 +5,7 @@
logseq/db {:local/root "../db"}
logseq/graph-parser {:local/root "../db"}
com.cognitect/transit-cljs {:mvn/version "0.8.280"}
metosin/malli {:mvn/version "0.10.0"}}
metosin/malli {:mvn/version "0.16.1"}}
:aliases
{:clj-kondo
{:replace-deps {clj-kondo/clj-kondo {:mvn/version "2023.05.26"}}

View File

@@ -5,6 +5,6 @@
logseq/graph-parser
{:local/root "../graph-parser"}
metosin/malli
{:mvn/version "0.10.0"}
{:mvn/version "0.16.1"}
io.github.nextjournal/nbb-test-runner
{:git/sha "60ed57aa04bca8d604f5ba6b28848bd887109347"}}}

2
deps/shui/deps.edn vendored
View File

@@ -1,7 +1,7 @@
{:paths ["src"]
:deps
{org.clojure/clojure {:mvn/version "1.11.1"}
org.clojure/clojurescript {:mvn/version "1.11.54"}
org.clojure/clojurescript {:mvn/version "1.11.132"}
funcool/promesa {:mvn/version "4.0.2"}
rum/rum {:mvn/version "0.12.9"}
medley/medley {:mvn/version "1.4.0"}

View File

@@ -251,6 +251,20 @@
:vector "[]"
nil))
;; TODO: mu/to-map-syntax has been deprecated, consider removing usage
(defn -map-syntax-walker [schema _ children _]
(let [properties (m/properties schema)
options (m/options schema)
r (when properties (properties :registry))
properties (if r (assoc properties :registry (m/-property-registry r options m/-form)) properties)]
(cond-> {:type (m/type schema)}
(seq properties) (assoc :properties properties)
(seq children) (assoc :children children))))
(defn- malli-to-map-syntax
([?schema] (malli-to-map-syntax ?schema nil))
([?schema options] (m/walk ?schema -map-syntax-walker options)))
(.registerHelper CodeMirror "hint" "clojure"
(fn [cm _options]
(let [cur (.getCursor cm)
@@ -324,7 +338,7 @@
"false" nil)
:enum
(let [{:keys [children]} (mu/to-map-syntax schema)]
(let [{:keys [children]} (malli-to-map-syntax schema)]
(doseq [child children]
(swap! result assoc (str child) nil)))

View File

@@ -197,14 +197,19 @@
(catch :default e
(notification/show! (str e) :error false)
nil))
old-values (get block (:db/ident property))]
old-values (get block (:db/ident property))
deleted-values (remove values' old-values)]
(when (not= old-values values')
(if-let [msg (validate-property-value schema values')]
(let [msg' (str "\"" (:block/original-name property) "\"" " " (if (coll? msg) (first msg) msg))]
(notification/show! msg' :warning))
(do
(upsert-property! repo property-id (assoc property-schema :type property-type) {})
(let [tx-data (build-property-value-tx-data block property-id values' false)]
(let [tx-data (concat
(map (fn [v]
(let [v' (if (map? v) (:db/id v) v)]
[:db/retract (:db/id block) property-id v'])) deleted-values)
(build-property-value-tx-data block property-id values' false))]
(db/transact! repo tx-data {:outliner-op :save-block})))))))))
(defn- resolve-tag

View File

@@ -40,7 +40,7 @@
#?(:cljs
(extend-protocol IPrintWithWriter
js/Symbol
symbol
(-pr-writer [sym writer _]
(-write writer (str "\"" (.toString sym) "\"")))))
#?(:cljs