Commit Graph

5112 Commits

Author SHA1 Message Date
Chubby Granny Chaser 1066673208 feat: implement answer functionality for game reviews with UI components 2026-05-22 09:58:17 +01:00
Chubby Granny Chaser 63a9879ea5 feat: add answer functionality to reviews
- Implemented answer count display and management for reviews across multiple locales.
- Added new translations for answer-related strings in Romanian, Russian, Slovenian, Swedish, Turkish, Ukrainian, Uzbek, and Chinese.
- Enhanced the sidebar with a beta badge for the Big Picture feature.
- Updated the game details page to support scrolling to specific reviews via URL parameters.
- Improved review item styling and added dropdown menu for review actions.
- Introduced ReviewAnswers component to handle displaying and managing answers to reviews.
- Updated notification system to include new answer notifications and upvotes.
- Modified profile review items to display answers and manage their visibility.
- Extended types to include answer-related data structures.
2026-05-22 09:58:06 +01:00
Hachi-R 93e9bb551b Merge branch '3.9.8-hotfix' of https://github.com/hydralauncher/hydra into 3.9.8-hotfix 2026-05-21 22:16:09 -03:00
Hachi-R 1da20e9a6d feat(gamepad): add support for Linux 8BitDo Ultimate Wireless Controller layout
- Introduced a new gamepad layout for the Linux 8BitDo Ultimate Wireless Controller, enhancing compatibility for Linux users.
- Updated the GAMEPAD_LAYOUTS array to include the new controller's name, platform, ID patterns, and mappings.

This addition improves the overall user experience by expanding the range of supported gamepad layouts.
2026-05-21 22:15:27 -03:00
Chubby Granny Chaser c616e9500d Merge branch 'main' into 3.9.8-hotfix 2026-05-22 01:44:01 +01:00
Hachi-R 531b161dea feat(translations): add new strings for download directory replacement feature
- Added new translation keys for the download directory replacement modal in both English and Brazilian Portuguese.
- Updated the modal component to utilize the new translation keys, ensuring user-facing strings are properly localized.

These changes enhance the internationalization of the download directory management feature, improving accessibility for users in different languages.
2026-05-21 21:21:15 -03:00
Hachi-R 1c941fcedb feat(library): add achievements view functionality to library context menu
- Implemented a new context menu option for viewing game achievements in the LibraryPage component.
- Introduced a handler function to navigate to the achievements page when the option is selected, enhancing user interaction and accessibility.

These changes improve the functionality of the library interface by allowing users to easily access game achievements.
2026-05-21 21:21:15 -03:00
dependabot[bot] fa859ca240 chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates (#2247)
Bumps the npm_and_yarn group with 2 updates in the / directory: [ws](https://github.com/websockets/ws) and [@tootallnate/once](https://github.com/TooTallNate/once).


Updates `ws` from 8.18.3 to 8.20.1
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.18.3...8.20.1)

Updates `@tootallnate/once` from 2.0.0 to 2.0.1
- [Release notes](https://github.com/TooTallNate/once/releases)
- [Changelog](https://github.com/TooTallNate/once/blob/v2.0.1/CHANGELOG.md)
- [Commits](https://github.com/TooTallNate/once/compare/2.0.0...v2.0.1)

---
updated-dependencies:
- dependency-name: "@tootallnate/once"
  dependency-version: 2.0.1
  dependency-type: indirect
- dependency-name: ws
  dependency-version: 8.20.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
v3.9.8
2026-05-22 00:40:12 +01:00
Chubby Granny Chaser 5aa77df2e2 style: format user stats box 2026-05-22 00:23:15 +01:00
Chubby Granny Chaser 0b85428b73 chore: prepare 3.9.8 release 2026-05-22 00:22:48 +01:00
Julia 67dc4fb6c5 Translated using Weblate (Polish) (#2217)
Co-authored-by: Chubby Granny Chaser <weak.fern2638@heliokroger.com>
2026-05-21 23:44:45 +01:00
Eight 73918d91be Feature/lbx 708 (#2246)
* feat(big-picture): add GameAchievements page and navigation enhancements

- Introduced GameAchievements component for displaying game achievements.
- Updated routing to include achievements path under game details.
- Enhanced navigation with NavigationHistoryBridge for improved user experience.
- Added new helper function to generate achievements path based on game identity.
- Cleaned up imports and improved code structure for better maintainability.

* style: enhance styles for ChallengeGameCard

- Modified SCSS styles for ChallengeGameCard to align text to the left, improving layout consistency.

* refactor(big-picture): rename useBackTargetTitle to useCurrentPageTitle and update navigation logic

- Renamed the `useBackTargetTitle` hook to `useCurrentPageTitle` for clarity.
- Updated the logic to return the current page title instead of the previous one.
- Adjusted navigation in the Home component to utilize the new achievements path for improved user experience.
- Marked the proto subproject as dirty to indicate local changes.

* feat(big-picture): enhance Tabs component with settings variant and new layout features

- Added "settings" variant to the Tabs component for improved user experience in settings navigation.
- Introduced `beforeTabs` and `afterTabs` props to allow additional UI elements around tab buttons.
- Created `SettingsTabsButton` for handling settings-specific tab interactions and styles.
- Updated SCSS styles to support new layout requirements for the settings variant.
- Implemented a new Settings page structure with tabbed navigation for better organization of settings categories.

This update enhances the overall usability and accessibility of the settings interface.

* refactor(big-picture): improve code formatting in Tabs and Settings components

- Reformatted JSX structure in the Tabs component for better readability.
- Simplified the selectTabByIndex function in the Settings component by consolidating the callback definition into a single line.
- Enhanced overall code clarity and maintainability across both components.

* feat(big-picture): add new settings sections for account privacy, compatibility, content gameplay, downloads, general, integrations, and notifications

- Introduced new components for each settings section, providing placeholders for future content.
- Updated the main Settings component to integrate these new sections into the tabbed navigation structure.
- Enhanced the organization of settings categories for improved user experience.

* refactor(big-picture): streamline Tabs and Settings components for improved layout and functionality

- Simplified the Tabs component by removing unnecessary elements and enhancing the settings variant layout.
- Introduced a new SettingsSection component to encapsulate settings-related content, improving organization and readability.
- Updated SCSS styles for better alignment and responsiveness in the settings interface.
- Enhanced the handling of settings indicators and label references for improved user experience.

* feat(big-picture): implement download directories management in settings

- Introduced a new DownloadDirectoriesSection component for managing download paths and disk usage.
- Enhanced user preferences handling with a new useUserPreferences hook for better state management.
- Updated the general settings page to integrate the new download directories section, improving organization.
- Added styles for the download directories section to ensure responsive design and usability.
- Removed the deprecated general settings styles and component, streamlining the codebase.

* refactor(download-directories): improve code formatting for MAX_OPTIONAL_DOWNLOAD_DIRECTORIES constant

* feat(big-picture): add language selection feature in settings

- Introduced LanguageSection and LanguagePickerModal components for managing language preferences.
- Implemented language options retrieval and selection logic, enhancing user experience.
- Added styles for the new language selection interface to ensure responsiveness and usability.
- Updated the general settings page to integrate the language selection feature, improving organization.
- Included utility functions for language flag handling and resolution.

This update enhances the overall accessibility and customization of the application for users.

* feat(big-picture): add behavior settings section to user preferences

- Introduced BehaviorSection component for managing user preferences related to application behavior.
- Integrated the new section into the GeneralSettingsSection for improved organization.
- Updated navigation to include behavior settings, enhancing user experience.
- Added styles for the behavior section to ensure a cohesive design with existing settings.

This update enhances user customization options and overall application usability.

* refactor(settings): improve code formatting and readability in BehaviorSection and DownloadDirectoriesSection

- Reformatted JSX structure in BehaviorSection for better clarity.
- Enhanced function signatures in DownloadDirectoriesSection for improved readability.
- Streamlined array type annotations to follow TypeScript conventions.

These changes contribute to a cleaner and more maintainable codebase.

* feat(big-picture): add Downloads settings section for managing download behavior and sources

- Introduced DownloadsBehaviorSection and DownloadsSourcesSection components to manage user preferences related to download behavior and sources.
- Integrated the new sections into the DownloadsSettingsSection for improved organization and user experience.
- Updated navigation focus handling to enhance accessibility and usability.
- Added styles for the new sections to ensure a cohesive design with existing settings.

This update enhances user customization options for download management within the application.

* refactor(tabs, settings): improve code formatting and readability

- Reformatted JSX structure in Tabs and DownloadsBehaviorSection for better clarity.
- Streamlined focusId assignment in DownloadsBehaviorSection for improved readability.
- Enhanced array type annotations to follow TypeScript conventions.

These changes contribute to a cleaner and more maintainable codebase.

* feat(settings): introduce new settings sections for content management and notifications

- Added ContentSettingsSection for managing user preferences related to content and gameplay settings.
- Introduced NotificationsAchievementsSection and NotificationsLibrarySection for handling achievement and library notifications.
- Implemented IntegrationProviderSection for managing third-party integration settings.
- Enhanced user preferences handling with new hooks and state management for improved responsiveness.
- Updated styles for new sections to ensure a cohesive design with existing settings.

This update enhances user customization options and overall application usability in managing content and notifications.

* refactor(tabs, settings): improve code formatting and readability

- Streamlined JSX structure in Tabs and IntegrationProviderSection for better clarity.
- Enhanced array type annotations to follow TypeScript conventions.
- Reformatted function signatures and component imports for improved readability.

These changes contribute to a cleaner and more maintainable codebase.

* feat(account-privacy): implement account privacy settings section

- Added AccountPrivacySettingsSection for managing user profile visibility and blocked users.
- Integrated hooks for fetching user details and handling profile updates.
- Implemented UI components for displaying and managing blocked users, including unblocking functionality.
- Introduced new SCSS styles for the account privacy settings to ensure a cohesive design.
- Enhanced navigation focus handling for improved user experience.

This update enhances user control over privacy settings and improves overall application usability.

* refactor(user-details): improve code formatting and readability

- Streamlined function signatures and JSX structure in useUserDetails hook and AccountPrivacySettingsSection.
- Enhanced array type annotations to follow TypeScript conventions.
- Improved readability by adjusting indentation and line breaks.

These changes contribute to a cleaner and more maintainable codebase.

* feat(checkbox, radio, compatibility): enhance checkbox and radio components with new features and styles

- Updated Checkbox and Radio components to accept ReactNode for labels, allowing for richer content.
- Introduced secondary text support in Checkbox for additional context.
- Enhanced styles for Checkbox and Radio components to improve layout and visual hierarchy.
- Added CompatibilitySettingsSection for managing Proton options and user preferences related to compatibility settings.
- Implemented new SCSS styles for the compatibility settings section to ensure a cohesive design.
- Improved focus handling and accessibility features in Radio component.

These updates enhance user interaction and customization options within the settings interface.

* refactor(compatibility): improve code formatting and readability in CompatibilitySettingsSection

- Adjusted JSX structure in CompatibilitySettingsSection for better clarity.
- Enhanced readability by modifying indentation and line breaks.

These changes contribute to a cleaner and more maintainable codebase.

* refactor(button, checkbox, settings): enhance code structure and improve user interaction

- Refactored Button and Checkbox components for better readability and maintainability.
- Introduced new event handling in Button to prevent actions when disabled or loading.
- Updated Checkbox to handle clicks more effectively, preventing interaction with nested buttons and links.
- Improved focus handling in various settings sections to enhance user navigation experience.
- Adjusted styles for Checkbox to ensure consistent visual hierarchy.

These changes contribute to a more intuitive user interface and cleaner codebase.

* refactor(hero): enhance Hero component structure and improve user interaction

- Updated Hero component to utilize additional asset URLs for dominant color determination.
- Refactored focus navigation logic for better clarity and maintainability.
- Introduced a new divider for improved layout between action buttons.
- Enhanced button properties for better visual consistency and user experience.

These changes contribute to a more intuitive interface and cleaner code structure.

* refactor(hero): streamline JSX structure and improve button formatting

- Refactored the Hero component to enhance the readability of JSX structure.
- Improved button formatting for the primary action and download options, ensuring consistent styling.
- Simplified the Divider component usage for better clarity in layout.

These changes contribute to a cleaner codebase and improved user interaction.

* feat(game): add ProtonDB section and new assets for enhanced compatibility display

- Introduced a new ProtonDBSection component to display compatibility information for games.
- Added protondb-logo.svg and steam-deck-logo.svg assets for visual representation.
- Updated game index to include the new ProtonDBSection, improving the overall game details page.
- Enhanced RequirementsToPlay and SupportedLanguages components for better structure and readability.

These changes enhance user experience by providing detailed compatibility information and improving the layout of game details.

* refactor(game-reviews): enhance reviews component structure and improve functionality

- Updated GameReviews component to support pagination with a new loadMore function.
- Increased the number of reviews displayed per page from 5 to 24 for better user experience.
- Refactored voting logic for reviews to improve clarity and maintainability.
- Enhanced styling and structure in the associated SCSS file for improved layout and readability.

These changes contribute to a more efficient review display and a cleaner codebase.

* refactor(game-reviews, game): improve code formatting and enhance styling

- Refactored GameReviews component to improve readability by adjusting the formatting of the date display.
- Enhanced SCSS styles for detailed descriptions, including new font size and margin adjustments for better layout.
- Ensured images and videos within the detailed description are responsive with 100% width.

These changes contribute to a cleaner codebase and improved user experience in the game reviews section.

* feat(game): enhance game components with focus navigation and improved structure

- Added new focus navigation properties to various game components, including AchievementsBox, HowLongToBeatBox, and ProtonDBSection, to improve accessibility and user interaction.
- Refactored the ScreenshotCarousel to support focus-driven scrolling and enhanced media item handling.
- Introduced new constants for game regions and item IDs to streamline component integration.
- Updated SCSS styles for sidebar sections and media carousels to improve layout and focus visibility.

These changes enhance the user experience by providing better navigation and interaction within the game details interface.

* refactor(game): improve code formatting and readability across components

- Enhanced JSX structure in GameReviews, Hero, ScreenshotCarousel, and SupportedLanguages components for better clarity and maintainability.
- Adjusted formatting of various properties and elements to follow consistent styling practices.
- Improved readability by modifying indentation and line breaks in multiple files.

These changes contribute to a cleaner codebase and improved developer experience.

* refactor(checkbox, screenshot-carousel): improve accessibility and interaction handling

- Updated Checkbox component to use a button for label interaction, enhancing accessibility and preventing clicks on nested elements.
- Refactored ScreenshotCarouselSlide to replace div with a button for media item selection, improving user interaction and focus handling.

These changes contribute to a more intuitive user experience and better adherence to accessibility standards.

* refactor: remove steam body navigation from game page

* feat(game): add detailed description region and enhance navigation structure

- Introduced new constants for game description region and body IDs to improve navigation handling.
- Updated SCSS styles for the detailed description region, enhancing layout and focus visibility.
- Improved the Game component by integrating new hooks and memoization for better performance and accessibility.

These changes enhance the user experience by providing clearer navigation and improved interaction within the game details interface.

* fix(window-manager): enable fullscreen mode for window manager

- Updated the WindowManager class to set the fullscreen property to true, enhancing the user experience by allowing the application to utilize the entire screen space.

This change improves the visual presentation and usability of the application.

* feat(settings): add language flag component and integrate country flags

- Introduced a new LanguageFlag component to display country flags based on language selection.
- Updated language options to use flagCountryCode instead of flag emoji for better consistency.
- Refactored language picker and section components to utilize the new LanguageFlag component.
- Enhanced SCSS styles for flag display to improve layout and responsiveness.

These changes enhance the user experience by providing a clearer visual representation of language options.

* fix(game): update icon sizes and improve stats section layout

- Increased the size of CheckIcon and XIcon in the SupportedLanguages component for better visibility.
- Adjusted the font size in the game.scss file for consistency and improved readability.
- Enhanced the Game component by adding a StarIcon to the stats section, providing a clearer visual representation of the rating.

These changes contribute to a more user-friendly interface and improved accessibility in the game details page.

* feat(settings): implement download directory replacement modal

- Added a new DownloadDirectoryReplacementModal component to allow users to replace existing download directories with a new default path.
- Integrated the modal into the settings context, enabling users to select a directory to replace when the download directory list is full.
- Updated the shared logic for preparing and replacing download directories to support the new functionality.
- Enhanced the settings UI to accommodate the new modal, improving user experience when managing download paths.

These changes provide a more flexible and user-friendly approach to managing download directories within the application.

* feat(game): add bottom entry for detailed description navigation

- Introduced a new constant for the bottom entry of the game description to enhance focus navigation.
- Updated the Game component to include logic for scrolling to the bottom entry when focused, improving user interaction.
- Added corresponding SCSS styles for the new bottom entry, ensuring it remains visually hidden while maintaining accessibility.

These changes enhance the navigation experience within the game details interface by providing a clearer focus path for users.

* refactor(achievement-row, styles): streamline imports and improve padding syntax

- Consolidated import statements in AchievementRow component for cleaner code.
- Updated padding syntax in game.scss and styles.scss files to enhance readability and maintain consistency.

These changes contribute to a more organized code structure and improved styling clarity.

* fix(library-hero): update button label for clarity

- Changed button label from "Launch Game" to "Download Game" to better reflect the action being performed.

This change improves user understanding of the button's functionality.

* feat(download-directories): enhance download directory management with source tracking

- Added a new `source` property to the `DownloadDirectoryPreference` interface to distinguish between "manual" and "auto" sources.
- Introduced helper functions to sanitize and create download directory records, improving the handling of download directory preferences.
- Updated existing functions to utilize the new `source` property, ensuring consistent management of download directories.

These changes enhance the functionality and clarity of download directory management within the application.

* feat(download-game): improve download options handling with state management

- Introduced refs to track user interactions with download path, automatic extraction, and archive deletion options, enhancing user experience by preventing unwanted state changes.
- Updated state management logic to ensure default values are only set when the respective options have not been interacted with.
- Refactored event handlers for selecting download paths and toggling options to improve clarity and maintainability.

These changes enhance the functionality and responsiveness of the download options modal, providing a more intuitive user experience.

* refactor(hero): simplify rendering of favorite icon

- Removed unnecessary motion effects from the favorite icon rendering in the Hero component, streamlining the code for better readability and performance.

This change enhances the clarity of the Hero component's structure while maintaining its functionality.

---------

Co-authored-by: Moyasee <terranoiz@icloud.com>
Co-authored-by: Chubby Granny Chaser <weak.fern2638@heliokroger.com>
2026-05-21 22:49:46 +01:00
Moyase e4f0feca90 feat(big-picture): add GameAchievements page and navigation enhancements (#2228)
* feat(big-picture): add GameAchievements page and navigation enhancements

- Introduced GameAchievements component for displaying game achievements.
- Updated routing to include achievements path under game details.
- Enhanced navigation with NavigationHistoryBridge for improved user experience.
- Added new helper function to generate achievements path based on game identity.
- Cleaned up imports and improved code structure for better maintainability.

* style: enhance styles for ChallengeGameCard

- Modified SCSS styles for ChallengeGameCard to align text to the left, improving layout consistency.

* refactor(big-picture): rename useBackTargetTitle to useCurrentPageTitle and update navigation logic

- Renamed the `useBackTargetTitle` hook to `useCurrentPageTitle` for clarity.
- Updated the logic to return the current page title instead of the previous one.
- Adjusted navigation in the Home component to utilize the new achievements path for improved user experience.
- Marked the proto subproject as dirty to indicate local changes.

---------

Co-authored-by: Chubby Granny Chaser <weak.fern2638@heliokroger.com>
2026-05-16 17:34:45 +01:00
dependabot[bot] e1f1c8d8ce chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates (#2236)
Bumps the npm_and_yarn group with 2 updates in the / directory: [axios](https://github.com/axios/axios) and [fast-uri](https://github.com/fastify/fast-uri).


Updates `axios` from 1.15.0 to 1.15.2
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.15.0...v1.15.2)

Updates `fast-uri` from 3.1.0 to 3.1.2
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.2
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: fast-uri
  dependency-version: 3.1.2
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-16 17:06:12 +01:00
dependabot[bot] e40dd6868c chore(deps): bump ip-address (#2220)
Bumps the npm_and_yarn group with 1 update in the / directory: [ip-address](https://github.com/beaugunderson/ip-address).


Updates `ip-address` from 10.0.1 to 10.2.0
- [Commits](https://github.com/beaugunderson/ip-address/commits)

---
updated-dependencies:
- dependency-name: ip-address
  dependency-version: 10.2.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-16 15:04:30 +01:00
Naratev 266879edf9 Update translation.json (#2233)
Legeres modification de l orthographe
2026-05-16 15:04:26 +01:00
Chubby Granny Chaser 56423e6ef9 feat: add catalogue sorting controls 2026-05-13 01:30:36 +01:00
Eight c36f90c953 Feature/lbx 703 big picture make up (#2193)
* refactor(big-picture): streamline game-related interfaces and functions

- Removed unused LibraryGame type from game.ts and replaced it with more specific interfaces for game achievement progress and identity.
- Updated getGameAchievementProgress and getBigPictureGameDetailsPath functions to use the new interfaces for improved clarity and type safety.
- Introduced GameIdentityKeyOptions for better handling of game identity key generation.

* feat(big-picture): add GameCoverImageSource interface and getGameCoverImageSource function

- Introduced GameCoverImageSource interface to encapsulate cover image URLs for games.
- Added getGameCoverImageSource function to retrieve the most relevant image URL from the provided game data.

* feat(big-picture): add navigation helper functions for focus management

- Introduced `getItemFocusTarget` and `getOptionalItemFocusTarget` functions to facilitate focus management for navigation items.
- These functions enhance the navigation experience by providing structured focus targets based on item IDs.

* feat(big-picture): export navigation helper functions

- Added export for the new navigation helper functions to the index file, enhancing modularity and accessibility of navigation utilities within the big-picture module.

* refactor(big-picture): remove PopularGames component and usePopularGames hook

- Deleted the PopularGames component and the usePopularGames hook to streamline the codebase and eliminate unused functionality.
- This cleanup enhances maintainability and reduces complexity in the home page structure.

* refactor(big-picture): simplify focus management in App component

- Replaced the manual focus object construction with the `getItemFocusTarget` helper function for improved clarity and maintainability.
- This change enhances the focus management logic by leveraging existing utility functions.

* refactor(big-picture): enhance HomePageHero component structure and focus management

- Introduced `getItemFocusTarget` for focus management, simplifying the navigation overrides.
- Refactored the rendering of secondary action buttons into a single `heroSecondaryAction` variable for improved readability and maintainability.
- Updated `handleDownloadOrPlayClick` to use async/await for better handling of asynchronous game launching.

* refactor(big-picture): enhance HomePageHero component with async handling and improved button rendering

- Updated `handleDownloadOrPlayClick` to use async/await for better asynchronous game launching.
- Introduced `heroSecondaryAction` variable to streamline the rendering of secondary action buttons, improving code readability and maintainability.
- Added `ReactNode` type for better type safety in the component.

* feat(big-picture): add new homepage

- Introduced ChallengeGameCard component for displaying challenge game details, including cover image, title, genres, and download sources.
- Added HorizontalStoreGameCard component for showcasing games in a horizontal layout with download source information.
- Updated common component index to export new components for easier access.
- Implemented styles for both components to ensure consistent design and responsiveness.
- Enhanced focus management and accessibility features in the new components.

* refactor(big-picture): simplify HOME_SECTION_ORDER declaration and improve type annotations

- Consolidated the HOME_SECTION_ORDER declaration for cleaner code.
- Enhanced type annotations for better clarity and maintainability in the Home component.

* feat(big-picture): update game library

- Introduced HorizontalLibraryGameCard component for displaying game details in a horizontal layout, including cover image, title, subtitle, and progress information.
- Updated library page to support both grid and list view modes, allowing users to switch between different layouts.
- Enhanced navigation and focus management for the new list view, improving user experience.
- Added styles for the HorizontalLibraryGameCard to ensure consistent design and responsiveness.
- Updated common component index to export the new HorizontalLibraryGameCard for easier access.

* refactor(big-picture): enhance LibraryPage with content transition handling

- Introduced refs to manage content transition animations based on the mounted state and previous transition key.
- Updated the motion component to conditionally apply layout and transition properties, improving the user experience during content changes.
- Refactored useEffect hooks to manage the mounted state and transition key updates for better performance and clarity.

* feat(big-picture): add DropdownSelect and Radio components for enhanced UI interactivity

- Introduced DropdownSelect component for improved selection functionality with customizable options and styles.
- Added Radio component for better radio button implementation, supporting block and disabled states.
- Updated common component index to export new components for easier access.
- Enhanced library filters with DropdownSelect for sorting and filtering options, improving user experience.
- Implemented styles for both components to ensure consistent design and responsiveness.

* refactor(big-picture): improve code formatting and readability in various components

- Updated SCSS styles for DropdownSelect to enhance readability with consistent formatting.
- Refactored TypeScript code in library-data.ts and page.tsx for improved clarity and maintainability by adjusting line breaks and spacing.
- Simplified the createGame function in create-game.ts for better readability while maintaining functionality.

* feat(big-picture): enhance Tabs component and library filters with new features

- Added `afterTabs` prop to the Tabs component for additional UI elements after tab buttons.
- Updated SCSS styles for the Tabs component to improve layout and alignment.
- Introduced `useGameCollections` hook for managing game collections, enhancing the library filters functionality.
- Refactored library filters to utilize the new collections data, improving filtering capabilities.
- Added new translation key for "New Folder" in the localization files to support UI updates.

* refactor(big-picture): update library page styles for improved layout

- Adjusted SCSS styles for the library page to enhance layout and fill the root container.
- Implemented negative margin and calculated height to ensure proper display without bottom stripes.
- Added overflow handling to prevent horizontal scrolling.

* feat(big-picture): implement context menu for game cards in library

- Added ContextMenu component to provide a contextual action menu for game cards.
- Integrated context menu functionality into HorizontalLibraryGameCard and VerticalLibraryGameCard components.
- Updated library page to support context menu interactions, enhancing user experience.
- Introduced game-context-menu-items for defining context menu actions specific to library games.
- Enhanced focus management and accessibility features for the context menu.
- Updated common component index to export new context menu components for easier access.

* refactor(big-picture): enhance LibraryPage with deferred search handling

- Added useDeferredValue for search input to improve performance during sorting and filtering.
- Updated content transition key to include deferred search value, ensuring smoother UI transitions.
- Refactored related logic to maintain clarity and performance in the LibraryPage component.

* refactor(big-picture): update Modal component and remove settings modal

- Refactored Modal component to include new props: closeOnBackdrop, closeOnEscape, and ariaLabel for improved accessibility and functionality.
- Updated event handling to use pointer events instead of mouse events for better performance.
- Removed the settings modal and its associated files, streamlining the codebase.
- Enhanced modal animations for a smoother user experience.

* refactor(big-picture): rename game settings prop and remove unused export

- Renamed `onOpenGameSettings` prop to `onOpenOptions` in the LibraryHero component for clarity.
- Removed the unused export of the settings modal from the library index file, streamlining the codebase.

* refactor(big-picture): remove unused confirmation and settings modals, replace console logs with logger

- Removed unused `ConfirmationModal` and `GameSettingsModal` components from Home and LibraryPage, streamlining the codebase.
- Replaced `console.log` statements with `logger.log` for consistent logging practices.
- Updated context menu handlers to log game actions with appropriate placeholders for better tracking.

* feat(big-picture): add confirmation modal to catalogue page

- Introduced `ConfirmationModal` to the Catalogue component for user confirmation actions.
- Updated modal handling to include `NavigationLayer` and `VerticalFocusGroup` for improved accessibility and layout.
- Enhanced button interactions to open the confirmation modal, providing a better user experience.
- Updated modal descriptions and aria labels for clarity and accessibility compliance.

* feat(big-picture): enhance Modal component with new features and styles

- Updated Modal component to include new props: title, description, onBack, and coverImage for improved user experience.
- Refactored modal rendering to utilize FocusRegionContext for better accessibility.
- Enhanced modal styles with a new header layout, including back and close buttons, and improved content structure.
- Updated SCSS styles for the modal to enhance visual presentation and responsiveness.

* feat(big-picture): integrate Steam assets fetching and update modal content

- Added useEffect to fetch Steam assets based on a sample object ID when on desktop.
- Introduced state management for Steam assets and updated modal to display relevant information.
- Removed unused modal components and adjusted modal content structure for clarity.
- Updated SCSS styles by removing unnecessary padding for improved layout.

* refactor(big-picture): remove unused ConfirmationModal import from catalogue page

- Eliminated the unused `ConfirmationModal` import from the Catalogue component to streamline the codebase.

* feat(big-picture): add DownloadSourceOption component with styles

- Introduced the `DownloadSourceOption` component to display download options with relevant details such as title, file size, and upload date.
- Implemented styles for the component to enhance visual presentation and user interaction.
- Utilized `useMemo` for optimized date formatting and structured the layout for clarity and responsiveness.

* feat(big-picture): enhance Modal component with closeOnB prop and NavigationLayer integration

- Added a new `closeOnB` prop to the Modal component to allow closing the modal with the 'B' key for improved user experience.
- Integrated `NavigationLayer` to manage navigation context within the modal, enhancing accessibility and interaction.
- Refactored event handling for pointer events and modal close logic for better performance and clarity.

* big-picture: add reusable skeleton and disk card primitives

* big-picture: add download helper constants and pure sort utilities

* big-picture: update modal select and source anchor interactions

* big-picture: add download game modal flow

* refactor(big-picture): simplify user preferences retrieval in download game modal

- Removed unnecessary type assertion when fetching user preferences in the DownloadGameOptions component for cleaner code.
- Improved readability by directly assigning the result of the asynchronous call to the preferences variable.

* kk

* kk

* refactor(big-picture): change statusTone variable to constant for clarity

- Updated the `statusTone` variable to a constant in the `useBigPictureDownloadsPageData` function to enhance code clarity and maintainability.

* refactor(big-picture): simplify navigation logic and enhance downloads page functionality

- Removed unnecessary conditional logic in `getBigPictureSidebarItemIdFromPathname` for the downloads path.
- Updated sidebar filtering logic to exclude only the catalogue route in development mode.
- Introduced a new context for handling hero download menu options in the Downloads component, improving the user experience.
- Refactored focus action handling for download cards to streamline interactions and maintain consistency across different states.

* dj spectre

* refactor(big-picture): improve code readability by formatting and simplifying expressions

- Reformatted multi-line expressions for better readability across various components, including `App`, `FocusCarousel`, and `DownloadGameSourceList`.
- Enhanced clarity in conditional logic and function calls in `DownloadsHero` and `useDownloadsHeroDisplayState`.
- Applied consistent formatting in SCSS files to maintain style coherence.
- Improved overall code structure by ensuring consistent use of line breaks and indentation.

* refactor(big-picture): enhance focus carousel and download game components

- Removed unused focus handling in the `App` component to streamline navigation logic.
- Updated `FocusCarousel` to include new click handling for card interactions, improving user experience.
- Refactored `DownloadGameSourceList` to utilize local download sources and improve source identification logic.
- Simplified context menu items by removing the open game page option, reducing redundancy in the library context menu.
- Improved overall code clarity and maintainability across various components.

* refactor(big-picture): improve code formatting in focus carousel and download game components

- Reformatted imports and expressions for better readability in `FocusCarousel` and `DownloadGameSourceList`.
- Enhanced overall code clarity by ensuring consistent indentation and line breaks across components.

* refactor(big-picture): update downloads component structure and logic

- Replaced the options button with a cancel button in the `DownloadsHero` component for improved user interaction.
- Refactored related props and navigation logic to accommodate the new cancel action.
- Introduced a new Zustand store for managing download states, enhancing state management and performance.
- Cleaned up unused code and improved overall readability across the downloads page and related components.

* refactor(big-picture): enhance tabs and download game components

- Added `navigationOrder` prop to `TabsButton` for improved tab navigation handling.
- Refactored `DownloadGameOptions` to enhance the layout and styling of downloader options, including new grid structure for better alignment.
- Updated styles in SCSS for downloader options to improve visual presentation and responsiveness.
- Cleaned up code formatting for better readability and consistency across components.

* refactor(big-picture): enhance focus carousel logic and update sidebar navigation

- Improved focus handling in `FocusCarousel` to ensure correct scrolling behavior when out of bounds.
- Updated trigger positions for scrolling based on the visible count, enhancing user experience.
- Refactored sidebar navigation to utilize the new `getBigPictureContentSidebarReturnTargetFromPathname` function for better clarity and maintainability.
- Cleaned up unused code and improved overall readability across components.

* refactor(big-picture): simplify conditional logic in focus carousel

- Streamlined the `didScroll` condition in the `FocusCarousel` component for improved readability.
- Enhanced code clarity by reducing line breaks in the conditional expression.

* refactor(settings): improve code readability in settings components

- Reformatted the `protonSourceCompatibilityTools` translation calls for better clarity.
- Simplified JSX structure by removing unnecessary line breaks in the `SettingsContextCompatibility` component.
- Enhanced overall code consistency and maintainability across settings-related components.

* refactor(report-profile): improve code readability in report reasons array

- Reformatted the `reportReasons` array for better clarity and consistency.
- Enhanced overall code maintainability in the `report-profile` component.

* refactor(level): update Download interface for improved clarity

- Added optional `extractionProgress` property to the `Download` interface for better tracking of extraction status.
- Removed outdated comments to enhance code readability and maintainability.

* refactor(big-picture): enhance sidebar navigation and download logic

* refactor(big-picture): remove i18next integration and hardcode translations

- Eliminated i18next usage in various components, replacing translation calls with hardcoded strings for improved performance.
- Updated date formatting logic to use a fixed locale.
- Cleaned up unused imports and streamlined code for better readability and maintainability.

* refactor(big-picture): simplify conditional expressions in context menu items

- Streamlined conditional logic for game context menu item labels in `game-context-menu-items.tsx` for improved readability.
- Consolidated array dependencies in `downloads.tsx` to enhance code clarity.

* Revert "refactor(big-picture): enhance sidebar navigation and download logic"

This reverts commit 446d6cf3d9.

* feat(big-picture): restore sidebar exit and diagnostics

* feat(big-picture): integrate download layout state management

* refactor(big-picture): improve code formatting and readability in download layout state management

- Reformatted code in `download-layout-state.ts`, `index.ts`, `use-download-layout.ts`, and `download-contract.ts` for enhanced clarity.
- Ensured consistent use of line breaks for better visual structure in function calls and array mappings.

* refactor(big-picture): optimize download sources handling in game download options

- Removed unnecessary filtering of download sources in `DownloadGameSourceList` for improved performance.
- Integrated sorting of download sources by creation date in `useGameDownloadOptions` using lodash's `orderBy` for better organization.
- Enhanced error handling to ensure local download sources are set correctly in case of failures.

* refactor(big-picture): streamline download sources mapping in DownloadGameSourceList

- Simplified the mapping of local download sources in `DownloadGameSourceList` for improved readability.
- Ensured consistent formatting for better code clarity.

* feat(big-picture): add onClick handler to ChallengeGameCard component

- Introduced an optional `onClick` prop to the `ChallengeGameCard` interface for enhanced interactivity.
- Implemented the `onClick` handler in the `ChallengeGameCard` component to allow click events.
- Updated the `Home` page to utilize the new `onClick` functionality for navigating to game details.

* refactor(big-picture): update ChallengeGameCard to use button for click events

- Refactored the `ChallengeGameCard` component to wrap the card in a button when an `onClick` handler is provided, enhancing accessibility and interactivity.
- Extracted the inner content into a separate variable for cleaner rendering logic.
- Maintained the original div structure for cases without an `onClick` handler.

* refactor(big-picture): hide footer placeholders in DownloadSourceOption component

- Commented out the footer and divider elements in the `DownloadSourceOption` component to hide them for the current release.
- Added a note indicating that these placeholders are intentionally hidden, maintaining the structure for future use.

* feat(big-picture): add ConfirmationModal for pending actions in Home and Library pages

- Introduced a `ConfirmationModal` component to handle user confirmations for removing downloaded files and removing games from the library.
- Updated the `Home` and `Library` pages to manage pending actions and display the modal accordingly.
- Enhanced user experience by providing clear confirmation prompts for critical actions.

* refactor(big-picture): clean up imports and improve formatting in Home and Library pages

- Consolidated imports for `ConfirmationModal` and `DownloadGameModal` in both `Home` and `Library` pages for better readability.
- Reformatted `useCallback` hooks to enhance code clarity and maintain consistent style.
- Ensured adherence to TypeScript array syntax and improved overall code structure.
2026-05-10 18:47:28 +01:00
Moyase f8d5f8e369 chore: update Python RPC environment settings for UTF-8 encoding and adjust logging configuration (#2219) 2026-05-08 11:06:31 +01:00
Julia 304eeb70f4 Fix plurals in translations (#2222) 2026-05-08 11:06:27 +01:00
Julia 0d759fb6e7 Add missing translation strings to en.json & cleanup code (#2205)
Co-authored-by: Chubby Granny Chaser <weak.fern2638@heliokroger.com>
2026-05-05 19:26:23 +01:00
Julia 0ef09d0bb8 Translated using Weblate (Polish) (#2189)
Currently translated at 100.0% (1077 of 1077 strings)

Translation: hydralauncher/hydra

Translated using Weblate (Polish)

Currently translated at 100.0% (1076 of 1076 strings)

Translation: hydralauncher/hydra

Translated using Weblate (Polish)

Currently translated at 100.0% (1076 of 1076 strings)

Translation: hydralauncher/hydra

Translated using Weblate (Polish)

Currently translated at 100.0% (1076 of 1076 strings)

Translation: hydralauncher/hydra

Translated using Weblate (Polish)

Currently translated at 100.0% (1076 of 1076 strings)

Translation: hydralauncher/hydra

Translated using Weblate (Polish)

Currently translated at 100.0% (1076 of 1076 strings)

Translation: hydralauncher/hydra

Co-authored-by: Chubby Granny Chaser <weak.fern2638@heliokroger.com>
2026-05-05 19:26:18 +01:00
Zamitto 3fcaedd057 Merge pull request #2215 from hydralauncher/feat/small-perf-change-on-game-extraction
feat: small perf improvement on file extraction
2026-05-05 08:20:23 -03:00
Zamitto 8a5c415c69 fix: consider force prop when short cutting 2026-05-05 08:14:06 -03:00
Zamitto ca45693979 feat: remove unused prop for extraction on leveldb and simplify calls 2026-05-05 08:11:51 -03:00
Zamitto 39568f0edf Merge pull request #2195 from skyhancloud/fix-custom-game-shortcut-icons
fix(library): use custom game icons for generated shortcuts
2026-05-05 06:35:09 -03:00
Zamitto e6b01ef953 Merge pull request #2210 from hydralauncher/feat/refactor-main-loop
refactor: add granularity for main loop and small perf improv on findAchievementFileInSteamPath
2026-05-04 14:37:40 -03:00
Zamitto f14df0b6a2 fix: increase powerSaveBlockerSync interval to 20 seconds 2026-05-04 14:35:39 -03:00
Zamitto 697cb75f11 feat: move leveldb read out of find achievement files loop 2026-05-04 09:24:55 -03:00
Zamitto e3fb28ff2e Merge pull request #2196 from spectre365/main
feat: display username in account settings
2026-05-04 08:17:55 -03:00
Zamitto a1f3c6b711 refactor: replace MAIN_LOOP_INTERVAL with INTERVALS object and enhance main loop logic 2026-05-04 07:43:58 -03:00
Zamitto 34ef2c8300 Merge pull request #2209 from hydralauncher/chore/upload-build-update
chore: upload build update
2026-05-04 07:42:58 -03:00
Zamitto da800b0ffe chore: nl on gitignore 2026-05-04 07:41:29 -03:00
Zamitto 384824b16c chore: update upload-build script 2026-05-04 07:26:25 -03:00
Zamitto 10cc1dba9c Merge pull request #2123 from Stormm232/main
Added lines into Hungarian Translation
2026-05-04 06:46:39 -03:00
s.p.e.c.t.r.e dff5918d36 Delete .github/workflows/build-mac.yml 2026-04-30 11:51:26 -03:00
spectre365 63aaa94244 ci: disable publishing in mac build
Runs electron-builder with --publish never so GitHub Actions produces DMG artifacts without requiring a GH_TOKEN.

Made-with: Cursor
2026-04-30 11:40:49 -03:00
spectre365 7f079dd717 ci: install python deps for mac build
Sets up Python and installs cx_Freeze/libtorrent so the macOS DMG build can compile the Python RPC.

Made-with: Cursor
2026-04-30 11:23:59 -03:00
spectre365 97f8a93302 chore: fix workflow trailing newline
Made-with: Cursor
2026-04-30 10:33:58 -03:00
spectre365 5dd7e91523 ci: add macOS DMG build workflow
Adds a GitHub Actions workflow to build the macOS DMG artifact on macOS runners.

Made-with: Cursor
2026-04-30 10:33:22 -03:00
Gökhan Bulut c0048dab1c fix: generate unique file names for custom game icons to bypass cache 2026-04-30 07:17:13 +03:00
spectre365 a377733a03 feat: display username in account settings 2026-04-29 21:24:47 -03:00
Gökhan Bulut b8902789af fix(library): use custom game icons for generated shortcuts 2026-04-30 02:10:10 +03:00
Kiwo.2 aa025825b0 Fix Hungarian translations for clarity 2026-04-28 20:27:08 +02:00
Chubby Granny Chaser cb5bec9727 Merge branch 'main' into main 2026-04-28 14:18:19 +01:00
japa2k e1de9e9086 Feat/lbx 650 (#2117)
* feat: Add new user preference for deleting archive files after extraction

* feat: Implement user preference for automatic archive deletion after extraction

* feat: Add checkbox for user preference to delete archive files after extraction

* feat: Add delete archive files after extraction preference to settings

* i18n: Add translations for "delete archive files after extraction" in English, Portuguese, and Russian

* fix: Change default setting for extracting files after download to false

* refactor: Rename user preference for deleting archive files after extraction to clarify default behavior

* feat: Add automaticallyDeleteArchiveFiles property to download and game download payload types

* refactor: Enhance archive deletion logic based on user preferences in GameFilesManager

* refactor: Update addGameToQueue and startGameDownload to include automaticallyDeleteArchiveFiles parameter

* refactor: Integrate automaticallyDeleteArchiveFiles parameter into DownloadSettingsModal and RepacksModal, and update related user preferences in SettingsContextDownloads

* refactor: Include automaticallyDeleteArchiveFiles parameter in GameDetails component for enhanced download handling

* refactor: streamline archive deletion prompt handling in App component

* fix: enable extractFilesByDefault in SettingsContextDownloads for improved user experience

* refactor: remove automatic extraction setting from DownloadSettingsModal

* refactor: update download flow to ensure download starts before saving to sublevel

* refactor: update GameFilesManager to send delete notifications instead of unlinking files directly

* refactor: separate deleteArchive logic into a dedicated function and update GameFilesManager to use it

---------

Co-authored-by: Chubby Granny Chaser <weak.fern2638@heliokroger.com>
Co-authored-by: Helio Kroger <me@heliokroger.com>
2026-04-28 13:51:24 +01:00
Julia 0438fc7dea Translated using Weblate (Polish) (#2182)
Currently translated at 100.0% (1074 of 1074 strings)

Translation: hydralauncher/hydra
2026-04-28 13:00:50 +01:00
Chubby Granny Chaser 4503c46769 style: apply hook formatting v3.9.7 2026-04-27 19:57:59 +01:00
Chubby Granny Chaser 1a5525312b fix: offload process listing from main thread
Move native process enumeration into a worker so process watching does not block the main process, and add LF text-integrity checks for normalized files.
2026-04-27 19:57:18 +01:00
Chubby Granny Chaser bc83595fe8 chore(release): bump version to 3.9.6 v3.9.6 2026-04-26 19:31:42 +01:00