fix: unexpected up/down navigation behavior after un/indenting in

navigation mode

close #7091
pull/7096/head
Tienson Qin 2022-10-24 12:04:07 +08:00
parent f490c1c18d
commit 8f55c1d3a6
2 changed files with 42 additions and 32 deletions

View File

@ -17,12 +17,13 @@
(defn clear-idb! (defn clear-idb!
[] []
(when @store
(-> (->
(p/let [_ (idb-keyval/clear @store) (p/let [_ (idb-keyval/clear @store)
dbs (js/window.indexedDB.databases)] dbs (js/window.indexedDB.databases)]
(doseq [db dbs] (doseq [db dbs]
(js/window.indexedDB.deleteDatabase (gobj/get db "name")))) (js/window.indexedDB.deleteDatabase (gobj/get db "name"))))
(p/catch (fn [_e])))) (p/catch (fn [_e])))))
(defn clear-local-storage-and-idb! (defn clear-local-storage-and-idb!
[] []
@ -31,27 +32,28 @@
(defn remove-item! (defn remove-item!
[key] [key]
(when key (when (and key @store)
(idb-keyval/del key @store))) (idb-keyval/del key @store)))
(defn set-item! (defn set-item!
[key value] [key value]
(when key (when (and key @store)
(idb-keyval/set key value @store))) (idb-keyval/set key value @store)))
(defn set-batch! (defn set-batch!
[items] [items]
(when (seq items) (when (and (seq items) @store)
(idb-keyval/setBatch (clj->js items) @store))) (idb-keyval/setBatch (clj->js items) @store)))
(defn get-item (defn get-item
[key] [key]
(when key (when (and key @store)
(idb-keyval/get key @store))) (idb-keyval/get key @store)))
(defn get-keys (defn get-keys
[] []
(idb-keyval/keys @store)) (when @store
(idb-keyval/keys @store)))
(defn get-nfs-dbs (defn get-nfs-dbs
[] []

View File

@ -796,35 +796,43 @@
(defn get-prev-block-non-collapsed (defn get-prev-block-non-collapsed
[block] [block]
(when-let [blocks (get-blocks-noncollapse)] (when-let [blocks (get-blocks-noncollapse)]
(when-let [index (.indexOf blocks block)] (let [block-id (.-id block)
block-ids (mapv #(.-id %) blocks)]
(when-let [index (.indexOf block-ids block-id)]
(let [idx (dec index)] (let [idx (dec index)]
(when (>= idx 0) (when (>= idx 0)
(nth-safe blocks idx))))))) (nth-safe blocks idx))))))))
#?(:cljs #?(:cljs
(defn get-prev-block-non-collapsed-non-embed (defn get-prev-block-non-collapsed-non-embed
[block] [block]
(when-let [blocks (->> (get-blocks-noncollapse) (when-let [blocks (->> (get-blocks-noncollapse)
remove-embeded-blocks)] remove-embeded-blocks)]
(when-let [index (.indexOf blocks block)] (let [block-id (.-id block)
block-ids (mapv #(.-id %) blocks)]
(when-let [index (.indexOf block-ids block-id)]
(let [idx (dec index)] (let [idx (dec index)]
(when (>= idx 0) (when (>= idx 0)
(nth-safe blocks idx))))))) (nth-safe blocks idx))))))))
#?(:cljs #?(:cljs
(defn get-next-block-non-collapsed (defn get-next-block-non-collapsed
[block] [block]
(when-let [blocks (get-blocks-noncollapse)] (when-let [blocks (get-blocks-noncollapse)]
(when-let [index (.indexOf blocks block)] (let [block-id (.-id block)
block-ids (mapv #(.-id %) blocks)]
(when-let [index (.indexOf block-ids block-id)]
(let [idx (inc index)] (let [idx (inc index)]
(when (>= (count blocks) idx) (when (>= (count blocks) idx)
(nth-safe blocks idx))))))) (nth-safe blocks idx))))))))
#?(:cljs #?(:cljs
(defn get-next-block-non-collapsed-skip (defn get-next-block-non-collapsed-skip
[block] [block]
(when-let [blocks (get-blocks-noncollapse)] (when-let [blocks (get-blocks-noncollapse)]
(when-let [index (.indexOf blocks block)] (let [block-id (.-id block)
block-ids (mapv #(.-id %) blocks)]
(when-let [index (.indexOf block-ids block-id)]
(loop [idx (inc index)] (loop [idx (inc index)]
(when (>= (count blocks) idx) (when (>= (count blocks) idx)
(let [block (nth-safe blocks idx) (let [block (nth-safe blocks idx)
@ -832,7 +840,7 @@
(some (fn [dom] (.contains dom block))))] (some (fn [dom] (.contains dom block))))]
(if nested? (if nested?
(recur (inc idx)) (recur (inc idx))
block)))))))) block)))))))))
(defn rand-str (defn rand-str
[n] [n]