Add :group-collapsed? parameter for grouped query results by jannek · Pull Request #12216 · logseq/logseq

Skip to content

Navigation Menu

Sign in

Appearance settings

Conversation

@jannek

Summary

This PR adds a new :group-collapsed? parameter to Logseq queries that controls whether grouped query results (when using :group-by-page? true) are initially collapsed or expanded.

Fixes #12274.

Changes

Core Feature

  • Added :group-collapsed? query parameter
  • Applied to page groups when :group-by-page? true
  • Updated three rendering paths: custom query, ref block, and general group rendering
  • Added exporter support to strip parameter during export
  • Added tests to verify parameter doesn't affect result transformation

UI Enhancement

  • Improved alignment of foldable arrows in grouped query results by adjusting padding

Usage Example

#+BEGIN_QUERY
{:title "📅 Journal Entries by Date"
 :query [:find (pull ?b [*])
         :where
         [?b :block/page ?p]
         [?p :block/journal? true]]
 :group-by-page? true
 :group-collapsed? true}
#+END_QUERY

Behavior

  • With :group-collapsed? true: Page groups start collapsed (▶ Page Name)
  • With :group-collapsed? false or without the parameter: Page groups start expanded (▼ Page Name with visible blocks)
  • Default value: false (maintains current behavior)
  • Only applies when :group-by-page? is true
  • Works independently of the :collapsed? parameter

Files Changed

  • src/main/frontend/components/query.cljs - Parameter extraction and propagation
  • src/main/frontend/components/block.cljs - Rendering logic updates
  • deps/graph-parser/src/logseq/graph_parser/exporter.cljs - Export handling
  • src/test/frontend/components/query/result_test.cljs - Tests
  • src/main/frontend/components/reference.css - UI alignment improvement

Testing

  • Tested with various query types (journal entries, TODOs, tagged blocks)
  • Verified parameter is ignored when :group-by-page? is false
  • Confirmed backward compatibility (existing queries work unchanged)
  • All tests pass

@CLAassistant

CLA assistant check
All committers have signed the CLA.

2 participants

@jannek @CLAassistant