29 lines
721 B
TypeScript
29 lines
721 B
TypeScript
import { GetServerSideProps, NextPage } from 'next'
|
|
|
|
import Layout from '../../components/layout'
|
|
import { findAirportByIata } from '../../models/airport'
|
|
import Airport from '../../types/airport'
|
|
|
|
interface Props {
|
|
airport: Airport | undefined
|
|
}
|
|
|
|
const Page: NextPage<Props> = ({ airport }) => {
|
|
return <Layout>
|
|
<h1 className='text-2xl'>Airport: {airport.name}</h1>
|
|
<pre className='mt-10 text-gray-500 text-sm'>{JSON.stringify(airport, undefined, 2)}</pre>
|
|
</Layout>
|
|
}
|
|
|
|
export const getServerSideProps: GetServerSideProps = async ({ params }) => {
|
|
const { iata } = params
|
|
const airport = await findAirportByIata(iata.toString())
|
|
|
|
return {
|
|
props: {
|
|
airport,
|
|
}
|
|
}
|
|
}
|
|
|
|
export default Page
|