diff --git a/app/(app)/projects/[id]/uptime/add-monitor-form.tsx b/app/(app)/projects/[id]/uptime/add-monitor-form.tsx
index 3afb1c5a..bbacce9c 100644
--- a/app/(app)/projects/[id]/uptime/add-monitor-form.tsx
+++ b/app/(app)/projects/[id]/uptime/add-monitor-form.tsx
@@ -13,7 +13,17 @@ const TYPE_HINT: Record = {
tcp: "host:port — up when the port accepts a connection.",
};
-export function AddMonitorForm({ projectId }: { projectId: string }) {
+export function AddMonitorForm({
+ projectId,
+ defaultName = "",
+ defaultTarget = "",
+ defaultEmail = "",
+}: {
+ projectId: string;
+ defaultName?: string;
+ defaultTarget?: string;
+ defaultEmail?: string;
+}) {
const router = useRouter();
const [open, setOpen] = useState(false);
const [type, setType] = useState("http");
@@ -78,6 +88,7 @@ export function AddMonitorForm({ projectId }: { projectId: string }) {
@@ -89,6 +100,7 @@ export function AddMonitorForm({ projectId }: { projectId: string }) {
@@ -134,6 +146,7 @@ export function AddMonitorForm({ projectId }: { projectId: string }) {
diff --git a/app/(app)/projects/[id]/uptime/page.tsx b/app/(app)/projects/[id]/uptime/page.tsx
index 2e293d53..38fce4c3 100644
--- a/app/(app)/projects/[id]/uptime/page.tsx
+++ b/app/(app)/projects/[id]/uptime/page.tsx
@@ -59,11 +59,22 @@ export default async function ProjectUptimePage({
const { data: project } = await supabase
.from("projects")
- .select("id")
+ .select("id, url")
.eq("id", id)
.maybeSingle();
if (!project) notFound();
+ // Prefill the add-monitor form with what we already know about the project.
+ const {
+ data: { user },
+ } = await supabase.auth.getUser();
+ let domain = project.url as string;
+ try {
+ domain = new URL(project.url).host;
+ } catch {
+ /* keep raw url as the label */
+ }
+
const { data: monitorsData } = await supabase
.from("monitors")
.select(
@@ -92,7 +103,12 @@ export default async function ProjectUptimePage({
down — and again when it recovers. HTTP, keyword, SSL-expiry, and TCP.
-
+
{/* Monitors */}