Conversation
Co-authored-by: ullbergm <273876+ullbergm@users.noreply.github.com>
Contributor
Contributor
- Create useFavorites.js hook for managing favorites with localStorage - Implement favorites storage format with version control - Add cross-tab sync using storage events - Add export/import functionality for favorites - Create comprehensive test suite with 23 passing tests - Use native Preact hooks instead of @rehooks for better control Co-authored-by: ullbergm <273876+ullbergm@users.noreply.github.com>
- Add star icon to Application component (visible only in edit mode) - Add isFavorite and onToggleFavorite props to Application - Update ApplicationGroupList to use useFavorites hook - Separate favorites into a dedicated section at the top (no heading) - Filter favorited apps from regular groups - Pass favorites props through ApplicationGroup to Application - All existing tests pass, frontend builds successfully Co-authored-by: ullbergm <273876+ullbergm@users.noreply.github.com>
- Add tests for star icon visibility in edit mode - Add tests for filled vs outline star states - Add tests for favorite toggle functionality - Add tests for accessibility attributes (aria-label, aria-pressed) - Add tests for event propagation prevention - All 29 Application component tests passing Co-authored-by: ullbergm <273876+ullbergm@users.noreply.github.com>
- Handle null newValue in storage event handler for proper cross-tab sync when favorites are cleared - Extract favorites filtering logic into separate function for better readability and testability - Improve code organization in ApplicationGroupList Co-authored-by: ullbergm <273876+ullbergm@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] feat(ui): Favorites/Pinned Applications
feat(ui): Add favorites/pinned applications with localStorage persistence
Nov 3, 2025
… keyboard support for reordering Signed-off-by: Magnus Ullberg <magnus@ullberg.us>
…48e-8aa7-297c090953f7 Signed-off-by: Magnus Ullberg <magnus@ullberg.us>
Signed-off-by: Magnus Ullberg <magnus@ullberg.us>
Signed-off-by: Magnus Ullberg <magnus@ullberg.us>
Contributor
|
Pull Request closed and locked due to lack of activity. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Users can now mark applications as favorites for quick access. Favorites appear at the top of the applications list and persist across sessions.
Implementation
State Management Hook (
useFavorites.js){ version: 1, favorites: ["namespace/resourceName", ...] }exportFavorites()andimportFavorites(jsonString)UI Integration
Applicationcomponent (edit mode only)aria-pressedstate, descriptivearia-labelfor screen readersApplicationGroupListfilters favorites into top section (no heading)separateFavoritesFromGroups()helper for clean separation logicAccessibility
Testing
useFavoriteshook covering all methods and edge casesOriginal prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.