fix set-priority on # heading

This commit is contained in:
rcmerci
2021-05-08 20:32:26 +08:00
parent 7a78e805fd
commit 2b8679ab14
2 changed files with 29 additions and 17 deletions

View File

@@ -4,6 +4,7 @@
[frontend.state :as state]
[frontend.search :as search]
[frontend.config :as config]
[frontend.db :as db]
[clojure.string :as string]
[goog.dom :as gdom]
[goog.object :as gobj]
@@ -455,24 +456,10 @@
(defmethod handle-step :editor/set-priority [[_ priority] format]
(when-let [input-id (state/get-edit-input-id)]
(when-let [current-input (gdom/getElement input-id)]
(let [edit-content (gobj/get current-input "value")
slash-pos (:pos @*slash-caret-pos)
priority-pattern #"\[#[A|B|C]{1}\]"
prefix (subs edit-content 0 (dec slash-pos))
pos (count (re-find priority-pattern prefix))
(let [format (or (db/get-page-format (state/get-current-page)) (state/get-preferred-format))
edit-content (gobj/get current-input "value")
new-priority (util/format "[#%s]" priority)
new-value (cond
(re-find priority-pattern prefix)
(str (subs edit-content 0 pos)
(string/replace-first (subs edit-content pos)
priority-pattern
new-priority))
(re-find util/marker-pattern edit-content)
(string/replace-first edit-content util/marker-pattern
(fn [marker] (str marker new-priority " ")))
:else
(str new-priority " " (string/triml edit-content)))]
new-value (string/trim (util/add-or-update-priority edit-content format new-priority))]
(state/set-edit-content! input-id new-value)))))
(defmethod handle-step :editor/set-heading [[_ heading]]