From 1043eff9cd0a5019760945f9147237b9cdf71330 Mon Sep 17 00:00:00 2001 From: charlie Date: Fri, 14 Apr 2023 18:37:31 +0800 Subject: [PATCH] feat(ui): WIP number list block (own-property) --- .../src/logseq/graph_parser/property.cljs | 2 +- src/main/frontend/handler/editor.cljs | 34 ++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/deps/graph-parser/src/logseq/graph_parser/property.cljs b/deps/graph-parser/src/logseq/graph_parser/property.cljs index 919d937f95..c750588022 100644 --- a/deps/graph-parser/src/logseq/graph_parser/property.cljs +++ b/deps/graph-parser/src/logseq/graph_parser/property.cljs @@ -64,7 +64,7 @@ :created-at :updated-at :last-modified-at :created_at :last_modified_at :query-table :query-properties :query-sort-by :query-sort-desc :ls-type :hl-type :hl-page :hl-stamp :hl-color :logseq.macro-name :logseq.macro-arguments - :logseq.children-as :logseq.tldraw.page :logseq.tldraw.shape + :logseq.order-list-type :logseq.children-as :logseq.tldraw.page :logseq.tldraw.shape ; task markers :todo :doing :now :later :done} @built-in-extended-properties)) diff --git a/src/main/frontend/handler/editor.cljs b/src/main/frontend/handler/editor.cljs index 6226867d02..732207248f 100644 --- a/src/main/frontend/handler/editor.cljs +++ b/src/main/frontend/handler/editor.cljs @@ -62,6 +62,31 @@ (defonce *asset-uploading? (atom false)) (defonce *asset-uploading-process (atom 0)) +(declare set-block-property!) +(declare remove-block-property!) + +(defn get-block-own-order-list-type + [block] + (some-> block :block/properties :logseq.order-list-type)) + +(defn set-block-own-order-list-type! + [block type] + (when-let [uuid (:block/uuid block)] + (set-block-property! uuid :logseq.order-list-type (name type)))) + +(defn remove-block-own-order-list-type! + [block] + (when-let [uuid (:block/uuid block)] + (remove-block-property! uuid :logseq.order-list-type))) + +(defn own-order-list? + [block] + (not (string/blank? (get-block-own-order-list-type block)))) + +(defn own-order-number-list? + [block] + (= (get-block-own-order-list-type block) "number")) + (defn get-selection-and-format [] (when-let [block (state/get-edit-block)] @@ -558,7 +583,9 @@ {:ok-handler (fn [last-block] (clear-when-saved!) - (edit-block! last-block 0 id))})))) + (edit-block! last-block 0 id) + (when-let [order-list-type (and (own-order-list? block) (get-block-own-order-list-type block))] + (set-block-own-order-list-type! last-block order-list-type)))})))) (state/set-editor-op! nil))) (defn api-insert-new-block! @@ -2466,6 +2493,7 @@ (let [{:keys [block config]} (get-state)] (when block (let [input (state/get-input) + config (assoc config :keydown-new-block true) content (gobj/get input "value") pos (cursor/pos input) current-node (outliner-core/block block) @@ -2508,6 +2536,10 @@ "list-item" (dwim-in-list) "properties-drawer" (dwim-in-properties state)) + (and (string/blank? content) + (own-order-number-list? block)) + (remove-block-own-order-list-type! block) + (and (string/blank? content) (not has-right?)