diff --git a/src/app/routes/_with_menu/room-booking.index.tsx b/src/app/routes/_with_menu/room-booking.index.tsx index 80ca63e..592a471 100644 --- a/src/app/routes/_with_menu/room-booking.index.tsx +++ b/src/app/routes/_with_menu/room-booking.index.tsx @@ -4,6 +4,10 @@ import { RoomBookingPage } from "@/components/room-booking/timeline/RoomBookingP import { createFileRoute } from "@tanstack/react-router"; import { Helmet } from "react-helmet-async"; +type RoomBookingSearch = { + d?: number; +}; + export const Route = createFileRoute("/_with_menu/room-booking/")({ component: () => ( <> @@ -20,4 +24,16 @@ export const Route = createFileRoute("/_with_menu/room-booking/")({ ), + validateSearch: (search): RoomBookingSearch => { + const unix = + typeof search.d === "number" + ? search.d + : typeof search.d === "string" + ? Number.parseInt(search.d) + : NaN; + if (!Number.isNaN(unix) && unix > Date.UTC(0)) { + return { d: unix }; + } + return {}; + }, }); diff --git a/src/components/room-booking/list/BookingsListPage.tsx b/src/components/room-booking/list/BookingsListPage.tsx index 915d319..491a41a 100644 --- a/src/components/room-booking/list/BookingsListPage.tsx +++ b/src/components/room-booking/list/BookingsListPage.tsx @@ -5,6 +5,7 @@ import Tooltip from "@/components/common/Tooltip.tsx"; import { DeleteBookingModal } from "@/components/room-booking/list/DeleteBookingModal.tsx"; import { clockTime, durationFormatted, msBetween } from "@/lib/utils/dates.ts"; import { useQueryClient } from "@tanstack/react-query"; +import { Link } from "@tanstack/react-router"; import clsx from "clsx"; import React, { useMemo, useState } from "react"; @@ -106,6 +107,16 @@ export function BookingCard({ isPending ? "visible" : "invisible", )} > + + + + + +