Skip to content

refactor(controller-library): polish Home tab flow and in-stream controls - #387

Merged
Jayian1890 merged 9 commits into
devfrom
feat/controller-library-home-tab-polish
May 3, 2026
Merged

refactor(controller-library): polish Home tab flow and in-stream controls#387
Jayian1890 merged 9 commits into
devfrom
feat/controller-library-home-tab-polish

Conversation

@Jayian1890

Copy link
Copy Markdown
Collaborator

Summary

  • Rework the Home/current section to default to Home, show last-played context when no active stream, and use game-title-driven resume labeling.
  • Remove the right-side Current detail panel and simplify related layout/motion plumbing to reduce visual clutter and state complexity.
  • Improve in-stream/controller UX with stream volume output wiring, category strip layering/order updates, and random Live Snapshot screenshots with poster fallback.

Test plan

  • Run npm run typecheck in opennow-stable
  • Verify Home/Game/Media/Settings strip order and default landing tab in controller mode
  • Verify Home resume tile label/title, random screenshot snapshot behavior, and poster fallback
  • Verify in-stream menu shows Close Game only in stream and volume/mic controls still function

Jayian1890 added 9 commits May 3, 2026 13:19
…rols

Align Home/current behavior around last played titles, remove redundant right-side detail chrome, and refine in-stream actions/snapshot rendering for a cleaner, more predictable controller library UX.
- Updated CSS styles to ensure proper height and overflow management for non-games-root shelves, preventing clipping of Live Snapshot tiles.
- Modified aspect ratio and layout properties for the resume preview to enhance visual presentation and responsiveness.
- Refined aria-labels and text for improved accessibility and clarity in the controller library interface.
- Introduced a custom media protocol for in-app video playback, allowing seamless integration of video files within the application.
- Added IPC handlers for retrieving playback URLs, deleting media files, and regenerating thumbnails, improving media management capabilities.
- Updated the ControllerLibraryPage to support local video playback, including a new overlay for video controls and enhanced user interactions.
- Enhanced styles for the video playback interface, ensuring a visually appealing and user-friendly experience.

These changes significantly improve the media handling experience, providing users with better access to video content and management options.
- Introduced a new function to probe video duration using ffprobe, enhancing the ability to generate thumbnails at random points within the video.
- Updated the thumbnail generation logic to utilize the newly added duration probing and random seek functionality, improving the quality and variability of extracted thumbnails.
- Refactored the existing thumbnail extraction function to support dynamic seeking based on video length, ensuring better representation of video content.

These changes enhance the media management capabilities by providing more effective thumbnail generation for videos.
…ed game handling

- Introduced a new state management for home root plane, allowing dynamic switching between "spotlight" and "actions" views.
- Added logic to display a featured game on the home shelf, improving user engagement with recently played titles.
- Updated the ControllerLibraryPage and related components to support the new home root plane and featured game features.
- Enhanced navigation and interaction logic for the home dual shelf, ensuring a seamless user experience when accessing featured content.

These changes significantly improve the user interface and interaction flow within the controller library, providing a more engaging experience for users.
- Integrated live microphone track handling across components, allowing for real-time audio level monitoring during streaming sessions.
- Updated the App component to pass the microphone track to relevant child components, improving audio control visibility.
- Refactored StreamView and ControllerLibraryPage to utilize the new microphone track for enhanced user feedback on audio levels.
- Improved the MicrophoneManager to manage microphone processing and gain settings more effectively, ensuring better audio quality during streams.

These changes significantly enhance the user experience by providing clearer audio feedback and more control over microphone settings during streaming.
…ions

- Added state management for badge visibility in the ControllerIndicator component, allowing it to hide after 5 seconds of inactivity when gamepads are connected.
- Introduced a new CSS class to manage hidden state with opacity and pointer events, improving user experience during controller interactions.
- Updated styles for the game card store chip to include a transition effect for smoother visual feedback.

These changes improve the responsiveness and visual clarity of the controller indicator, enhancing user engagement during gameplay.
…ry visuals

- Introduced a new setting for controllerLibraryGameBackdrop, allowing backdrop art to be displayed based on the focused game or shelf.
- Updated the ControllerLibraryPage and related components to utilize the new backdrop setting, improving visual engagement.
- Enhanced the ControllerGameHub and FooterHints components to conditionally render elements based on the backdrop setting.
- Refactored various components to support the new gamesDualShelf logic, ensuring a consistent user experience across the library interface.

These changes significantly enhance the visual presentation and user interaction within the controller library, providing a more immersive experience for users.
- Updated the label for recently played titles in the TopLevelShelfSection component to enhance clarity and conciseness.
- Removed redundant text to streamline the user experience when displaying recently played games.

These changes improve the readability of the interface and provide a cleaner presentation of game titles.
@Jayian1890
Jayian1890 merged commit 87e7556 into dev May 3, 2026
9 checks passed
@Jayian1890
Jayian1890 deleted the feat/controller-library-home-tab-polish branch May 3, 2026 23:36
Jayian1890 added a commit that referenced this pull request May 16, 2026
…rols (#387)

* refactor(controller-library): polish Home tab flow and in-stream controls

Align Home/current behavior around last played titles, remove redundant right-side detail chrome, and refine in-stream actions/snapshot rendering for a cleaner, more predictable controller library UX.

* fix(styles): adjust layout and overflow for PS5 home and media tiles

- Updated CSS styles to ensure proper height and overflow management for non-games-root shelves, preventing clipping of Live Snapshot tiles.
- Modified aspect ratio and layout properties for the resume preview to enhance visual presentation and responsiveness.
- Refined aria-labels and text for improved accessibility and clarity in the controller library interface.

* feat(media): enhance local video playback and media management features

- Introduced a custom media protocol for in-app video playback, allowing seamless integration of video files within the application.
- Added IPC handlers for retrieving playback URLs, deleting media files, and regenerating thumbnails, improving media management capabilities.
- Updated the ControllerLibraryPage to support local video playback, including a new overlay for video controls and enhanced user interactions.
- Enhanced styles for the video playback interface, ensuring a visually appealing and user-friendly experience.

These changes significantly improve the media handling experience, providing users with better access to video content and management options.

* feat(video): add video duration probing and random thumbnail extraction

- Introduced a new function to probe video duration using ffprobe, enhancing the ability to generate thumbnails at random points within the video.
- Updated the thumbnail generation logic to utilize the newly added duration probing and random seek functionality, improving the quality and variability of extracted thumbnails.
- Refactored the existing thumbnail extraction function to support dynamic seeking based on video length, ensuring better representation of video content.

These changes enhance the media management capabilities by providing more effective thumbnail generation for videos.

* feat(controller-library): enhance home shelf functionality and featured game handling

- Introduced a new state management for home root plane, allowing dynamic switching between "spotlight" and "actions" views.
- Added logic to display a featured game on the home shelf, improving user engagement with recently played titles.
- Updated the ControllerLibraryPage and related components to support the new home root plane and featured game features.
- Enhanced navigation and interaction logic for the home dual shelf, ensuring a seamless user experience when accessing featured content.

These changes significantly improve the user interface and interaction flow within the controller library, providing a more engaging experience for users.

* feat(microphone): enhance microphone management and UI feedback

- Integrated live microphone track handling across components, allowing for real-time audio level monitoring during streaming sessions.
- Updated the App component to pass the microphone track to relevant child components, improving audio control visibility.
- Refactored StreamView and ControllerLibraryPage to utilize the new microphone track for enhanced user feedback on audio levels.
- Improved the MicrophoneManager to manage microphone processing and gain settings more effectively, ensuring better audio quality during streams.

These changes significantly enhance the user experience by providing clearer audio feedback and more control over microphone settings during streaming.

* feat(controller): enhance controller badge visibility and CSS transitions

- Added state management for badge visibility in the ControllerIndicator component, allowing it to hide after 5 seconds of inactivity when gamepads are connected.
- Introduced a new CSS class to manage hidden state with opacity and pointer events, improving user experience during controller interactions.
- Updated styles for the game card store chip to include a transition effect for smoother visual feedback.

These changes improve the responsiveness and visual clarity of the controller indicator, enhancing user engagement during gameplay.

* feat(controller-library): add game backdrop setting and enhance library visuals

- Introduced a new setting for controllerLibraryGameBackdrop, allowing backdrop art to be displayed based on the focused game or shelf.
- Updated the ControllerLibraryPage and related components to utilize the new backdrop setting, improving visual engagement.
- Enhanced the ControllerGameHub and FooterHints components to conditionally render elements based on the backdrop setting.
- Refactored various components to support the new gamesDualShelf logic, ensuring a consistent user experience across the library interface.

These changes significantly enhance the visual presentation and user interaction within the controller library, providing a more immersive experience for users.

* refactor(TopLevelShelfSection): simplify recently played label

- Updated the label for recently played titles in the TopLevelShelfSection component to enhance clarity and conciseness.
- Removed redundant text to streamline the user experience when displaying recently played games.

These changes improve the readability of the interface and provide a cleaner presentation of game titles.
Chizuui pushed a commit to Chizuui/OpenNOW-Modified that referenced this pull request Aug 11, 2026
…rols (OpenCloudGaming#387)

* refactor(controller-library): polish Home tab flow and in-stream controls

Align Home/current behavior around last played titles, remove redundant right-side detail chrome, and refine in-stream actions/snapshot rendering for a cleaner, more predictable controller library UX.

* fix(styles): adjust layout and overflow for PS5 home and media tiles

- Updated CSS styles to ensure proper height and overflow management for non-games-root shelves, preventing clipping of Live Snapshot tiles.
- Modified aspect ratio and layout properties for the resume preview to enhance visual presentation and responsiveness.
- Refined aria-labels and text for improved accessibility and clarity in the controller library interface.

* feat(media): enhance local video playback and media management features

- Introduced a custom media protocol for in-app video playback, allowing seamless integration of video files within the application.
- Added IPC handlers for retrieving playback URLs, deleting media files, and regenerating thumbnails, improving media management capabilities.
- Updated the ControllerLibraryPage to support local video playback, including a new overlay for video controls and enhanced user interactions.
- Enhanced styles for the video playback interface, ensuring a visually appealing and user-friendly experience.

These changes significantly improve the media handling experience, providing users with better access to video content and management options.

* feat(video): add video duration probing and random thumbnail extraction

- Introduced a new function to probe video duration using ffprobe, enhancing the ability to generate thumbnails at random points within the video.
- Updated the thumbnail generation logic to utilize the newly added duration probing and random seek functionality, improving the quality and variability of extracted thumbnails.
- Refactored the existing thumbnail extraction function to support dynamic seeking based on video length, ensuring better representation of video content.

These changes enhance the media management capabilities by providing more effective thumbnail generation for videos.

* feat(controller-library): enhance home shelf functionality and featured game handling

- Introduced a new state management for home root plane, allowing dynamic switching between "spotlight" and "actions" views.
- Added logic to display a featured game on the home shelf, improving user engagement with recently played titles.
- Updated the ControllerLibraryPage and related components to support the new home root plane and featured game features.
- Enhanced navigation and interaction logic for the home dual shelf, ensuring a seamless user experience when accessing featured content.

These changes significantly improve the user interface and interaction flow within the controller library, providing a more engaging experience for users.

* feat(microphone): enhance microphone management and UI feedback

- Integrated live microphone track handling across components, allowing for real-time audio level monitoring during streaming sessions.
- Updated the App component to pass the microphone track to relevant child components, improving audio control visibility.
- Refactored StreamView and ControllerLibraryPage to utilize the new microphone track for enhanced user feedback on audio levels.
- Improved the MicrophoneManager to manage microphone processing and gain settings more effectively, ensuring better audio quality during streams.

These changes significantly enhance the user experience by providing clearer audio feedback and more control over microphone settings during streaming.

* feat(controller): enhance controller badge visibility and CSS transitions

- Added state management for badge visibility in the ControllerIndicator component, allowing it to hide after 5 seconds of inactivity when gamepads are connected.
- Introduced a new CSS class to manage hidden state with opacity and pointer events, improving user experience during controller interactions.
- Updated styles for the game card store chip to include a transition effect for smoother visual feedback.

These changes improve the responsiveness and visual clarity of the controller indicator, enhancing user engagement during gameplay.

* feat(controller-library): add game backdrop setting and enhance library visuals

- Introduced a new setting for controllerLibraryGameBackdrop, allowing backdrop art to be displayed based on the focused game or shelf.
- Updated the ControllerLibraryPage and related components to utilize the new backdrop setting, improving visual engagement.
- Enhanced the ControllerGameHub and FooterHints components to conditionally render elements based on the backdrop setting.
- Refactored various components to support the new gamesDualShelf logic, ensuring a consistent user experience across the library interface.

These changes significantly enhance the visual presentation and user interaction within the controller library, providing a more immersive experience for users.

* refactor(TopLevelShelfSection): simplify recently played label

- Updated the label for recently played titles in the TopLevelShelfSection component to enhance clarity and conciseness.
- Removed redundant text to streamline the user experience when displaying recently played games.

These changes improve the readability of the interface and provide a cleaner presentation of game titles.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant