Skip to content

Conversation

@joseook
Copy link

@joseook joseook commented Sep 27, 2025

  • Add collection creation, editing, and deletion functionality
  • Implement drag-and-drop and context menu for adding/removing games
  • Create dedicated collections page with filtering and sorting
  • Add navigation between specific collection views
  • Implement duplicate name validation
  • Modernize UI with design system alignment
  • Add Redux slice for state management
  • Implement LevelDB persistence layer
  • Create IPC handlers for main/renderer communication
  • Add modular and reusable components

When submitting this pull request, I confirm the following (please check the boxes):

  • I have read and understood the Contributor Guidelines.
  • I have checked that there are no duplicate pull requests related to this request.
  • I have considered, and confirm that this submission is valuable to others.
  • I accept that this submission may not be used and the pull request may be closed at the discretion of the maintainers.

Fill in the PR content:

joseook and others added 8 commits September 27, 2025 12:50
- Add collection creation, editing, and deletion functionality
- Implement drag-and-drop and context menu for adding/removing games
- Create dedicated collections page with filtering and sorting
- Add navigation between specific collection views
- Implement duplicate name validation
- Modernize UI with design system alignment
- Add Redux slice for state management
- Implement LevelDB persistence layer
- Create IPC handlers for main/renderer communication
- Add modular and reusable components
- Add proper ARIA roles and keyboard navigation support
- Remove autoFocus attributes for better accessibility
- Add proper label associations for form inputs
- Fix React hooks dependencies with useCallback
- Ensure all interactive elements have keyboard event handlers
- Resolve jsx-a11y linting errors for better compliance
- Fix modal closing prematurely when selecting games in add games modal
- Add proper event propagation handling to prevent overlay clicks from closing modal
- Improve state management for selected games in collection creation flow
- Add success callback to differentiate between cancel and successful game addition
- Increase spacing between collection title and filters section on collection detail page
- Increase collection card height from 180px to 220px to prevent game preview image cropping
- Enlarge game preview images from 28x28px to 32x32px for better visibility
- Adjust preview indicator styling to match new image dimensions
- Remove translateY transform that was pushing content outside card boundaries
- Use margin-top: auto for proper content positioning
- Adjust bottom padding to provide adequate space for preview images
- Ensure all game preview images are fully visible within card limits
- Remove unnecessary event handlers from non-interactive div element
- Ensure compliance with jsx-a11y accessibility rules
- Fix pre-push hook validation issues
… modal

- Add stopPropagation to game item click and keydown events
- Prevent event bubbling to overlay that was causing modal to close
- Maintain proper game selection functionality without modal interference
- Ensure accessibility compliance with proper event handling
@thegrannychaseroperation
Copy link
Contributor

@joseook could you please attach some screenshots? Thank you for your work.

@joseook
Copy link
Author

joseook commented Sep 27, 2025

📸 Screenshots & Analysis

1. Collections Page — Empty State

Captura de tela 2025-09-27 225037

This is the initial view when the user has no collections. It provides a clear call-to-action to create their first one, guiding the user on how to start organizing their games.

2. Creating a New Collection

Captura de tela 2025-09-27 225135 Captura de tela 2025-09-27 225120 Captura de tela 2025-09-27 225109

The user can easily start creating a collection by typing a name and clicking the "Create Collection" button. The UI is clean and straightforward.

3. Add Games to Collection Modal

Captura de tela 2025-09-27 225247

After naming a collection, this modal appears, allowing the user to select games from their library. It includes a search bar to quickly filter through a large number of games.

4. Main Collections View

Captura de tela 2025-09-27 225421

Once collections are created, they are displayed as cards on the main collections page. Each card shows the collection's name and previews of the games inside.

5. Quick Access via Sidebar

Captura de tela 2025-09-27 225457

A new "Collections" tab is added to the sidebar. Once created, each collection is listed here for instant navigation, enhancing usability and making the feature a core part of the user experience.

6. Collection Detail Page

Captura de tela 2025-09-27 225600

Clicking on a collection opens its detail page, which displays all the games contained within it. From here, users can launch games or manage the collection further.

7. Editing Collection Details

Captura de tela 2025-09-27 225525

Users can edit the name, description, and the list of games in a collection through a simple and clear modal, which is accessible from the collection's detail page.

✅ Implemented

  • Full CRUD functionality for game collections.
  • Dedicated "Collections" page with search and sorting capabilities.
  • Intuitive modal for adding/removing games from a collection.
  • Integration with the sidebar for quick access.
  • Data persistence using LevelDB.
  • State management with a new Redux slice.
  • Full translation support for all interface elements.

Developer Notes

This feature was built to be scalable and robust. The use of LevelDB ensures that user data is stored efficiently on the client side, and the Redux slice for state management guarantees that the UI remains consistent and responsive across all components.

A significant amount of effort was put into fixing UI bugs and improving accessibility to ensure the feature is polished and usable for everyone. The implementation aims to provide a user experience that feels native to the launcher while adding significant organizational value. I'm confident users will find this feature extremely use@ ful for managing their game libraries. 🚀

@thegrannychaseroperation

@joseook
Copy link
Author

joseook commented Sep 27, 2025

@thegrannychaseroperation I initially implemented the collections feature with translations only for Portuguese (Brazil) and English, but forgot to add proper translations for the other 28 supported languages. This commit 527c7e4 fixes the translation system and ensures the collections pages, modals, and all related UI elements are properly localized in all supported languages.

The collections feature now works seamlessly when users switch between different languages in the settings.

@sonarqubecloud
Copy link

@caduHD4
Copy link
Contributor

caduHD4 commented Oct 2, 2025

@joseook This was magnificent, really very good, it would be cool if it also had an integration with the same game genre filter and markers as on the catalog page, for a quick search to add games through "My Collections"

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.

3 participants