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:
Udit Takkar
2022-09-22 07:48:27 +00:00
committed by GitHub
co-authored by Hariom Balhara kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
parent 10d3a126aa
commit 6e2e252c49
5 changed files with 15 additions and 9 deletions
+1
View File
@@ -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({
+2 -1
View File
@@ -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) => {
+6 -1
View File
@@ -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",