feat: new filter added (#4612)
* feat: new filter added * fix: type error * Update packages/ui/v2/core/layouts/BookingLayout.tsx Co-authored-by: Hariom Balhara <hariombalhara@gmail.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
Hariom Balhara
kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
parent
10d3a126aa
commit
6e2e252c49
@@ -28,6 +28,7 @@ const descriptionByStatus: Record<BookingListingStatus, string> = {
|
||||
recurring: "recurring_bookings",
|
||||
past: "past_bookings",
|
||||
cancelled: "cancelled_bookings",
|
||||
unconfirmed: "unconfirmed_bookings",
|
||||
};
|
||||
|
||||
const querySchema = z.object({
|
||||
|
||||
@@ -20,13 +20,14 @@ import SkeletonLoader from "@components/v2/bookings/SkeletonLoader";
|
||||
type BookingListingStatus = inferQueryInput<"viewer.bookings">["status"];
|
||||
type BookingOutput = inferQueryOutput<"viewer.bookings">["bookings"][0];
|
||||
|
||||
const validStatuses = ["upcoming", "recurring", "past", "cancelled"] as const;
|
||||
const validStatuses = ["upcoming", "recurring", "past", "cancelled", "unconfirmed"] as const;
|
||||
|
||||
const descriptionByStatus: Record<BookingListingStatus, string> = {
|
||||
upcoming: "upcoming_bookings",
|
||||
recurring: "recurring_bookings",
|
||||
past: "past_bookings",
|
||||
cancelled: "cancelled_bookings",
|
||||
unconfirmed: "unconfirmed_bookings",
|
||||
};
|
||||
|
||||
const querySchema = z.object({
|
||||
|
||||
@@ -7,7 +7,7 @@ import { ConfirmDialog } from "./confirmDialog";
|
||||
|
||||
interface IWipeMyCalActionButtonProps {
|
||||
bookingsEmpty: boolean;
|
||||
bookingStatus: "upcoming" | "recurring" | "past" | "cancelled";
|
||||
bookingStatus: "upcoming" | "recurring" | "past" | "cancelled" | "unconfirmed";
|
||||
}
|
||||
|
||||
const WipeMyCalActionButton = (props: IWipeMyCalActionButtonProps) => {
|
||||
|
||||
@@ -439,7 +439,7 @@ const loggedInViewerRouter = createProtectedRouter()
|
||||
})
|
||||
.query("bookings", {
|
||||
input: z.object({
|
||||
status: z.enum(["upcoming", "recurring", "past", "cancelled"]),
|
||||
status: z.enum(["upcoming", "recurring", "past", "cancelled", "unconfirmed"]),
|
||||
limit: z.number().min(1).max(100).nullish(),
|
||||
cursor: z.number().nullish(), // <-- "cursor" needs to exist when using useInfiniteQuery, but can be any type
|
||||
}),
|
||||
@@ -495,6 +495,10 @@ const loggedInViewerRouter = createProtectedRouter()
|
||||
{ status: { equals: BookingStatus.REJECTED } },
|
||||
],
|
||||
},
|
||||
unconfirmed: {
|
||||
endTime: { gte: new Date() },
|
||||
status: { equals: BookingStatus.PENDING },
|
||||
},
|
||||
};
|
||||
const bookingListingOrderby: Record<
|
||||
typeof bookingListingByStatus,
|
||||
@@ -504,6 +508,7 @@ const loggedInViewerRouter = createProtectedRouter()
|
||||
recurring: { startTime: "asc" },
|
||||
past: { startTime: "desc" },
|
||||
cancelled: { startTime: "desc" },
|
||||
unconfirmed: { startTime: "asc" },
|
||||
};
|
||||
const passedBookingsFilter = bookingListingFilters[bookingListingByStatus];
|
||||
const orderBy = bookingListingOrderby[bookingListingByStatus];
|
||||
|
||||
@@ -14,12 +14,11 @@ const tabs: (VerticalTabItemProps | HorizontalTabItemProps)[] = [
|
||||
href: "/bookings/upcoming",
|
||||
icon: Icon.FiCalendar,
|
||||
},
|
||||
// TODO: Add filter for unconfimred bookings in a future PR - Out of scope
|
||||
// {
|
||||
// name: "unconfirmed",
|
||||
// href: "/bookings/unconfirmed",
|
||||
// icon: Icon.FiInbox,
|
||||
// },
|
||||
{
|
||||
name: "unconfirmed",
|
||||
href: "/bookings/unconfirmed",
|
||||
icon: Icon.FiInbox,
|
||||
},
|
||||
{
|
||||
name: "recurring",
|
||||
href: "/bookings/recurring",
|
||||
|
||||
Reference in New Issue
Block a user