From a4ce2ce413c1193ce05ca546f5cd0691d3732f71 Mon Sep 17 00:00:00 2001 From: shrt Date: Tue, 8 Jul 2025 18:44:22 +0200 Subject: [PATCH] added form submission --- docker-compose.yml | 24 ------------------------ src/app/(PAGES)/contact/page.tsx | 6 +++++- src/components/contact-form.tsx | 19 +++++++++++++------ src/lib/actions.ts | 13 +++++++++++++ 4 files changed, 31 insertions(+), 31 deletions(-) delete mode 100644 docker-compose.yml create mode 100644 src/lib/actions.ts diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 54363de..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: "3.8" -services: - nextjs: - build: . - deploy: - update_config: - parallelism: 1 - delay: 5s - order: start-first - container_name: pablo.shortman.me - restart: always - labels: - - "traefik.enable=true" - - "traefik.http.routers.pablo-shortman-me.rule=Host(`pablo.shortman.me`)" - - "traefik.http.routers.pablo-shortman-me.entrypoints=websecure" - - "traefik.http.services.pablo-shortman-me.loadbalancer.server.port=3000" - - "traefik.http.routers.pablo-shortman-me.tls.certresolver=myresolver" - expose: - - "3000" - networks: - - webproxy -networks: - webproxy: - external: true diff --git a/src/app/(PAGES)/contact/page.tsx b/src/app/(PAGES)/contact/page.tsx index 871f058..a121518 100644 --- a/src/app/(PAGES)/contact/page.tsx +++ b/src/app/(PAGES)/contact/page.tsx @@ -2,7 +2,11 @@ import React from "react"; import Contact from "@/components/setions/contact"; function ContactPage() { - return ; + return ( +
+ +
+ ); } export default ContactPage; diff --git a/src/components/contact-form.tsx b/src/components/contact-form.tsx index 0835283..72b1f22 100644 --- a/src/components/contact-form.tsx +++ b/src/components/contact-form.tsx @@ -24,6 +24,7 @@ import { SelectValue, } from "@/components/ui/select"; import { cn } from "@/lib/utils"; +import { sendDiscordNotification } from "@/lib/actions"; const formSchema = z.object({ name: z.string().min(2).max(50), @@ -39,10 +40,16 @@ function ContactForm() { }); // 2. Define a submit handler. - function onSubmit(values: z.infer) { - // Do something with the form values. - // ✅ This will be type-safe and validated. - console.log(values); + async function onSubmit({ + email, + message, + name, + budget, + }: z.infer) { + await sendDiscordNotification( + `📬 **New Lead Submission**\n*Source*: pablo.shortman.me \n**Name**: ${name}\n**Email**: ${email}\n**Message**: ${message} \n**Budget**: ${budget} $` + ); + form.reset(); } return ( @@ -98,8 +105,8 @@ function ContactForm() { - {"less then $2k"} - {"more then $4k"} + {"less then $1k"} + {"more then $3k"} {"more then $6k"} diff --git a/src/lib/actions.ts b/src/lib/actions.ts new file mode 100644 index 0000000..3eb4c3e --- /dev/null +++ b/src/lib/actions.ts @@ -0,0 +1,13 @@ +"use server"; + +export async function sendDiscordNotification(message: string) { + const webhookUrl = process.env.DISCORD_WEBHOOK_URL; + + await fetch(webhookUrl!, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + content: message, + }), + }); +}