);
diff --git a/src/features/staff/components/appointment-status-actions.tsx b/src/features/staff/components/appointment-status-actions.tsx
index 0f59bf1..bd90d96 100644
--- a/src/features/staff/components/appointment-status-actions.tsx
+++ b/src/features/staff/components/appointment-status-actions.tsx
@@ -57,14 +57,17 @@ export function AppointmentStatusActions({
actions = DEFAULT_ACTIONS,
layout = "wrap",
rescheduleUrl,
+ rescheduleLabel = "Reschedule",
}: {
appointmentId: string;
status: RawStatus;
actions?: AppointmentActionSet;
/** "stack" renders one full-width button per row (used by both Current Appointment and Appointment Details); "wrap" (default) keeps the original inline small buttons. */
layout?: "wrap" | "stack";
- /** When given, renders a "Reschedule" link right after the primary status button and before Mark No-Show/Cancel — the caller (Appointment Details) decides whether the status is actually reschedulable, this component just renders what it's given. */
+ /** When given, renders a reschedule link right after the primary status button and before Mark No-Show/Cancel — the caller (Appointment Details) decides whether the status is actually reschedulable, this component just renders what it's given. */
rescheduleUrl?: string;
+ /** Owner's variant reads "Reschedule / Reassign" (they can also hand the appointment to a different staff member); staff's own reschedule can't reassign anyone, so it stays plain "Reschedule". */
+ rescheduleLabel?: string;
}) {
const router = useRouter();
const [isPending, startTransition] = useTransition();
@@ -175,7 +178,7 @@ export function AppointmentStatusActions({
)}
{rescheduleUrl && (
)}
{status === "CONFIRMED" && (