import Link from 'next/link'; import { useRouter } from 'next/router'; import { Info } from 'src/interfaces/shared/title'; import { formatMoney, formatTime } from 'src/utils/helpers'; import styles from 'src/styles/modules/components/title/info.module.scss'; type Props = { info: Info; className: string; }; const Info = ({ info, className }: Props) => { const router = useRouter(); const { titleId } = router.query; const { boxOffice, details, meta, keywords, technicalSpecs, accolades } = info; return (
{meta.infoEpisode && (

Episode info

{meta.infoEpisode.numSeason && (

Season: {meta.infoEpisode.numSeason}

)} {meta.infoEpisode.numEpisode && (

Episode: {meta.infoEpisode.numEpisode}

)}

Series: {meta.infoEpisode.series.title} {' '} ({meta.infoEpisode.series.startYear}- {meta.infoEpisode.series.endYear || 'present'})

{meta.infoEpisode.prevId && (

Go to previous episode

)} {meta.infoEpisode.nextId && (

Go to next episode

)}
)} {meta.infoSeries && (

Series info

Total Seasons: {meta.infoSeries.seasons.length}

Total Years: {meta.infoSeries.years.length}

Total Episodes: {meta.infoSeries.totalEpisodes}

See all Episodes

)}

Accolades

{accolades.topRating && (

Top rated (#{accolades.topRating})

)} {accolades.awards && (

Won {accolades.awards.wins} {accolades.awards.name} (out of {accolades.awards.nominations} nominations)

)}

{accolades.wins} wins and {accolades.nominations} nominations in total

View all awards

{!!keywords.total && (

Keywords

)} {!!Object.keys(details).length && (

Details

{details.releaseDate && (

Release date: ({details.releaseDate.country.text})

)} {details.countriesOfOrigin && (

Countries of origin: {details.countriesOfOrigin.map((country, i) => ( {!!i && ', '} {country.text} ))}

)} {details.officialSites && (

Official sites: {details.officialSites.sites.map((site, i) => ( {!!i && ', '} {site.name} ))}

)} {details.languages?.length && (

Languages: {details.languages.map((lang, i) => ( {!!i && ', '} {lang.text} ))}

)} {details.alsoKnownAs && (

Also known as: {details.alsoKnownAs}

)} {details.filmingLocations?.total && (

Filming locations: {details.filmingLocations.locations.map((loc, i) => ( {!!i && ', '} {loc} ))}

)} {!!details.production?.total && (

Production companies: {details.production.companies.map((co, i) => ( {!!i && ', '} {co.name} ))}

)}
)} {!!Object.keys(boxOffice).length && (

Box office

{boxOffice.budget && (

Budget: {formatMoney( boxOffice.budget.amount, boxOffice.budget.currency )}

)} {boxOffice.grossUs && (

Gross US & Canada: {formatMoney( boxOffice.grossUs.amount, boxOffice.grossUs.currency )}

)} {boxOffice.openingGrossUs && (

Opening weekend US & Canada: {formatMoney( boxOffice.openingGrossUs.amount, boxOffice.openingGrossUs.currency )} ({boxOffice.openingGrossUs.date})

)} {boxOffice.gross && (

Gross worldwide: {formatMoney( boxOffice.gross.amount, boxOffice.gross.currency )}

)}
)} {!!Object.keys(technicalSpecs).length && (

Technical specs

{technicalSpecs.runtime && (

Runtime: {formatTime(technicalSpecs.runtime)}

)} {!!technicalSpecs.colorations?.length && (

Color: {technicalSpecs.colorations.map((color, i) => ( {!!i && ', '} {color.name} ))}

)} {!!technicalSpecs.soundMixes?.length && (

Sound mix: {technicalSpecs.soundMixes?.map((sound, i) => ( {!!i && ', '} {sound.name} ))}

)} {!!technicalSpecs.aspectRatios?.length && (

Aspect ratio: {technicalSpecs.aspectRatios.join(', ')}

)}
)}
); }; export default Info;