diff --git a/frontend/src/pages/VODs.jsx b/frontend/src/pages/VODs.jsx index fb877aa7..d391b887 100644 --- a/frontend/src/pages/VODs.jsx +++ b/frontend/src/pages/VODs.jsx @@ -343,224 +343,251 @@ const VODModal = ({ vod, opened, onClose }) => { size="xl" centered > - - {loadingDetails && ( - - - Loading additional details... - - )} - - {/* Backdrop image if available */} + + {/* Backdrop image as background */} {displayVOD.backdrop_path && displayVOD.backdrop_path.length > 0 && ( - + <> {`${displayVOD.name} - - )} - - {/* Movie poster and basic info */} - - {/* Use movie_image or logo */} - {(displayVOD.movie_image || displayVOD.logo?.url) ? ( - - {displayVOD.name} - - ) : ( + {/* Overlay for readability */} - - - )} - - - {displayVOD.name} - - {/* Original name if different */} - {displayVOD.o_name && displayVOD.o_name !== displayVOD.name && ( - - Original: {displayVOD.o_name} - + /> + + )} + {/* Modal content above backdrop */} + + + {loadingDetails && ( + + + Loading additional details... + )} - - {displayVOD.year && {displayVOD.year}} - {displayVOD.duration && {formatDuration(displayVOD.duration)}} - {displayVOD.rating && {displayVOD.rating}} - {displayVOD.age && {displayVOD.age}} - Movie - - - {/* Release date */} - {displayVOD.release_date && ( - - Release Date: {displayVOD.release_date} - - )} - - {displayVOD.genre && ( - - Genre: {displayVOD.genre} - - )} - - {displayVOD.director && ( - - Director: {displayVOD.director} - - )} - - {displayVOD.actors && ( - - Cast: {displayVOD.actors} - - )} - - {displayVOD.country && ( - - Country: {displayVOD.country} - - )} - - {/* Description */} - {displayVOD.description && ( - - Description - - {displayVOD.description} - - - )} - - {/* Watch Trailer button at top */} - {displayVOD.youtube_trailer && ( - - )} - {/* Removed Play Movie button from here */} - - - {/* Provider Information & Play Button Row */} - {(vod?.m3u_account || true) && ( - - {vod?.m3u_account && ( - - IPTV Provider - - - {vod.m3u_account.name} - - {vod.m3u_account.account_type && ( - - {vod.m3u_account.account_type === 'XC' ? 'Xtream Codes' : 'Standard M3U'} - - )} - - - )} - - - )} - {/* Technical Details */} - {(displayVOD.bitrate || displayVOD.video || displayVOD.audio) && ( - - Technical Details: - {displayVOD.bitrate && displayVOD.bitrate > 0 && ( - - Bitrate: {displayVOD.bitrate} kbps - + + + {displayVOD.name} + + {/* Original name if different */} + {displayVOD.o_name && displayVOD.o_name !== displayVOD.name && ( + + Original: {displayVOD.o_name} + + )} + + + {displayVOD.year && {displayVOD.year}} + {displayVOD.duration && {formatDuration(displayVOD.duration)}} + {displayVOD.rating && {displayVOD.rating}} + {displayVOD.age && {displayVOD.age}} + Movie + + + {/* Release date */} + {displayVOD.release_date && ( + + Release Date: {displayVOD.release_date} + + )} + + {displayVOD.genre && ( + + Genre: {displayVOD.genre} + + )} + + {displayVOD.director && ( + + Director: {displayVOD.director} + + )} + + {displayVOD.actors && ( + + Cast: {displayVOD.actors} + + )} + + {displayVOD.country && ( + + Country: {displayVOD.country} + + )} + + {/* Description */} + {displayVOD.description && ( + + Description + + {displayVOD.description} + + + )} + + {/* Watch Trailer button at top */} + {displayVOD.youtube_trailer && ( + + )} + {/* Removed Play Movie button from here */} + + + {/* Provider Information & Play Button Row */} + {(vod?.m3u_account || true) && ( + + {vod?.m3u_account && ( + + IPTV Provider + + + {vod.m3u_account.name} + + {vod.m3u_account.account_type && ( + + {vod.m3u_account.account_type === 'XC' ? 'Xtream Codes' : 'Standard M3U'} + + )} + + + )} + + )} - {displayVOD.video && Object.keys(displayVOD.video).length > 0 && ( - - Video:{' '} - {displayVOD.video.codec_long_name || displayVOD.video.codec_name} - {displayVOD.video.profile ? ` (${displayVOD.video.profile})` : ''} - {displayVOD.video.width && displayVOD.video.height - ? `, ${displayVOD.video.width}x${displayVOD.video.height}` - : ''} - {displayVOD.video.display_aspect_ratio - ? `, Aspect Ratio: ${displayVOD.video.display_aspect_ratio}` - : ''} - {displayVOD.video.bit_rate - ? `, Bitrate: ${Math.round(Number(displayVOD.video.bit_rate) / 1000)} kbps` - : ''} - {displayVOD.video.r_frame_rate - ? `, Frame Rate: ${displayVOD.video.r_frame_rate.replace('/', '/')} fps` - : ''} - {displayVOD.video.tags?.encoder - ? `, Encoder: ${displayVOD.video.tags.encoder}` - : ''} - - )} - {displayVOD.audio && Object.keys(displayVOD.audio).length > 0 && ( - - Audio:{' '} - {displayVOD.audio.codec_long_name || displayVOD.audio.codec_name} - {displayVOD.audio.profile ? ` (${displayVOD.audio.profile})` : ''} - {displayVOD.audio.channel_layout - ? `, Channels: ${displayVOD.audio.channel_layout}` - : displayVOD.audio.channels - ? `, Channels: ${displayVOD.audio.channels}` - : ''} - {displayVOD.audio.sample_rate - ? `, Sample Rate: ${displayVOD.audio.sample_rate} Hz` - : ''} - {displayVOD.audio.bit_rate - ? `, Bitrate: ${Math.round(Number(displayVOD.audio.bit_rate) / 1000)} kbps` - : ''} - {displayVOD.audio.tags?.handler_name - ? `, Handler: ${displayVOD.audio.tags.handler_name}` - : ''} - + {/* Technical Details */} + {(displayVOD.bitrate || displayVOD.video || displayVOD.audio) && ( + + Technical Details: + {displayVOD.bitrate && displayVOD.bitrate > 0 && ( + + Bitrate: {displayVOD.bitrate} kbps + + )} + {displayVOD.video && Object.keys(displayVOD.video).length > 0 && ( + + Video:{' '} + {displayVOD.video.codec_long_name || displayVOD.video.codec_name} + {displayVOD.video.profile ? ` (${displayVOD.video.profile})` : ''} + {displayVOD.video.width && displayVOD.video.height + ? `, ${displayVOD.video.width}x${displayVOD.video.height}` + : ''} + {displayVOD.video.display_aspect_ratio + ? `, Aspect Ratio: ${displayVOD.video.display_aspect_ratio}` + : ''} + {displayVOD.video.bit_rate + ? `, Bitrate: ${Math.round(Number(displayVOD.video.bit_rate) / 1000)} kbps` + : ''} + {displayVOD.video.r_frame_rate + ? `, Frame Rate: ${displayVOD.video.r_frame_rate.replace('/', '/')} fps` + : ''} + {displayVOD.video.tags?.encoder + ? `, Encoder: ${displayVOD.video.tags.encoder}` + : ''} + + )} + {displayVOD.audio && Object.keys(displayVOD.audio).length > 0 && ( + + Audio:{' '} + {displayVOD.audio.codec_long_name || displayVOD.audio.codec_name} + {displayVOD.audio.profile ? ` (${displayVOD.audio.profile})` : ''} + {displayVOD.audio.channel_layout + ? `, Channels: ${displayVOD.audio.channel_layout}` + : displayVOD.audio.channels + ? `, Channels: ${displayVOD.audio.channels}` + : ''} + {displayVOD.audio.sample_rate + ? `, Sample Rate: ${displayVOD.audio.sample_rate} Hz` + : ''} + {displayVOD.audio.bit_rate + ? `, Bitrate: ${Math.round(Number(displayVOD.audio.bit_rate) / 1000)} kbps` + : ''} + {displayVOD.audio.tags?.handler_name + ? `, Handler: ${displayVOD.audio.tags.handler_name}` + : ''} + + )} + )} + {/* YouTube trailer if available */} - )} - {/* YouTube trailer if available */} - + + ); };