Fix Jellyseerr search results not navigating to details page#54
Open
rsiyasena wants to merge 2 commits intoMoonfin-Client:masterfrom
Open
Fix Jellyseerr search results not navigating to details page#54rsiyasena wants to merge 2 commits intoMoonfin-Client:masterfrom
rsiyasena wants to merge 2 commits intoMoonfin-Client:masterfrom
Conversation
Selecting a Jellyseerr result from Search was calling onSelectItem with a manually constructed Jellyfin-shaped object, which failed to open the Jellyseerr details view. Route Jellyseerr results through the dedicated onSelectJellyseerrItem handler instead, passing the native mediaId and mediaType so the existing Jellyseerr details flow handles it correctly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Movies from Jellyseerr search/discover caused a loading spinner followed by a permanent black screen on webOS TVs. Multiple defensive fixes: - Add PanelErrorBoundary around JellyseerrDetails to catch rendering crashes and show a recoverable error screen instead of black screen - Fix getImageUrl to use HTTPS instead of HTTP (mixed content blocking) - Reduce backdrop image size from 'original' to 'w1280' to prevent webOS memory crashes from large movie backdrops - Wrap formatCurrency (movie-only code) in try-catch for older webOS - Add Number() coercion for voteAverage.toFixed() type safety - Use Array.isArray for keywords (TMDB returns different structures) - Add media_type (snake_case) check in Search to match Discover pattern - Fix handleClearSearch missing albums/artists/songs fields Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Search.jswas callingonSelectItemwith a manually constructed Jellyfin-shaped object (Id,Name,Type), but the app's Jellyseerr details flow expects the nativemediaId/mediaTypeformat routed through the dedicatedhandleSelectJellyseerrItemhandler.onSelectJellyseerrItem(the same handler already used byJellyseerrDiscover), passing the nativemediaIdandmediaTypeso the existing Jellyseerr details flow picks them up correctly.JellyseerrDetailswith no error boundary to catch crashes.JellyseerrDetails, switched image URLs to HTTPS, reduced backdrop size fromoriginaltow1280to prevent webOS memory crashes, added defensive checks for movie-specific code paths (formatCurrency,voteAverage.toFixed,keywordsarray validation), and aligned Search'smedia_typehandling with JellyseerrDiscover's pattern.What changed
src/views/Search/Search.jsonSelectJellyseerrItemprop; use it for Jellyseerr results instead ofonSelectItemwith a faked Jellyfin object. Addmedia_type(snake_case) check to match Discover pattern. FixhandleClearSearchmissingalbums/artists/songsfields.src/App/App.jshandleSelectJellyseerrItemcallback down to<Search />. AddPanelErrorBoundarycomponent to catch rendering crashes and show a recoverable error screen instead of black screen. WrapJellyseerrDetailspanel with it.src/views/JellyseerrDetails/JellyseerrDetails.jsoriginaltow1280size. WrapformatCurrencyin try-catch. AddNumber()coercion forvoteAverage. UseArray.isArrayfor keywords validation.src/services/jellyseerrApi.jsgetImageUrlto use HTTPS instead of HTTP.Test plan
🤖 Generated with Claude Code