Skip to content

Add :group-collapsed? parameter for grouped query results#12216

Open
jannek wants to merge 2 commits intologseq:masterfrom
jannek:add-group-collapse
Open

Add :group-collapsed? parameter for grouped query results#12216
jannek wants to merge 2 commits intologseq:masterfrom
jannek:add-group-collapse

Conversation

@jannek
Copy link

@jannek jannek commented Nov 16, 2025

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

- Add :group-collapsed? query parameter to control initial collapse state
- Apply to page groups when :group-by-page? is true
- Update custom query, ref block, and general group rendering paths
- Add exporter support to strip parameter during export
- Add tests to verify parameter doesn't affect result transformation
Reduce left padding in custom-query-page-result containers to better
align foldable arrows with content
@CLAassistant
Copy link

CLAassistant commented Nov 16, 2025

CLA assistant check
All committers have signed the CLA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Default Collapsed State for Grouped Query Results

2 participants