Skip to content

Commit 030fbff

Browse files
committed
fix: multiple views created
1 parent a838edd commit 030fbff

File tree

2 files changed

+79
-81
lines changed

2 files changed

+79
-81
lines changed

src/main/frontend/components/objects.cljs

Lines changed: 65 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -79,47 +79,45 @@
7979
(set-loading? false))))
8080
[])
8181

82-
(if loading?
83-
(ui/skeleton)
84-
(views/view {:config config
85-
:data data
86-
:set-data! set-data!
87-
:view-parent class
88-
:view-identity :class-objects
89-
:columns columns
90-
:add-new-object! (fn [{:keys [properties]}]
91-
(if (= :logseq.class/Asset (:db/ident class))
92-
(shui/dialog-open!
93-
(fn []
94-
[:div.flex.flex-col.gap-2
95-
[:div.font-medium "Add assets"]
96-
(filepicker/picker
97-
{:on-change (fn [_e files]
98-
(p/do!
99-
(editor-handler/upload-asset! nil files :markdown editor-handler/*asset-uploading? true)
100-
(set-data! (get-class-objects class))
101-
(shui/dialog-close!)))})]))
102-
(add-new-class-object! class set-data! properties)))
103-
:show-add-property? true
104-
:add-property! (fn []
105-
(state/pub-event! [:editor/new-property {:block class
106-
:class-schema? true}]))
107-
:on-delete-rows (fn [table selected-rows]
82+
(views/view {:config config
83+
:data data
84+
:set-data! set-data!
85+
:view-parent class
86+
:view-identity :class-objects
87+
:columns columns
88+
:add-new-object! (fn [{:keys [properties]}]
89+
(if (= :logseq.class/Asset (:db/ident class))
90+
(shui/dialog-open!
91+
(fn []
92+
[:div.flex.flex-col.gap-2
93+
[:div.font-medium "Add assets"]
94+
(filepicker/picker
95+
{:on-change (fn [_e files]
96+
(p/do!
97+
(editor-handler/upload-asset! nil files :markdown editor-handler/*asset-uploading? true)
98+
(set-data! (get-class-objects class))
99+
(shui/dialog-close!)))})]))
100+
(add-new-class-object! class set-data! properties)))
101+
:show-add-property? true
102+
:add-property! (fn []
103+
(state/pub-event! [:editor/new-property {:block class
104+
:class-schema? true}]))
105+
:on-delete-rows (fn [table selected-rows]
108106
;; Built-in objects must not be deleted e.g. Tag, Property and Root
109-
(let [pages (->> selected-rows (filter ldb/page?) (remove :logseq.property/built-in?))
110-
blocks (->> selected-rows (remove ldb/page?) (remove :logseq.property/built-in?))]
111-
(p/do!
112-
(when-let [f (get-in table [:data-fns :set-row-selection!])]
113-
(f {}))
114-
(ui-outliner-tx/transact!
115-
{:outliner-op :delete-blocks}
116-
(when (seq blocks)
117-
(outliner-op/delete-blocks! blocks nil))
118-
(let [page-ids (map :db/id pages)
119-
tx-data (map (fn [pid] [:db/retract pid :block/tags (:db/id class)]) page-ids)]
120-
(when (seq tx-data)
121-
(outliner-op/transact! tx-data {:outliner-op :save-block}))))
122-
(set-data! (get-class-objects class)))))}))))
107+
(let [pages (->> selected-rows (filter ldb/page?) (remove :logseq.property/built-in?))
108+
blocks (->> selected-rows (remove ldb/page?) (remove :logseq.property/built-in?))]
109+
(p/do!
110+
(when-let [f (get-in table [:data-fns :set-row-selection!])]
111+
(f {}))
112+
(ui-outliner-tx/transact!
113+
{:outliner-op :delete-blocks}
114+
(when (seq blocks)
115+
(outliner-op/delete-blocks! blocks nil))
116+
(let [page-ids (map :db/id pages)
117+
tx-data (map (fn [pid] [:db/retract pid :block/tags (:db/id class)]) page-ids)]
118+
(when (seq tx-data)
119+
(outliner-op/transact! tx-data {:outliner-op :save-block}))))
120+
(set-data! (get-class-objects class)))))})))
123121

124122
(rum/defcs class-objects < rum/reactive db-mixins/query mixins/container-id
125123
[state class {:keys [current-page? sidebar?]}]
@@ -167,34 +165,33 @@
167165
(set-loading? false)))
168166
[])
169167

170-
(when (false? loading?)
171-
(views/view {:config config
172-
:data data
173-
:view-parent property
174-
:view-identity :property-objects
175-
:set-data! set-data!
176-
:columns columns
177-
:add-new-object! (fn [{:keys [properties]}]
178-
(add-new-property-object! property set-data! properties))
179-
;; TODO: Add support for adding column
180-
:show-add-property? false
181-
;; Relationships with built-in properties must not be deleted e.g. built-in? or parent
182-
:on-delete-rows (when-not (:logseq.property/built-in? property)
183-
(fn [table selected-rows]
184-
(let [pages (->> selected-rows (filter ldb/page?) (remove :logseq.property/built-in?))
185-
blocks (->> selected-rows (remove ldb/page?) (remove :logseq.property/built-in?))]
186-
(p/do!
187-
(set-data! (get-property-related-objects (state/get-current-repo) property))
188-
(when-let [f (get-in table [:data-fns :set-row-selection!])]
189-
(f {}))
190-
(ui-outliner-tx/transact!
191-
{:outliner-op :delete-blocks}
192-
(when (seq blocks)
193-
(outliner-op/delete-blocks! blocks nil))
194-
(let [page-ids (map :db/id pages)
195-
tx-data (map (fn [pid] [:db/retract pid (:db/ident property)]) page-ids)]
196-
(when (seq tx-data)
197-
(outliner-op/transact! tx-data {:outliner-op :save-block}))))))))}))))
168+
(views/view {:config config
169+
:data data
170+
:view-parent property
171+
:view-identity :property-objects
172+
:set-data! set-data!
173+
:columns columns
174+
:add-new-object! (fn [{:keys [properties]}]
175+
(add-new-property-object! property set-data! properties))
176+
;; TODO: Add support for adding column
177+
:show-add-property? false
178+
;; Relationships with built-in properties must not be deleted e.g. built-in? or parent
179+
:on-delete-rows (when-not (:logseq.property/built-in? property)
180+
(fn [table selected-rows]
181+
(let [pages (->> selected-rows (filter ldb/page?) (remove :logseq.property/built-in?))
182+
blocks (->> selected-rows (remove ldb/page?) (remove :logseq.property/built-in?))]
183+
(p/do!
184+
(set-data! (get-property-related-objects (state/get-current-repo) property))
185+
(when-let [f (get-in table [:data-fns :set-row-selection!])]
186+
(f {}))
187+
(ui-outliner-tx/transact!
188+
{:outliner-op :delete-blocks}
189+
(when (seq blocks)
190+
(outliner-op/delete-blocks! blocks nil))
191+
(let [page-ids (map :db/id pages)
192+
tx-data (map (fn [pid] [:db/retract pid (:db/ident property)]) page-ids)]
193+
(when (seq tx-data)
194+
(outliner-op/transact! tx-data {:outliner-op :save-block}))))))))})))
198195

199196
;; Show all nodes containing the given property
200197
(rum/defcs property-related-objects < rum/reactive db-mixins/query mixins/container-id

src/main/frontend/components/views.cljs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1686,21 +1686,22 @@
16861686

16871687
(rum/defc view < rum/static
16881688
[{:keys [view-parent view-identity view-entity] :as option}]
1689-
(let [[view-entity set-view-entity!] (rum/use-state view-entity)
1690-
[views set-views!] (rum/use-state nil)]
1689+
(let [[view-entity set-view-entity!] (hooks/use-state view-entity)
1690+
[views set-views!] (hooks/use-state nil)]
16911691
(hooks/use-effect!
16921692
(fn []
1693-
(p/let [_result (db-async/<get-views (state/get-current-repo) (:db/id view-parent) view-identity)
1694-
views (get-views view-parent view-identity)]
1695-
(if-let [v (first views)]
1696-
(do
1697-
(when-not view-entity (set-view-entity! v))
1698-
(set-views! views))
1699-
(when (and view-parent view-identity (not view-entity))
1700-
(p/let [new-view (create-view! view-parent view-identity)]
1701-
(set-view-entity! new-view)
1702-
(set-views! (concat views [new-view])))))))
1703-
[(:db/id view-parent)])
1693+
(let [repo (state/get-current-repo)]
1694+
(p/let [_result (db-async/<get-views repo (:db/id view-parent) view-identity)
1695+
views (get-views view-parent view-identity)]
1696+
(if-let [v (first views)]
1697+
(do
1698+
(when-not view-entity (set-view-entity! v))
1699+
(set-views! views))
1700+
(when (and view-parent view-identity (not view-entity))
1701+
(p/let [new-view (create-view! view-parent view-identity)]
1702+
(set-view-entity! new-view)
1703+
(set-views! (concat views [new-view]))))))))
1704+
[])
17041705
(view-container view-entity (assoc option
17051706
:views views
17061707
:set-views! set-views!

0 commit comments

Comments
 (0)