{fromDate} to {toDate}
-diff --git a/src/app/(owner)/owner/reports/page.tsx b/src/app/(owner)/owner/reports/page.tsx index 5e0a980..d065a18 100644 --- a/src/app/(owner)/owner/reports/page.tsx +++ b/src/app/(owner)/owner/reports/page.tsx @@ -3,6 +3,7 @@ import Link from "next/link"; import { redirect } from "next/navigation"; import { auth } from "@/auth"; import { Card } from "@/components/ui/card"; +import { TopNav } from "@/components/navigation/top-nav"; import { prisma } from "@/lib/db/prisma"; import { hasPermission } from "@/lib/auth/permissions"; import { Permission } from "@/generated/prisma/enums"; @@ -70,132 +71,132 @@ export default async function OwnerReportsPage({ ]); return ( -
{fromDate} to {toDate}
-No completed appointments in this range.
- ) : ( - serviceReport.map((s) => ( -{s.name}
-{s.timesCompleted} completed
-No appointments in this range.
- ) : ( - staffReport.map((s) => ( -{s.name}
-- {s.completed} completed · {s.cancelled} cancelled · {s.noShow} no-show -
-{c.name}
-{c.visits} visit{c.visits === 1 ? "" : "s"}
+ {serviceReport.length === 0 ? ( +No completed appointments in this range.
+ ) : ( + serviceReport.map((s) => ( +{s.name}
+{s.timesCompleted} completed
+No appointments in this range.
+ ) : ( + staffReport.map((s) => ( +{s.name}
++ {s.completed} completed · {s.cancelled} cancelled · {s.noShow} no-show +
+{c.name}
+{c.visits} visit{c.visits === 1 ? "" : "s"}
++ No staff match “{q}”. +
+ ) : ( + staff.map((s) => ( + +{s.user.name}
+{s.user.email}
++ {s.role.name === "Administrator" && ( + + )} + {s.role.name} + {s.status === "INACTIVE" && · Inactive} + {s.status === "ACTIVE" && s.invitation && !s.invitation.acceptedAt && ( + · Invite Pending + )} +
+- No staff match “{q}”. -
- ) : ( - staff.map((s) => ( - -{s.user.name}
-{s.user.email}
-- {s.role.name === "Administrator" && ( - - )} - {s.role.name} - {s.status === "INACTIVE" && · Inactive} - {s.status === "ACTIVE" && s.invitation && !s.invitation.acceptedAt && ( - · Invite Pending - )} -
-- One-way sync: {branding.name} stays the source of truth, and your confirmed appointments are pushed to - Google Calendar. Nothing is ever imported back from Google. + {/* {branding.name} */} + NextChair is where your bookings are managed. Connect your Google Calendar to automatically add confirmed appointments to your personal calendar.