* feat(window-manager): implement in-app achievement notifications for Linux
- Added `sendAchievementToFocusedWindow` method to handle achievement notifications within the app on Linux/Wayland, where standalone overlays are not supported.
- Updated `mergeAchievements` to utilize the new method for in-app notifications.
- Introduced IPC listener for in-app achievement notifications in the preload script.
- Enhanced the renderer to display achievement notifications using the new overlay component.
This update improves user experience by providing timely feedback on achievements directly within the application interface.
* chore: remove comments
* fix: points positioning in a custom achievement window
---------
Co-authored-by: Chubby Granny Chaser <weak.fern2638@heliokroger.com>
* 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>
* 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>
* 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.
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>
* 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>