diff --git a/src/main/frontend/handler/common/page.cljs b/src/main/frontend/handler/common/page.cljs index dfd7b9c242..b44e5b41a1 100644 --- a/src/main/frontend/handler/common/page.cljs +++ b/src/main/frontend/handler/common/page.cljs @@ -61,10 +61,18 @@ _result p] (when redirect? (route-handler/redirect-to-page! page-uuid)) - (let [page (db/get-page page-uuid)] - (when-let [first-block (ldb/get-first-child @conn (:db/id page))] - (block-handler/edit-block! first-block :max {:container-id :unknown-container})) - page)))) + (let [page (db/get-page (or page-uuid title))] + (if-let [first-block (ldb/get-first-child @conn (:db/id page))] + (do + (block-handler/edit-block! first-block :max {:container-id :unknown-container}) + page) + ;; create first block and then focus it + (p/let [blocks-tx (worker-page/build-first-block-tx (:block/uuid page) + (or (:format options) (common-config/get-preferred-format config))) + _ (ldb/transact! conn blocks-tx {:outliner-op :insert-blocks}) + first-block (ldb/get-first-child @conn (:db/id page))] + (block-handler/edit-block! first-block :max {:container-id :unknown-container}) + page)))))) ;; favorite fns ;; ============ diff --git a/src/main/frontend/worker/handler/page.cljs b/src/main/frontend/worker/handler/page.cljs index 7af8c50838..55e621b1b3 100644 --- a/src/main/frontend/worker/handler/page.cljs +++ b/src/main/frontend/worker/handler/page.cljs @@ -75,7 +75,7 @@ page-name (common-util/page-name-sanity-lc title)] [title page-name])) -(defn- build-first-block-tx +(defn build-first-block-tx [page-uuid format] (let [page-id [:block/uuid page-uuid]] [(sqlite-util/block-with-timestamps