From 7f85f3fe9446c9f7add12f472d8621ea3b529842 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Fri, 3 Jul 2026 07:15:32 +0000 Subject: [PATCH 1/2] Bob AI: Add blog page --- src/App.tsx | 2 + src/components/Layout.tsx | 4 +- src/pages/BlogPage.tsx | 108 ++++++++++++++++++++++++++++++++++++++ src/routes.ts | 1 + 4 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 src/pages/BlogPage.tsx diff --git a/src/App.tsx b/src/App.tsx index 33d15f9..d631f9f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,11 +2,13 @@ import { Routes, Route } from 'react-router-dom'; import Layout from './components/Layout'; import HomePage from './pages/HomePage'; +import BlogPage from "@/pages/BlogPage"; export default function App() { return ( }> } /> + } /> ); diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index 1fc7436..c3892cd 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -22,7 +22,9 @@ export default function Layout() { { "name": "Contact", "href": "#contact" - } + }, + { name: "Blog", href: "/blog" }, + ]; return ( diff --git a/src/pages/BlogPage.tsx b/src/pages/BlogPage.tsx new file mode 100644 index 0000000..3447428 --- /dev/null +++ b/src/pages/BlogPage.tsx @@ -0,0 +1,108 @@ +import React from "react"; +import { routes } from "@/routes"; +import NavbarCentered from "@/components/ui/NavbarCentered"; +import HeroBrand from "@/components/sections/hero/HeroBrand"; +import BlogMediaCards from "@/components/sections/blog/BlogMediaCards"; +import ContactCta from "@/components/sections/contact/ContactCta"; +import FooterSimple from "@/components/sections/footer/FooterSimple"; +import NoiseBackground from "@/components/ui/NoiseBackground"; + +export default function BlogPage() { + return ( +
+ + + ({ name: r.label, href: r.path }))} + ctaButton={{ text: "Get Started", href: "/contact" }} + /> + +
+ + +
+ +
+ +
+ +
+
+ + +
+ ); +} \ No newline at end of file diff --git a/src/routes.ts b/src/routes.ts index 362ecb5..36d2cfa 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -6,4 +6,5 @@ export interface Route { export const routes: Route[] = [ { path: '/', label: 'Home', pageFile: 'HomePage' }, + { path: '/blog', label: 'Blog', pageFile: 'BlogPage' }, ]; -- 2.49.1 From 2344b9a08a1aa8c27267c1470c52dcced97acd12 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Fri, 3 Jul 2026 07:16:08 +0000 Subject: [PATCH 2/2] Bob AI: Populate src/pages/BlogPage.tsx (snippet builder, 2 sections) --- src/pages/BlogPage.tsx | 119 ++++++----------------------------------- 1 file changed, 15 insertions(+), 104 deletions(-) diff --git a/src/pages/BlogPage.tsx b/src/pages/BlogPage.tsx index 3447428..66fb415 100644 --- a/src/pages/BlogPage.tsx +++ b/src/pages/BlogPage.tsx @@ -1,108 +1,19 @@ -import React from "react"; -import { routes } from "@/routes"; -import NavbarCentered from "@/components/ui/NavbarCentered"; -import HeroBrand from "@/components/sections/hero/HeroBrand"; -import BlogMediaCards from "@/components/sections/blog/BlogMediaCards"; -import ContactCta from "@/components/sections/contact/ContactCta"; -import FooterSimple from "@/components/sections/footer/FooterSimple"; -import NoiseBackground from "@/components/ui/NoiseBackground"; +import Button from "@/components/ui/Button"; +import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot"; +import TextAnimation from "@/components/ui/TextAnimation"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; +import ScrollReveal from "@/components/ui/ScrollReveal"; +import AvatarGroup from "@/components/ui/AvatarGroup"; +import { ArrowUpRight, Loader2 } from "lucide-react"; +import GridOrCarousel from "@/components/ui/GridOrCarousel"; +import { useButtonClick } from "@/hooks/useButtonClick"; +import useBlogPosts from "@/hooks/useBlogPosts"; export default function BlogPage() { return ( -
- - - ({ name: r.label, href: r.path }))} - ctaButton={{ text: "Get Started", href: "/contact" }} - /> - -
- - -
- -
- -
- -
-
- - -
+ <> +
+
+ ); -} \ No newline at end of file +} -- 2.49.1