Skip to content

Commit 1b6e19d

Browse files
committed
feat(tvrequestmodal): warning for no air date or date in the future
1 parent 9168ed5 commit 1b6e19d

1 file changed

Lines changed: 47 additions & 7 deletions

File tree

src/components/RequestModal/TvRequestModal.tsx

Lines changed: 47 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)