Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 39 additions & 2 deletions app/(shell)/clients/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { Metadata } from "next";
import Link from "next/link";
import { UserPlus, Upload, ArrowRight } from "lucide-react";
import { UserPlus, Upload, ArrowRight, QrCode, ExternalLink } from "lucide-react";
import { PageHeader } from "@/components/ui/PageHeader";

export const metadata: Metadata = {
Expand Down Expand Up @@ -37,6 +37,10 @@ const ACTIONS = [
},
];

const PULSE_BASE_URL =
process.env.PULSE_BASE_URL ?? "https://relay-pulse.relaylaunch-ops.workers.dev";
const SIGNUP_QR_URL = `${PULSE_BASE_URL.replace(/\/$/, "")}/intake/qr`;

export default function ClientsHubPage() {
return (
<div className="mx-auto max-w-4xl space-y-6 p-6">
Expand All @@ -60,14 +64,47 @@ export default function ClientsHubPage() {
<ArrowRight
size={16}
aria-hidden
className="text-stone-500 transition-transform group-hover:translate-x-0.5 group-hover:text-amber-300"
className="text-stone-400 transition-transform group-hover:translate-x-0.5 group-hover:text-amber-300"
/>
</span>
<span className="text-sm text-stone-400">{body}</span>
</Link>
))}
</div>

<section className="rounded-lg border border-teal-500/30 bg-teal-500/10 p-6">
<div className="flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between">
<div className="flex gap-3">
<span className="inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-md bg-teal-500/10 text-teal-300">
<QrCode size={20} aria-hidden />
</span>
<div>
<h2 className="text-base font-semibold text-stone-100">
Get your sign-up QR
</h2>
<p className="mt-1 text-sm leading-6 text-stone-400">
Print this for the front desk or share it online. It opens the
Pulse intake form, adds the person to the client roster, and
hands them to the existing booking page.
</p>
<p className="mt-2 text-xs leading-5 text-stone-400">
Relay captures the intake. Booking still happens in the current
booking system.
</p>
</div>
</div>
<a
href={SIGNUP_QR_URL}
target="_blank"
rel="noreferrer"
className="inline-flex items-center justify-center gap-2 rounded-md bg-amber-500 px-4 py-2 text-sm font-medium text-stone-950 transition-colors hover:bg-amber-400 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-amber-400 focus-visible:ring-offset-2 focus-visible:ring-offset-stone-900"
>
Open QR card
<ExternalLink size={16} aria-hidden />
</a>
</div>
</section>

<p className="text-sm text-stone-400">
Looking for guided client workspaces?{" "}
<Link
Expand Down