simplify `/bookings/[status]` logic (#845)

pull/843/head^2
Alex Johansson 2021-10-02 14:29:26 +01:00 committed by GitHub
parent 342ea3e5d2
commit eb93e778bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 14 deletions

View File

@ -11,7 +11,7 @@ import BookingListItem from "@components/booking/BookingListItem";
type BookingListingStatus = inferQueryInput<"viewer.bookings">["status"];
const descriptionByStatus = {
const descriptionByStatus: Record<BookingListingStatus, string> = {
upcoming: "As soon as someone books a time with you it will show up here.",
past: "Your past bookings will show up here.",
cancelled: "Your cancelled bookings will show up here.",
@ -41,17 +41,13 @@ export default function Bookings() {
</table>
</div>
)}
empty={
status
? () => (
<EmptyScreen
Icon={CalendarIcon}
headline={`No ${status} bookings, yet`}
description={`You have no ${status} bookings. ${descriptionByStatus[status]}`}
/>
)
: undefined
}
empty={() => (
<EmptyScreen
Icon={CalendarIcon}
headline={`No ${status} bookings, yet`}
description={`You have no ${status} bookings. ${descriptionByStatus[status]}`}
/>
)}
/>
</div>
</div>

View File

@ -22,11 +22,11 @@ export const viewerRouter = createProtectedRouter()
})
.query("bookings", {
input: z.object({
status: z.enum(["upcoming", "past", "cancelled"]).optional(),
status: z.enum(["upcoming", "past", "cancelled"]),
}),
async resolve({ ctx, input }) {
const { prisma, user } = ctx;
const bookingListingByStatus = input.status || "upcoming";
const bookingListingByStatus = input.status;
const bookingListingFilters: Record<typeof bookingListingByStatus, Prisma.BookingWhereInput[]> = {
upcoming: [{ endTime: { gte: new Date() } }],
past: [{ endTime: { lte: new Date() } }],