Files
pfadi-bussle/pages/admin/index.tsx
Thomas Ruoff 9f3b6bb2e1 remover booker, that's overdosed
It also brings the problem of consolidating bookers over multiple
bookings. The amount of data is not justifying having it in an own
entity
2021-06-21 23:21:23 +02:00

86 lines
3.1 KiB
TypeScript

import React from 'react'
import Link from 'next/link'
import Footer from '../../components/footer'
import Header from '../../components/header'
import { daysFormatFrontend } from '../../helpers/date'
import withSession, { isAdminSession, redirectToLogin } from '../../lib/session'
import { getServerSideRecentBookings } from '../../lib/getServerSideProps'
export const getServerSideProps = withSession(async (context) => {
const { req, res } = context
const adminUser = isAdminSession(req)
if (!adminUser) {
redirectToLogin(req, res)
return { props: {} }
}
const serverSideRecentBookingProps = await getServerSideRecentBookings()
return {
props: {
...serverSideRecentBookingProps.props,
user: adminUser,
},
}
})
export default function AdminRecentBookings({ bookings }) {
return (
<>
<Header />
<main className="main py-3">
{bookings.map((booking: any) => (
<div
key={booking.uuid}
className="mb-6 bg-white shadow overflow-hidden sm:rounded-lg"
>
<div className="px-4 py-5 sm:px-6">
<h3 className="text-lg leading-6 font-medium text-gray-900">
<Link href={`/admin/booking/${booking.uuid}`}>
<a className="link">Booking {booking.uuid}</a>
</Link>
</h3>
<p className="mt-1 max-w-2xl text-sm text-gray-500">
Last updated {new Date(booking.updatedAt).toLocaleTimeString()}
</p>
</div>
<div className="border-t border-gray-200">
<dl>
<div className="bg-gray-100 px-2 py-3 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt className="text-sm font-medium text-gray-500">
Buchungszeitraum
</dt>
<dd className="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
{daysFormatFrontend(booking.days)}
</dd>
</div>
<div className="bg-white px-2 py-3 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt className="text-sm font-medium text-gray-500">Bucher</dt>
<dd className="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
{booking.name}
</dd>
</div>
<div className="bg-gray-100 px-2 py-3 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt className="text-sm font-medium text-gray-500">Email</dt>
<dd className="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
{booking.email}
</dd>
</div>
<div className="bg-white px-2 py-3 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
<dt className="text-sm font-medium text-gray-500">Status</dt>
<dd className="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
{booking.status}
</dd>
</div>
</dl>
</div>
</div>
))}
</main>
<Footer />
</>
)
}