Phase 7
This commit is contained in:
189 files changed
+9873
-655
No files matched your search
@@ -9,5 +9,9 @@
|
||||
* the bottom navigation" allowance.
|
||||
*/
|
||||
export default function RescheduleLayout({ children }: { children: React.ReactNode }) {
|
||||
return <div className="min-h-screen bg-stone">{children}</div>;
|
||||
return (
|
||||
<div id="main-content" className="min-h-screen bg-stone">
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -15,21 +15,28 @@ export const dynamic = "force-dynamic";
|
||||
|
||||
const NON_RESCHEDULABLE = new Set(["COMPLETED", "CANCELLED", "NO_SHOW", "IN_PROGRESS"]);
|
||||
|
||||
export default async function RescheduleAppointmentPage({ params }: { params: Promise<{ id: string }> }) {
|
||||
export default async function RescheduleAppointmentPage({
|
||||
params,
|
||||
searchParams,
|
||||
}: {
|
||||
params: Promise<{ id: string }>;
|
||||
searchParams: Promise<{ token?: string }>;
|
||||
}) {
|
||||
const { id } = await params;
|
||||
const { token } = await searchParams;
|
||||
const appointment = await getAppointmentById(prisma, id);
|
||||
if (!appointment) notFound();
|
||||
|
||||
const session = await auth();
|
||||
try {
|
||||
assertCanAccessAppointment(appointment, session?.user?.id);
|
||||
await assertCanAccessAppointment(prisma, appointment, { sessionUserId: session?.user?.id, guestToken: token });
|
||||
} catch (error) {
|
||||
if (error instanceof PermissionDeniedError) notFound();
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (NON_RESCHEDULABLE.has(appointment.status)) {
|
||||
redirect(`/appointments/${id}`);
|
||||
redirect(`/appointments/${id}${token ? `?token=${token}` : ""}`);
|
||||
}
|
||||
|
||||
const business = await getPrimaryBusiness();
|
||||
@@ -40,9 +47,10 @@ export default async function RescheduleAppointmentPage({ params }: { params: Pr
|
||||
appointmentId: id,
|
||||
staffId: selection.staffId,
|
||||
startAt: selection.startAt,
|
||||
guestToken: token,
|
||||
});
|
||||
if (result.success) {
|
||||
redirect(`/appointments/${id}`);
|
||||
redirect(`/appointments/${id}${token ? `?token=${token}` : ""}`);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user