page.tsx 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. "use client";
  2. import { useState, type FormEvent } from "react";
  3. import { PageHero } from "@/components/marketing/page-hero";
  4. import { PlaceholderNotice } from "@/components/marketing/placeholder-notice";
  5. import { Button } from "@/components/ui/button";
  6. import { Input } from "@/components/ui/input";
  7. export default function ContactPage() {
  8. const [sent, setSent] = useState(false);
  9. function onSubmit(e: FormEvent<HTMLFormElement>) {
  10. e.preventDefault();
  11. // Email delivery (mittera.eu) wires later — UI is real now.
  12. setSent(true);
  13. }
  14. return (
  15. <>
  16. <PageHero
  17. eyebrow="Contact"
  18. title="Get in touch"
  19. description="Partnerships, builder access, or general questions. The form below is ready; message delivery will connect in a later pass."
  20. />
  21. <section className="section-pad">
  22. <div className="mx-auto max-w-lg px-5 lg:px-8">
  23. <PlaceholderNotice className="mb-8">
  24. Submit is stubbed for now — you will see a confirmation, but no
  25. email is sent yet.
  26. </PlaceholderNotice>
  27. {sent ? (
  28. <div className="rounded-2xl border border-proof/30 bg-proof-muted p-8 text-sm leading-relaxed">
  29. Thanks — your message is noted in this preview. Live delivery
  30. lands when email is wired.
  31. </div>
  32. ) : (
  33. <form onSubmit={onSubmit} className="space-y-5">
  34. <div>
  35. <label
  36. htmlFor="name"
  37. className="mb-1.5 block text-sm font-medium"
  38. >
  39. Name
  40. </label>
  41. <Input id="name" name="name" required autoComplete="name" />
  42. </div>
  43. <div>
  44. <label
  45. htmlFor="email"
  46. className="mb-1.5 block text-sm font-medium"
  47. >
  48. Email
  49. </label>
  50. <Input
  51. id="email"
  52. name="email"
  53. type="email"
  54. required
  55. autoComplete="email"
  56. />
  57. </div>
  58. <div>
  59. <label
  60. htmlFor="message"
  61. className="mb-1.5 block text-sm font-medium"
  62. >
  63. Message
  64. </label>
  65. <textarea
  66. id="message"
  67. name="message"
  68. required
  69. rows={5}
  70. className="flex w-full rounded-md border border-border bg-input px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent"
  71. />
  72. </div>
  73. <Button type="submit" size="lg" className="w-full sm:w-auto">
  74. Send message
  75. </Button>
  76. </form>
  77. )}
  78. </div>
  79. </section>
  80. </>
  81. );
  82. }