feat: whiteboard preview

This commit is contained in:
Peng Xiao
2022-07-20 20:12:37 +08:00
parent 51ed250728
commit 4dc96790a4
13 changed files with 57 additions and 36 deletions

View File

@@ -59,11 +59,12 @@
[page-block blocks]))
(defn- whiteboard-clj->tldr [page-block blocks]
(let [shapes (map block->shape blocks)
(let [id (str (:block/uuid page-block))
shapes (map block->shape blocks)
page-properties (:block/properties page-block)]
(clj->js {:currentPageId "page"
(clj->js {:currentPageId id
:pages [(merge page-properties
{:id "page"
{:id id
:name "page"
:shapes shapes})]})))
@@ -71,6 +72,9 @@
(let [[page-block blocks] (get-whiteboard-clj page-name)]
(whiteboard-clj->tldr page-block blocks)))
(defn get-whiteboard-entity [page-name]
(db-utils/entity [:block/name page-name]))
(defn transact-tldr! [page-name tldr]
(let [{:keys [pages]} (js->clj tldr :keywordize-keys true)
tx (tldr-page->blocks-tx page-name (first pages))]
@@ -86,10 +90,11 @@
[{:id (.-id fs)
:logseqLink page-or-block-id}])))))))
(defonce default-tldr
#js {:currentPageId "page1",
(defn get-default-tldr
[page-id]
#js {:currentPageId page-id,
:selectedIds #js [],
:pages #js [#js {:id "page",
:pages #js [#js {:id page-id,
:name "Page",
:shapes #js [],
:bindings #js {},
@@ -98,8 +103,12 @@
(defn create-new-whiteboard-page!
([name]
(transact-tldr! name default-tldr)
(let [uuid (or (parse-uuid name) (d/squuid))
entity (db-utils/entity [:block/name name])]
(outliner-file/sync-to-file entity)
(db-utils/transact! [{:db/id (:db/id entity) :block/uuid uuid}]))))
(let [uuid (or (parse-uuid name) (d/squuid))]
(transact-tldr! name (get-default-tldr (str uuid)))
(let [entity (get-whiteboard-entity name)
tx (assoc (select-keys entity [:db/id])
:block/uuid uuid)]
(db-utils/transact! [tx])
(let [page-entity (get-whiteboard-entity name)]
(when (and page-entity (nil? (:block/file page-entity)))
(outliner-file/sync-to-file page-entity)))))))