A personal media tracker built on the AT Protocol opnshelf.xyz
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(show): use correct property names for nextEpisode

- Fix frontend to use seasonNumber and episodeNumber (camelCase) instead of
season_number and episode_number (snake_case) for nextEpisode object
- The UpNextEpisodeDto from the API uses camelCase, while TMDB data uses snake_case

+16 -22
+16 -22
apps/web/src/routes/shows/$showId/$showName/index.tsx
··· 218 218 219 219 // Get current episode display text 220 220 const getCurrentEpisodeText = () => { 221 - if ( 222 - nextEpisode?.season_number !== undefined && 223 - nextEpisode?.episode_number !== undefined 224 - ) { 225 - return `Continue S${nextEpisode.season_number}E${nextEpisode.episode_number}`; 221 + if (nextEpisode) { 222 + return `Continue S${nextEpisode.seasonNumber}E${nextEpisode.episodeNumber}`; 226 223 } 227 224 if (isTracking && episodesWatched > 0) { 228 225 return "Continue Watching"; ··· 233 230 // Check if an episode is the next/current one 234 231 const isCurrentEpisode = (seasonNum: number, episodeNum: number) => { 235 232 return ( 236 - nextEpisode?.season_number === seasonNum && 237 - nextEpisode?.episode_number === episodeNum 233 + nextEpisode?.seasonNumber === seasonNum && 234 + nextEpisode?.episodeNumber === episodeNum 238 235 ); 239 236 }; 240 237 ··· 350 347 </div> 351 348 352 349 {/* Current Progress */} 353 - {isTracking && 354 - nextEpisode?.season_number !== undefined && 355 - nextEpisode?.episode_number !== undefined && ( 356 - <div className="mt-4 flex items-center gap-2 text-sm"> 357 - <div className="flex h-6 w-6 items-center justify-center rounded-full bg-[var(--accent)] text-[#3f2e00] text-xs font-medium"> 358 - {nextEpisode.episode_number} 359 - </div> 360 - <span className="text-[var(--foreground-muted)]"> 361 - Currently at{" "} 362 - <span className="font-medium text-[var(--foreground)]"> 363 - S{nextEpisode.season_number}E 364 - {nextEpisode.episode_number} 365 - </span> 350 + {isTracking && nextEpisode && ( 351 + <div className="mt-4 flex items-center gap-2 text-sm"> 352 + <div className="flex h-6 w-6 items-center justify-center rounded-full bg-[var(--accent)] text-[#3f2e00] text-xs font-medium"> 353 + {nextEpisode.episodeNumber} 354 + </div> 355 + <span className="text-[var(--foreground-muted)]"> 356 + Currently at{" "} 357 + <span className="font-medium text-[var(--foreground)]"> 358 + S{nextEpisode.seasonNumber}E{nextEpisode.episodeNumber} 366 359 </span> 367 - </div> 368 - )} 360 + </span> 361 + </div> 362 + )} 369 363 370 364 {/* Action Buttons */} 371 365 <div className="mt-6 flex flex-wrap gap-3">