feat(ui): WIP number list block (own-property)

pull/9141/head
charlie 2023-04-17 13:51:35 +08:00
parent cc58ea4888
commit ba42b12b09
4 changed files with 30 additions and 8 deletions

View File

@ -252,6 +252,12 @@
["Toggle Number list" [[:editor/clear-current-slash] ["Toggle Number list" [[:editor/clear-current-slash]
[:editor/toggle-children-number-list]] "Make children as number list"]] [:editor/toggle-children-number-list]] "Make children as number list"]]
;; order list
[["Number list" [[:editor/clear-current-slash]
[:editor/toggle-own-number-list]] "Number list"]
["Bullet list" [[:editor/clear-current-slash]
[:editor/remove-own-number-list]] "Bullet list"]]
;; task management ;; task management
(get-preferred-workflow) (get-preferred-workflow)
@ -660,6 +666,10 @@
(when-let [block (state/get-edit-block)] (when-let [block (state/get-edit-block)]
(state/pub-event! [:editor/toggle-children-number-list block]))) (state/pub-event! [:editor/toggle-children-number-list block])))
(defmethod handle-step :editor/toggle-own-number-list [[_]]
(when-let [block (state/get-edit-block)]
(state/pub-event! [:editor/toggle-own-number-list block])))
(defmethod handle-step :editor/show-date-picker [[_ type]] (defmethod handle-step :editor/show-date-picker [[_ type]]
(if (and (if (and
(contains? #{:scheduled :deadline} type) (contains? #{:scheduled :deadline} type)

View File

@ -297,10 +297,10 @@
(let [order-block-fn? #(some-> % :block/properties :logseq.order-list-type (= order-list-type)) (let [order-block-fn? #(some-> % :block/properties :logseq.order-list-type (= order-list-type))
prev-block-fn #(some->> (:db/id %) (db-model/get-prev-sibling (state/get-current-repo))) prev-block-fn #(some->> (:db/id %) (db-model/get-prev-sibling (state/get-current-repo)))
prev-block (prev-block-fn block)] prev-block (prev-block-fn block)]
(if prev-block (letfn [(order-sibling-list [b]
(letfn [(sibling-list [b] (lazy-seq
(lazy-seq (when (order-block-fn? b)
(when (order-block-fn? b) (cons b (order-sibling-list (prev-block-fn b))))))
(cons b (sibling-list (prev-block-fn b))))))] (order-parent-list [b])]
(count (sibling-list block))) (if prev-block
1))) (count (order-sibling-list block)) 1))))

View File

@ -87,6 +87,10 @@
[block] [block]
(= (get-block-own-order-list-type block) "number")) (= (get-block-own-order-list-type block) "number"))
(defn make-block-as-own-order-list!
[block]
(some-> block (set-block-own-order-list-type! "number")))
(defn get-selection-and-format (defn get-selection-and-format
[] []
(when-let [block (state/get-edit-block)] (when-let [block (state/get-edit-block)]
@ -2537,7 +2541,9 @@
"properties-drawer" (dwim-in-properties state)) "properties-drawer" (dwim-in-properties state))
(and (string/blank? content) (and (string/blank? content)
(own-order-number-list? block)) (own-order-number-list? block)
(not (some-> (db-model/get-block-parent (:block/uuid block))
(own-order-number-list?))))
(remove-block-own-order-list-type! block) (remove-block-own-order-list-type! block)
(and (and

View File

@ -959,6 +959,12 @@
(editor-handler/remove-block-property! uuid :logseq.children-as) (editor-handler/remove-block-property! uuid :logseq.children-as)
(editor-handler/set-block-property! uuid :logseq.children-as "number-list")))) (editor-handler/set-block-property! uuid :logseq.children-as "number-list"))))
(defmethod handle :editor/toggle-own-number-list [[_ block]]
(when block
(if (editor-handler/own-order-number-list? block)
(editor-handler/remove-block-own-order-list-type! block)
(editor-handler/make-block-as-own-order-list! block))))
(defn run! (defn run!
[] []
(let [chan (state/get-events-chan)] (let [chan (state/get-events-chan)]