@@ -38,7 +38,8 @@ const messages = defineMessages('components.RequestModal', {
3838 'Request {seasonCount} {seasonCount, plural, one {Season} other {Seasons}}' ,
3939 requestseasons4k :
4040 'Request {seasonCount} {seasonCount, plural, one {Season} other {Seasons}} in 4K' ,
41- requesttvNotReleased : 'The Air Date is absent or in the future' ,
41+ requesttvNoAirDate : 'The Air Date is absent' ,
42+ requesttvNotReleased : 'The Air Date is in the future' ,
4243 alreadyrequested : 'Already Requested' ,
4344 selectseason : 'Select Season(s)' ,
4445 season : 'Season' ,
@@ -383,11 +384,28 @@ const TvRequestModal = ({
383384
384385 const isOwner = editRequest && editRequest . requestedBy . id === user ?. id ;
385386
386- const seasonsAirDates = ( data ?. seasons ?? [ ] ) . map ( ( season ) => season . airDate ) ;
387-
388- console . log ( seasonsAirDates ) ;
387+ const dateNow = new Date ( ) ;
388+ const selectedSeasonsAirDates = selectedSeasons . map (
389+ ( season ) => data ?. seasons ?. find ( ( s ) => s . seasonNumber === season ) ?. airDate
390+ ) ;
391+ const selectedSeasonsPresentAirDates = selectedSeasonsAirDates
392+ . filter ( ( i ) => i !== undefined )
393+ . map ( ( element ) => new Date ( Date . parse ( element ) ) ) ;
394+ const selectedSeasonsAirDateInTheFuture =
395+ selectedSeasonsPresentAirDates . filter ( ( element ) => element > dateNow ) ;
396+
397+ const selectedSeasonsAirDateNotPresent = selectedSeasonsAirDates . some (
398+ ( element ) => element === undefined
399+ ) ;
389400
390- const airDateInTheFuture = true ;
401+ console . log ( {
402+ selectedSeasons,
403+ selectedSeasonsAirDates,
404+ seasons : data ?. seasons ,
405+ selectedSeasonsAirDateNotPresent,
406+ selectedSeasonsAirDateInTheFuture,
407+ selectedSeasonsPresentAirDates,
408+ } ) ;
391409
392410 return data && ! error && ! data . externalIds . tvdbId && searchModal . show ? (
393411 < SearchByNameModal
@@ -506,10 +524,32 @@ const TvRequestModal = ({
506524 </ p >
507525 ) }
508526 { settings . currentSettings . warnNonReleased &&
509- airDateInTheFuture (
527+ selectedSeasonsAirDateInTheFuture . length > 0 && (
528+ < div className = "mt-6" >
529+ < Alert
530+ title = {
531+ intl . formatMessage ( messages . requesttvNotReleased ) +
532+ ` (
533+ ${ selectedSeasonsAirDateInTheFuture
534+ . map ( ( element ) =>
535+ intl . formatDate ( element , {
536+ year : 'numeric' ,
537+ month : 'long' ,
538+ day : 'numeric' ,
539+ } )
540+ )
541+ . join ( ', ' ) }
542+ )`
543+ }
544+ type = "warning"
545+ />
546+ </ div >
547+ ) }
548+ { settings . currentSettings . warnNonReleased &&
549+ selectedSeasonsAirDates . some ( ( element ) => element == undefined ) && (
510550 < div className = "mt-6" >
511551 < Alert
512- title = { intl . formatMessage ( messages . requesttvNotReleased ) }
552+ title = { intl . formatMessage ( messages . requesttvNoAirDate ) }
513553 type = "warning"
514554 />
515555 </ div >
0 commit comments