"use client"; import { useActionState, useState } from "react"; import { suggestSlug } from "@/lib/slug"; import { addBusinessAction, type AddBusinessState } from "./actions"; const initialState: AddBusinessState = { error: null }; export function AddBusinessForm() { const [state, formAction, isPending] = useActionState(addBusinessAction, initialState); const [slug, setSlug] = useState(""); const [slugTouched, setSlugTouched] = useState(false); return (
{ if (!slugTouched) setSlug(suggestSlug(e.target.value)); }} className="mt-1 w-full rounded-md border border-line px-3 py-2 text-sm" />
{ setSlugTouched(true); setSlug(e.target.value); }} className="mt-1 w-full rounded-md border border-line px-3 py-2 font-mono text-sm" />

Used for the container name, database name, and stack directory — lowercase letters, numbers, and hyphens only.

Must already point at this server’s IP before Caddy can issue a certificate for it.

{state.error && (

{state.error}

)}
); }