diff --git a/app/layout.tsx b/app/(main)/layout.tsx
similarity index 94%
rename from app/layout.tsx
rename to app/(main)/layout.tsx
index ca5c83c..314e464 100644
--- a/app/layout.tsx
+++ b/app/(main)/layout.tsx
@@ -3,8 +3,8 @@ import { Geist, Geist_Mono } from "next/font/google";
import Image from "next/image";
import Link from "next/link";
import { ToastContainer, Zoom } from "react-toastify";
-import ContactUs from "./(contact-us)/page";
-import "./globals.css";
+import FooterForm from "../_components/FooterForm";
+import "../globals.css";
const geistSans = Geist({
variable: "--font-geist-sans",
subsets: ["latin"],
@@ -18,6 +18,9 @@ const geistMono = Geist_Mono({
export const metadata: Metadata = {
title: "Create Next App",
description: "Generated by create next app",
+ icons: {
+ icon: "/fav-icon.svg",
+ },
};
function ContactInfo({
@@ -109,9 +112,7 @@ export default async function RootLayout({
/>
- {/*
-
-
*/}
+
-
-
-
+
diff --git a/app/page.tsx b/app/(main)/page.tsx
similarity index 93%
rename from app/page.tsx
rename to app/(main)/page.tsx
index 58d0a0d..095c8ac 100644
--- a/app/page.tsx
+++ b/app/(main)/page.tsx
@@ -1,6 +1,6 @@
import { Metadata } from "next";
import Image from "next/image";
-import ApexChart from "./_components/ApexChart";
+import ApexChart from "../_components/ApexChart";
export const metadata: Metadata = {
title: "Opp lens - AI-Powered Tender Management for SMEs | Win More Tenders",
description:
@@ -47,7 +47,7 @@ export default function Home() {
return (
<>
-
+
$
@@ -225,28 +225,3 @@ export default function Home() {
>
);
}
-
-function CenterFrame({
- src,
- title,
- description,
- alt,
-}: {
- src: string;
- title: string;
- description: string;
- alt: string;
-}) {
- return (
-
-
-
{title}
-
{description}
-
- );
-}
diff --git a/app/(not-found)/[...not-found]/layout.tsx b/app/(not-found)/[...not-found]/layout.tsx
new file mode 100644
index 0000000..6be2e1c
--- /dev/null
+++ b/app/(not-found)/[...not-found]/layout.tsx
@@ -0,0 +1,173 @@
+import type { Metadata } from "next";
+import { Geist, Geist_Mono } from "next/font/google";
+import Image from "next/image";
+import Link from "next/link";
+import { ToastContainer, Zoom } from "react-toastify";
+
+import "../../globals.css";
+const geistSans = Geist({
+ variable: "--font-geist-sans",
+ subsets: ["latin"],
+});
+
+const geistMono = Geist_Mono({
+ variable: "--font-geist-mono",
+ subsets: ["latin"],
+});
+
+export const metadata: Metadata = {
+ title: "Create Next App",
+ description: "Generated by create next app",
+ icons: {
+ icon: "/fav-icon.svg",
+ },
+};
+
+function ContactInfo({
+ icon,
+ contact,
+ href,
+ ariaLabel,
+ contactIconSrc,
+}: {
+ icon: string;
+ contact: string;
+ href?: string;
+ ariaLabel: string;
+ contactIconSrc?: string;
+}) {
+ return (
+
+
+ {href ? (
+
+ {contact}
+
+ ) : (
+
+ {!!contactIconSrc && (
+
+ )}
+ {contact}
+
+ )}
+
+ );
+}
+
+export default async function RootLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode;
+}>) {
+ const contactInfo = [
+ {
+ icon: "/Message.svg",
+ contact: "info@opplens.com",
+ href: "mailto:info@opplens.com",
+ ariaLabel: "Email us at info@opplens.com",
+ },
+ {
+ icon: "/Phone.svg",
+ contact: "(+46) - 761581526",
+ href: "tel:+46761581526",
+ ariaLabel: "Call us at +46 761581526",
+ },
+ {
+ icon: "/Location.svg",
+ contact: "Stockholm, Sweden",
+ ariaLabel: "Our location in Stockholm, Sweden",
+ contactIconSrc: "/sweden.svg",
+ },
+ ];
+
+ return (
+
+
+
+
+
+
+ {children}
+
+
+
+ );
+}
diff --git a/app/(not-found)/[...not-found]/page.tsx b/app/(not-found)/[...not-found]/page.tsx
new file mode 100644
index 0000000..c0b18db
--- /dev/null
+++ b/app/(not-found)/[...not-found]/page.tsx
@@ -0,0 +1,36 @@
+import Image from "next/image";
+
+interface IProps {}
+
+const NotFoundPage = ({}: IProps) => {
+ return (
+
+
+
+
+ Page not found
+
+ Sorry, the page you're looking for does not exist or has been removed
+
+
+
+ );
+};
+
+export default NotFoundPage;
diff --git a/app/_components/FooterForm.tsx b/app/_components/FooterForm.tsx
new file mode 100644
index 0000000..4d6ed39
--- /dev/null
+++ b/app/_components/FooterForm.tsx
@@ -0,0 +1,15 @@
+"use client";
+import { usePathname } from "next/navigation";
+import ContactUs from "../_contact-us/page";
+
+const FooterForm = () => {
+ const pathName = usePathname();
+ if (pathName !== "/") return null;
+ return (
+
+
+
+ );
+};
+
+export default FooterForm;
diff --git a/app/(contact-us)/form.tsx b/app/_contact-us/form.tsx
similarity index 100%
rename from app/(contact-us)/form.tsx
rename to app/_contact-us/form.tsx
diff --git a/app/(contact-us)/page.tsx b/app/_contact-us/page.tsx
similarity index 100%
rename from app/(contact-us)/page.tsx
rename to app/_contact-us/page.tsx
diff --git a/app/not-found.tsx b/app/not-found.tsx
deleted file mode 100644
index 4407b15..0000000
--- a/app/not-found.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-interface IProps {}
-
-const NotFound = ({}: IProps) => {
- return Not found
;
-};
-
-export default NotFound;
diff --git a/public/404.svg b/public/404.svg
new file mode 100644
index 0000000..7d3c26e
--- /dev/null
+++ b/public/404.svg
@@ -0,0 +1,73 @@
+
diff --git a/public/cable.svg b/public/cable.svg
new file mode 100644
index 0000000..d74e489
--- /dev/null
+++ b/public/cable.svg
@@ -0,0 +1,91 @@
+