diff --git a/app/contact/page.tsx b/app/contact/page.tsx index f2e7df7..30cad14 100644 --- a/app/contact/page.tsx +++ b/app/contact/page.tsx @@ -1,10 +1,11 @@ "use client" import { BuildingOffice2Icon, EnvelopeIcon, PhoneIcon } from "@heroicons/react/24/outline" -import { FormEvent, useState } from "react" +import { FormEvent, use, useState } from "react" export default function Contact() { const [isSent, setIsSent] = useState(false) const [isLoading, setIsLoading] = useState(false) + const [error, setError] = useState(null) async function handleSubmit(event: FormEvent) { event.preventDefault() @@ -16,8 +17,7 @@ export default function Contact() { } setIsLoading(true) - - await fetch("/api/send", { + fetch("/api/send", { method: "POST", headers: { "Content-Type": "application/json", @@ -30,12 +30,20 @@ export default function Contact() { phoneNumber: form.phoneNumber.value, }), }) - - form.reset() - setIsSent(true) - setIsLoading(false) + .then((response) => { + if (!response.ok) { + throw new Error("Failed to send message") + } + form.reset() + setIsSent(true) + }) + .catch((error) => { + setError(error.message) + }) + .finally(() => { + setIsLoading(false) + }) } - return (
{isSent && ( @@ -50,11 +58,11 @@ export default function Contact() {
)}
-
+

Get in touch

- Feel free to contact me for any questions or inquiries. we will get back to you as soon as possible. + Feel free to contact us for any questions or inquiries. we will get back to you as soon as possible.

@@ -93,7 +101,7 @@ export default function Contact() {
-
+
@@ -107,7 +115,7 @@ export default function Contact() { name="firstName" id="firstName" autoComplete="given-name" - className="block w-full rounded-md border-0 bg-white/5 px-3.5 py-2 text-primary-800 shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-primary-500 sm:text-sm sm:leading-6" + className="block w-full rounded-md border-0 px-3.5 py-2 text-primary-800 shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-primary-500 sm:text-sm sm:leading-6" />
@@ -122,7 +130,7 @@ export default function Contact() { name="lastName" id="lastName" autoComplete="family-name" - className="block w-full rounded-md border-0 bg-white/5 px-3.5 py-2 text-primary-800 shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-primary-500 sm:text-sm sm:leading-6" + className="block w-full rounded-md border-0 px-3.5 py-2 text-primary-800 shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-primary-500 sm:text-sm sm:leading-6" />
@@ -137,7 +145,7 @@ export default function Contact() { name="email" id="email" autoComplete="email" - className="block w-full rounded-md border-0 bg-white/5 px-3.5 py-2 text-primary-800 shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-primary-500 sm:text-sm sm:leading-6" + className="block w-full rounded-md border-0 px-3.5 py-2 text-primary-800 shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-primary-500 sm:text-sm sm:leading-6" />
@@ -152,7 +160,7 @@ export default function Contact() { name="phoneNumber" id="phoneNumber" autoComplete="tel" - className="block w-full rounded-md border-0 bg-white/5 px-3.5 py-2 text-primary-800 shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-primary-500 sm:text-sm sm:leading-6" + className="block w-full rounded-md border-0 px-3.5 py-2 text-primary-800 shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-primary-500 sm:text-sm sm:leading-6" /> @@ -166,7 +174,7 @@ export default function Contact() { name="message" id="message" rows={4} - className="block w-full rounded-md border-0 bg-white/5 px-3.5 py-2 text-primary-800 shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-primary-500 sm:text-sm sm:leading-6" + className="block w-full rounded-md border-0 px-3.5 py-2 text-primary-800 shadow-md ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-primary-500 sm:text-sm sm:leading-6" defaultValue={""} /> diff --git a/app/page.tsx b/app/page.tsx index ff6780e..f0168e6 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -3,11 +3,11 @@ import Link from "next/link" export default async function Web() { return (
-
+
-
+

Your personal web development team @@ -25,7 +25,7 @@ export default async function Web() {

diff --git a/app/services/page.tsx b/app/services/page.tsx index b951d7d..2996b07 100644 --- a/app/services/page.tsx +++ b/app/services/page.tsx @@ -4,23 +4,23 @@ const features = [ { name: "Web & E-commerce", description: - "Elevating businesses online with tailored solutions from basic websites to full custom E-commerce stores and expert Shopify development.", + "Elevating businesses online with tailored solutions ranging from basic websites to fully customized E-commerce stores and expert Shopify development.", icon: BuildingStorefrontIcon, }, { name: "Branding & design", - description: "Crafting captivating identities through design, our services breathe life into brands.", + description: "With a focus on thoughtful design, our services bring vitality to our clients' brands. We specialize in creating distinctive identities that leave a lasting impression, reflecting the essence of each story.", icon: PaintBrushIcon, }, { name: "Cloud based setup", - description: "Taking software to new heights by placing it all on the cloud's limitless expanse.", + description: "Empower your software with our cloud-based services, bringing it to new heights within the boundless expanse of the cloud. We seamlessly integrate cutting-edge technologies, ensuring scalability, security, and unrivaled performance for your digital solutions.", icon: CloudArrowUpIcon, }, { - name: "Your idea here", + name: "Your vision quantified", description: - "Experience a warm welcome at our place, savor a cup of coffee, and share your vision – together, we'll uncover the perfect solution for you", + "Experience a warm welcome at our office, savor a cup of coffee, and share your views on your online presence. Together, we'll uncover the perfect solution for you or your enterprise", icon: LightBulbIcon, }, ] @@ -30,7 +30,7 @@ export default async function Projects() {
-
+

diff --git a/app/team/page.tsx b/app/team/page.tsx index e47dfe8..6a21299 100644 --- a/app/team/page.tsx +++ b/app/team/page.tsx @@ -30,17 +30,19 @@ export default async function About() {

-
+

Meet our team

+

- We’re a dynamic group of individuals who are passionate about what we do. + We are a dynamic group of individuals , passionate about our respective fields of expertise. + {/*We’re a dynamic group of individuals who are passionate about what we do.*/}

    {people.map(({ name, imageUrl, role, linkedinUrl }) => (
  • diff --git a/components/Footer/Footer.tsx b/components/Footer/Footer.tsx index 1674c08..7967a7b 100644 --- a/components/Footer/Footer.tsx +++ b/components/Footer/Footer.tsx @@ -2,7 +2,7 @@ import Image from "next/image" export default function Footer() { return ( -