diff --git a/src/main/frontend/components/sidebar.cljs b/src/main/frontend/components/sidebar.cljs index a5ee5ae5b2..0f2fad8e2b 100644 --- a/src/main/frontend/components/sidebar.cljs +++ b/src/main/frontend/components/sidebar.cljs @@ -86,7 +86,7 @@ (let [original-name (db-model/get-page-original-name name)] [:a {:on-click (fn [e] (util/stop e) - (let [name (string/lower-case name)] + (let [name (util/safe-lower-case name)] (if (gobj/get e "shiftKey") (when-let [page-entity (db/entity [:block/name name])] (state/sidebar-add-block! @@ -148,7 +148,7 @@ [:ul.favorites (for [name favorites] (when-not (string/blank? name) - (when (db/entity [:block/name (string/lower-case name)]) + (when (db/entity [:block/name (util/safe-lower-case name)]) (favorite-item t name))))])))) (rum/defc recent-pages @@ -167,7 +167,7 @@ (filter string?))] [:ul (for [name pages] - (when (db/entity [:block/name (string/lower-case name)]) + (when (db/entity [:block/name (util/safe-lower-case name)]) [:li {:key name} (page-name name)]))]))) @@ -295,7 +295,7 @@ (let [page (:page default-home) page (when (and (string? page) (not (string/blank? page))) - (db/entity [:block/name (string/lower-case page)]))] + (db/entity [:block/name (util/safe-lower-case page)]))] (if page default-home (dissoc default-home :page))))) @@ -313,7 +313,7 @@ (when-let [pages (->> (seq sidebar) (remove string/blank?))] (doseq [page pages] - (let [page (string/lower-case page) + (let [page (util/safe-lower-case page) [db-id block-type] (if (= page "contents") ["contents" :contents] [page :page])] diff --git a/src/main/frontend/util.cljc b/src/main/frontend/util.cljc index 0f1d8b2cf4..da6a3b4178 100644 --- a/src/main/frontend/util.cljc +++ b/src/main/frontend/util.cljc @@ -548,6 +548,11 @@ (subs s (+ first-index (count pattern)) (count s))] [s ""])) +(defn safe-lower-case + [s] + (if (string? s) + (string/lower-case s) s)) + (defn split-first [pattern s] (when-let [first-index (string/index-of s pattern)] [(subs s 0 first-index)