feat: project groups (collapsible folders in the sidebar project list)#84
Open
MHohlios wants to merge 1 commit into
Open
feat: project groups (collapsible folders in the sidebar project list)#84MHohlios wants to merge 1 commit into
MHohlios wants to merge 1 commit into
Conversation
Contributor
Author
|
Made some UX assumptions here so feel free to push back. |
bba1eab to
0f18250
Compare
Contributor
Owner
|
Looks slick and clean! Congrats. Will test, review and merge tonight. |
Projects can carry an optional UI-only group label. Grouped projects render under collapsible folder headers in the sidebar with drag and drop (into/out of/within folders, header drag to reorder groups), context-menu management, aggregated attention/done dots on collapsed folders, and localStorage-persisted collapse state. No filesystem effect; existing projects.json files load unchanged.
0f18250 to
9b9e8c8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Closes #76.
What
Projects can carry an optional group label. Grouped projects render under collapsible folder headers in the sidebar, so many similarly named repos (app-ios / app-android / service-auth / ...) can be clustered by product or layer while staying visible at a glance. Groups are purely derived: a group exists while at least one project carries its label. No group entity, no filesystem effect, and existing projects.json files load unchanged.
UX
Implementation
groupfield on Project (serde default + skip-if-none) and one atomicproject_set_group(ids, group)command so rename/dissolve is a single projects.json writegroupOf()is the single normalization point (trim + uppercase); shared section/order helpers keep sidebar rendering and keyboard nav on one definition of visual order--color-palette-*tokens in @theme (light theme re-tunes the shades for contrast); everything else the feature paints uses existing theme tokens (fg-faint for default folders, warn/info for the roll-up dot, accent for drag highlights)Testing
Deliberately out of scope (follow-ups)