diff --git a/common/src/app/common/types/page.cljc b/common/src/app/common/types/page.cljc index 8c57f33094..cb0d0e9e0b 100644 --- a/common/src/app/common/types/page.cljc +++ b/common/src/app/common/types/page.cljc @@ -5,6 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.common.types.page + (:refer-clojure :exclude [empty?]) (:require [app.common.data :as d] [app.common.geom.point :as-alias gpt] @@ -98,3 +99,8 @@ (defn get-frame-flow [flows frame-id] (d/seek #(= (:starting-frame %) frame-id) (vals flows))) + +(defn is-empty? + "Check if page is empty or contains shapes" + [page] + (= 1 (count (:objects page)))) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 3fd0083e26..b4f02eabf5 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -29,6 +29,7 @@ [app.common.types.components-list :as ctkl] [app.common.types.container :as ctn] [app.common.types.file :as ctf] + [app.common.types.page :as ctp] [app.common.types.shape :as cts] [app.common.types.shape-tree :as ctst] [app.common.types.shape.layout :as ctl] @@ -271,13 +272,12 @@ dwz/zoom-to-selected-shape))))) (defn- select-frame-tool - [page-id file-id] + [file-id page-id] (ptk/reify ::select-frame-tool ptk/WatchEvent (watch [_ state _] - (let [objects (dsh/lookup-page-objects state file-id page-id) - is-page-empty? (= (count objects) 1)] - (when is-page-empty? + (let [page (dsh/lookup-page state file-id page-id)] + (when (ctp/is-empty? page) (rx/of (dwd/select-for-drawing :frame))))))) (defn- fetch-bundle @@ -475,7 +475,7 @@ (dwth/watch-state-changes file-id page-id) (dwl/watch-component-changes) (when (cf/external-feature-flag "boards-02" "test") - (select-frame-tool page-id file-id))) + (select-frame-tool file-id page-id))) (rx/of (dcm/go-to-workspace :file-id file-id ::rt/replace true)))))) (defn finalize-page