From af94ab6dd0dadec698b28037fb60ed074caccc3e Mon Sep 17 00:00:00 2001 From: javayhu Date: Tue, 25 Mar 2025 23:57:51 +0800 Subject: [PATCH] feat: update navigation and add new block components - Disabled development indicators in next.config.ts for cleaner output. - Updated English and Chinese message files to include new block titles for logo, login, signup, and contact sections. - Refactored routes to include new paths for login, signup, and contact blocks. - Introduced new layout and page components for marketing sections, including logo cloud and various call-to-action pages. - Enhanced blocks navigation component to utilize updated paths and improve user experience. --- messages/en.json | 39 ++++++--- messages/zh.json | 39 ++++++--- next.config.ts | 1 + .../(blocks)/blocks/[category]/layout.tsx | 15 ---- .../(blocks)/blocks/[category]/page.tsx | 51 ------------ .../(marketing)/blocks/[category]/layout.tsx | 12 +++ .../(marketing)/blocks/[category]/page.tsx | 54 +++++++++++++ src/app/[locale]/layout.tsx | 4 +- .../preview/call-to-action/one/page.tsx | 0 .../preview/call-to-action/three/page.tsx | 0 .../preview/call-to-action/two/page.tsx | 0 .../preview/comparator/one/page.tsx | 0 .../preview/contact/one/page.tsx | 0 .../preview/contact/two/page.tsx | 0 .../preview/content/five/page.tsx | 0 .../preview/content/four/page.tsx | 0 .../preview/content/one/page.tsx | 0 .../preview/content/seven/page.tsx | 0 .../preview/content/six/page.tsx | 0 .../preview/content/three/page.tsx | 0 .../preview/content/two/page.tsx | 0 .../{(blocks) => }/preview/faqs/one/page.tsx | 0 .../preview/features/eight/page.tsx | 0 .../preview/features/eleven/page.tsx | 0 .../preview/features/five/page.tsx | 0 .../preview/features/four/page.tsx | 0 .../preview/features/nine/page.tsx | 0 .../preview/features/one/page.tsx | 0 .../preview/features/seven/page.tsx | 0 .../preview/features/six/page.tsx | 0 .../preview/features/ten/page.tsx | 0 .../preview/features/three/page.tsx | 0 .../preview/features/twelve/page.tsx | 0 .../preview/features/two/page.tsx | 0 .../preview/footer/five/page.tsx | 0 .../preview/footer/four/page.tsx | 0 .../preview/footer/one/page.tsx | 0 .../preview/footer/three/page.tsx | 0 .../preview/footer/two/page.tsx | 0 .../preview/hero-section/eight/page.tsx | 0 .../preview/hero-section/five/page.tsx | 0 .../preview/hero-section/four/page.tsx | 0 .../preview/hero-section/nine/page.tsx | 0 .../preview/hero-section/one/page.tsx | 0 .../preview/hero-section/seven/page.tsx | 0 .../preview/hero-section/six/page.tsx | 0 .../preview/hero-section/three/page.tsx | 0 .../preview/hero-section/two/page.tsx | 0 .../{(blocks) => }/preview/layout.tsx | 0 .../{(blocks) => }/preview/login/one/page.tsx | 0 .../preview/login/three/page.tsx | 0 .../{(blocks) => }/preview/login/two/page.tsx | 0 .../preview/logo-cloud/one/page.tsx | 0 .../preview/logo-cloud/three/page.tsx | 0 .../preview/logo-cloud/two/page.tsx | 0 .../preview/pricing/five/page.tsx | 0 .../preview/pricing/four/page.tsx | 0 .../preview/pricing/one/page.tsx | 0 .../preview/pricing/three/page.tsx | 0 .../preview/pricing/two/page.tsx | 0 .../preview/sign-up/one/page.tsx | 0 .../preview/sign-up/three/page.tsx | 0 .../preview/sign-up/two/page.tsx | 0 .../preview/stats/four/page.tsx | 0 .../{(blocks) => }/preview/stats/one/page.tsx | 0 .../preview/stats/three/page.tsx | 0 .../{(blocks) => }/preview/stats/two/page.tsx | 0 .../{(blocks) => }/preview/team/one/page.tsx | 0 .../{(blocks) => }/preview/team/two/page.tsx | 0 .../preview/testimonials/five/page.tsx | 0 .../preview/testimonials/four/page.tsx | 0 .../preview/testimonials/one/page.tsx | 0 .../preview/testimonials/six/page.tsx | 0 .../preview/testimonials/three/page.tsx | 0 .../preview/testimonials/two/page.tsx | 0 src/components/blocks/blocks-nav.tsx | 59 +++++++------- src/config.tsx | 80 +++++++++++++++---- src/routes.ts | 18 +++-- 78 files changed, 237 insertions(+), 135 deletions(-) delete mode 100644 src/app/[locale]/(blocks)/blocks/[category]/layout.tsx delete mode 100644 src/app/[locale]/(blocks)/blocks/[category]/page.tsx create mode 100644 src/app/[locale]/(marketing)/blocks/[category]/layout.tsx create mode 100644 src/app/[locale]/(marketing)/blocks/[category]/page.tsx rename src/app/[locale]/{(blocks) => }/preview/call-to-action/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/call-to-action/three/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/call-to-action/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/comparator/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/contact/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/contact/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/content/five/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/content/four/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/content/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/content/seven/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/content/six/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/content/three/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/content/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/faqs/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/eight/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/eleven/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/five/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/four/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/nine/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/seven/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/six/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/ten/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/three/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/twelve/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/features/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/footer/five/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/footer/four/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/footer/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/footer/three/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/footer/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/hero-section/eight/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/hero-section/five/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/hero-section/four/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/hero-section/nine/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/hero-section/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/hero-section/seven/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/hero-section/six/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/hero-section/three/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/hero-section/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/layout.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/login/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/login/three/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/login/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/logo-cloud/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/logo-cloud/three/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/logo-cloud/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/pricing/five/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/pricing/four/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/pricing/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/pricing/three/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/pricing/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/sign-up/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/sign-up/three/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/sign-up/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/stats/four/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/stats/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/stats/three/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/stats/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/team/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/team/two/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/testimonials/five/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/testimonials/four/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/testimonials/one/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/testimonials/six/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/testimonials/three/page.tsx (100%) rename src/app/[locale]/{(blocks) => }/preview/testimonials/two/page.tsx (100%) diff --git a/messages/en.json b/messages/en.json index 09a82e0..a08d7bd 100644 --- a/messages/en.json +++ b/messages/en.json @@ -227,26 +227,47 @@ "hero": { "title": "Hero Blocks" }, - "pricing": { - "title": "Pricing Blocks" + "logo": { + "title": "Logo Cloud Blocks" }, "features": { "title": "Features Blocks" }, - "faq": { - "title": "FAQ Blocks" - }, - "testimonials": { - "title": "Testimonials Blocks" + "content": { + "title": "Content Blocks" }, "stats": { "title": "Stats Blocks" }, + "team": { + "title": "Team Blocks" + }, + "testimonials": { + "title": "Testimonials Blocks" + }, "callToAction": { "title": "Call to Action Blocks" }, - "content": { - "title": "Content Blocks" + "footer": { + "title": "Footer Blocks" + }, + "pricing": { + "title": "Pricing Blocks" + }, + "comparator": { + "title": "Comparator Blocks" + }, + "faq": { + "title": "FAQ Blocks" + }, + "login": { + "title": "Login Blocks" + }, + "signup": { + "title": "Signup Blocks" + }, + "contact": { + "title": "Contact Blocks" } } } diff --git a/messages/zh.json b/messages/zh.json index 7c89956..468cdee 100644 --- a/messages/zh.json +++ b/messages/zh.json @@ -222,26 +222,47 @@ "hero": { "title": "Hero组件" }, - "pricing": { - "title": "Pricing组件" + "logoCloud": { + "title": "Logo Cloud组件" }, "features": { "title": "Features组件" }, - "faq": { - "title": "FAQ组件" - }, - "testimonials": { - "title": "Testimonials组件" + "content": { + "title": "Content组件" }, "stats": { "title": "Stats组件" }, + "team": { + "title": "Team组件" + }, + "testimonials": { + "title": "Testimonials组件" + }, "callToAction": { "title": "Call to Action组件" }, - "content": { - "title": "Content组件" + "footer": { + "title": "Footer组件" + }, + "pricing": { + "title": "Pricing组件" + }, + "comparator": { + "title": "Comparator组件" + }, + "faqs": { + "title": "FAQs组件" + }, + "login": { + "title": "Login组件" + }, + "signup": { + "title": "Signup组件" + }, + "contact": { + "title": "Contact组件" } } } diff --git a/next.config.ts b/next.config.ts index 3b62eef..f66e975 100644 --- a/next.config.ts +++ b/next.config.ts @@ -7,6 +7,7 @@ import { withContentCollections } from "@content-collections/next"; */ const nextConfig: NextConfig = { /* config options here */ + devIndicators: false, // https://nextjs.org/docs/architecture/nextjs-compiler#remove-console // Remove all console.* calls in production only diff --git a/src/app/[locale]/(blocks)/blocks/[category]/layout.tsx b/src/app/[locale]/(blocks)/blocks/[category]/layout.tsx deleted file mode 100644 index 22e56ea..0000000 --- a/src/app/[locale]/(blocks)/blocks/[category]/layout.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import CategoryNavigation from '@/components/blocks/blocks-nav'; -import { categories } from '@/components/blocks/blocks'; - -export default function CategoryLayout({ - children, -}: Readonly<{ - children: React.ReactNode; -}>) { - return ( - <> - -
{children}
- - ); -} diff --git a/src/app/[locale]/(blocks)/blocks/[category]/page.tsx b/src/app/[locale]/(blocks)/blocks/[category]/page.tsx deleted file mode 100644 index ab50279..0000000 --- a/src/app/[locale]/(blocks)/blocks/[category]/page.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import BlockPreview from '@/components/blocks/block-preview'; -import { blocks, categories } from '@/components/blocks/blocks'; -import { notFound } from 'next/navigation'; - -interface PageProps { - params: Promise<{ category: string }>; -} - -export const dynamic = 'force-static'; -export const revalidate = 3600; - -export async function generateStaticParams() { - return categories.map((category) => ({ - category: category, - })); -} - -export async function generateMetadata({ params }: PageProps) { - const { category } = await params; - return { - title: `Shadcn ${category} Blocks`, - }; -} - -export default async function CategoryPage({ params }: PageProps) { - const { category } = await params; - const categoryBlocks = blocks.filter((b) => b.category === category); - - if (categoryBlocks.length === 0) { - notFound(); - } - - return ( - <> -
-

- Shadcn {category} blocks -

-

- Speed up your workflow with responsive, pre-built UI blocks designed - for marketing websites. -

-
-
- - {categoryBlocks.map((block, index) => ( - - ))} - - ); -} diff --git a/src/app/[locale]/(marketing)/blocks/[category]/layout.tsx b/src/app/[locale]/(marketing)/blocks/[category]/layout.tsx new file mode 100644 index 0000000..43123b0 --- /dev/null +++ b/src/app/[locale]/(marketing)/blocks/[category]/layout.tsx @@ -0,0 +1,12 @@ +import { categories } from '@/components/blocks/blocks'; +import BlocksNav from '@/components/blocks/blocks-nav'; +import { PropsWithChildren } from 'react'; + +export default function CategoryLayout({ children }: PropsWithChildren) { + return ( + <> + +
{children}
+ + ); +} diff --git a/src/app/[locale]/(marketing)/blocks/[category]/page.tsx b/src/app/[locale]/(marketing)/blocks/[category]/page.tsx new file mode 100644 index 0000000..cb505ef --- /dev/null +++ b/src/app/[locale]/(marketing)/blocks/[category]/page.tsx @@ -0,0 +1,54 @@ +import BlockPreview from '@/components/blocks/block-preview'; +import { blocks, categories } from '@/components/blocks/blocks'; +import { constructMetadata } from '@/lib/metadata'; +import { getBaseUrlWithLocale } from '@/lib/urls/get-base-url'; +import { Metadata } from 'next'; +import { Locale } from 'next-intl'; +import { getTranslations } from 'next-intl/server'; +import { notFound } from 'next/navigation'; + +interface BlockCategoryPageProps { + params: Promise<{ category: string }>; +} + +export const dynamic = 'force-static'; +export const revalidate = 3600; + +export async function generateStaticParams() { + return categories.map((category) => ({ + category: category, + })); +} + +export async function generateMetadata({ + params, +}: { + params: Promise<{ locale: Locale; category: string }>; +}): Promise { + const { locale, category } = await params; + const t = await getTranslations({ locale, namespace: 'Metadata' }); + return constructMetadata({ + title: category + ' | ' + t('title'), + description: t('description'), + canonicalUrl: `${getBaseUrlWithLocale(locale)}/blocks/${category}`, + }); +} + +export default async function BlockCategoryPage({ + params, +}: BlockCategoryPageProps) { + const { category } = await params; + const categoryBlocks = blocks.filter((b) => b.category === category); + + if (categoryBlocks.length === 0) { + notFound(); + } + + return ( + <> + {categoryBlocks.map((block, index) => ( + + ))} + + ); +} diff --git a/src/app/[locale]/layout.tsx b/src/app/[locale]/layout.tsx index b03b8b9..54d0c37 100644 --- a/src/app/[locale]/layout.tsx +++ b/src/app/[locale]/layout.tsx @@ -6,9 +6,9 @@ import { notFound } from 'next/navigation'; import { ReactNode } from 'react'; import { Toaster } from 'sonner'; import { Providers } from './providers'; +import { TailwindIndicator } from '@/components/tailwind-indicator'; import '@/styles/globals.css'; -import { TailwindIndicator } from '@/components/tailwind-indicator'; interface LocaleLayoutProps { children: ReactNode; @@ -52,7 +52,7 @@ export default async function LocaleLayout({ - + {/* */} diff --git a/src/app/[locale]/(blocks)/preview/call-to-action/one/page.tsx b/src/app/[locale]/preview/call-to-action/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/call-to-action/one/page.tsx rename to src/app/[locale]/preview/call-to-action/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/call-to-action/three/page.tsx b/src/app/[locale]/preview/call-to-action/three/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/call-to-action/three/page.tsx rename to src/app/[locale]/preview/call-to-action/three/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/call-to-action/two/page.tsx b/src/app/[locale]/preview/call-to-action/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/call-to-action/two/page.tsx rename to src/app/[locale]/preview/call-to-action/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/comparator/one/page.tsx b/src/app/[locale]/preview/comparator/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/comparator/one/page.tsx rename to src/app/[locale]/preview/comparator/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/contact/one/page.tsx b/src/app/[locale]/preview/contact/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/contact/one/page.tsx rename to src/app/[locale]/preview/contact/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/contact/two/page.tsx b/src/app/[locale]/preview/contact/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/contact/two/page.tsx rename to src/app/[locale]/preview/contact/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/content/five/page.tsx b/src/app/[locale]/preview/content/five/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/content/five/page.tsx rename to src/app/[locale]/preview/content/five/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/content/four/page.tsx b/src/app/[locale]/preview/content/four/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/content/four/page.tsx rename to src/app/[locale]/preview/content/four/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/content/one/page.tsx b/src/app/[locale]/preview/content/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/content/one/page.tsx rename to src/app/[locale]/preview/content/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/content/seven/page.tsx b/src/app/[locale]/preview/content/seven/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/content/seven/page.tsx rename to src/app/[locale]/preview/content/seven/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/content/six/page.tsx b/src/app/[locale]/preview/content/six/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/content/six/page.tsx rename to src/app/[locale]/preview/content/six/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/content/three/page.tsx b/src/app/[locale]/preview/content/three/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/content/three/page.tsx rename to src/app/[locale]/preview/content/three/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/content/two/page.tsx b/src/app/[locale]/preview/content/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/content/two/page.tsx rename to src/app/[locale]/preview/content/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/faqs/one/page.tsx b/src/app/[locale]/preview/faqs/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/faqs/one/page.tsx rename to src/app/[locale]/preview/faqs/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/eight/page.tsx b/src/app/[locale]/preview/features/eight/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/eight/page.tsx rename to src/app/[locale]/preview/features/eight/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/eleven/page.tsx b/src/app/[locale]/preview/features/eleven/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/eleven/page.tsx rename to src/app/[locale]/preview/features/eleven/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/five/page.tsx b/src/app/[locale]/preview/features/five/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/five/page.tsx rename to src/app/[locale]/preview/features/five/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/four/page.tsx b/src/app/[locale]/preview/features/four/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/four/page.tsx rename to src/app/[locale]/preview/features/four/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/nine/page.tsx b/src/app/[locale]/preview/features/nine/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/nine/page.tsx rename to src/app/[locale]/preview/features/nine/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/one/page.tsx b/src/app/[locale]/preview/features/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/one/page.tsx rename to src/app/[locale]/preview/features/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/seven/page.tsx b/src/app/[locale]/preview/features/seven/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/seven/page.tsx rename to src/app/[locale]/preview/features/seven/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/six/page.tsx b/src/app/[locale]/preview/features/six/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/six/page.tsx rename to src/app/[locale]/preview/features/six/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/ten/page.tsx b/src/app/[locale]/preview/features/ten/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/ten/page.tsx rename to src/app/[locale]/preview/features/ten/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/three/page.tsx b/src/app/[locale]/preview/features/three/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/three/page.tsx rename to src/app/[locale]/preview/features/three/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/twelve/page.tsx b/src/app/[locale]/preview/features/twelve/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/twelve/page.tsx rename to src/app/[locale]/preview/features/twelve/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/features/two/page.tsx b/src/app/[locale]/preview/features/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/features/two/page.tsx rename to src/app/[locale]/preview/features/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/footer/five/page.tsx b/src/app/[locale]/preview/footer/five/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/footer/five/page.tsx rename to src/app/[locale]/preview/footer/five/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/footer/four/page.tsx b/src/app/[locale]/preview/footer/four/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/footer/four/page.tsx rename to src/app/[locale]/preview/footer/four/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/footer/one/page.tsx b/src/app/[locale]/preview/footer/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/footer/one/page.tsx rename to src/app/[locale]/preview/footer/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/footer/three/page.tsx b/src/app/[locale]/preview/footer/three/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/footer/three/page.tsx rename to src/app/[locale]/preview/footer/three/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/footer/two/page.tsx b/src/app/[locale]/preview/footer/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/footer/two/page.tsx rename to src/app/[locale]/preview/footer/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/hero-section/eight/page.tsx b/src/app/[locale]/preview/hero-section/eight/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/hero-section/eight/page.tsx rename to src/app/[locale]/preview/hero-section/eight/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/hero-section/five/page.tsx b/src/app/[locale]/preview/hero-section/five/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/hero-section/five/page.tsx rename to src/app/[locale]/preview/hero-section/five/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/hero-section/four/page.tsx b/src/app/[locale]/preview/hero-section/four/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/hero-section/four/page.tsx rename to src/app/[locale]/preview/hero-section/four/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/hero-section/nine/page.tsx b/src/app/[locale]/preview/hero-section/nine/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/hero-section/nine/page.tsx rename to src/app/[locale]/preview/hero-section/nine/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/hero-section/one/page.tsx b/src/app/[locale]/preview/hero-section/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/hero-section/one/page.tsx rename to src/app/[locale]/preview/hero-section/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/hero-section/seven/page.tsx b/src/app/[locale]/preview/hero-section/seven/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/hero-section/seven/page.tsx rename to src/app/[locale]/preview/hero-section/seven/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/hero-section/six/page.tsx b/src/app/[locale]/preview/hero-section/six/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/hero-section/six/page.tsx rename to src/app/[locale]/preview/hero-section/six/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/hero-section/three/page.tsx b/src/app/[locale]/preview/hero-section/three/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/hero-section/three/page.tsx rename to src/app/[locale]/preview/hero-section/three/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/hero-section/two/page.tsx b/src/app/[locale]/preview/hero-section/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/hero-section/two/page.tsx rename to src/app/[locale]/preview/hero-section/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/layout.tsx b/src/app/[locale]/preview/layout.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/layout.tsx rename to src/app/[locale]/preview/layout.tsx diff --git a/src/app/[locale]/(blocks)/preview/login/one/page.tsx b/src/app/[locale]/preview/login/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/login/one/page.tsx rename to src/app/[locale]/preview/login/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/login/three/page.tsx b/src/app/[locale]/preview/login/three/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/login/three/page.tsx rename to src/app/[locale]/preview/login/three/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/login/two/page.tsx b/src/app/[locale]/preview/login/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/login/two/page.tsx rename to src/app/[locale]/preview/login/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/logo-cloud/one/page.tsx b/src/app/[locale]/preview/logo-cloud/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/logo-cloud/one/page.tsx rename to src/app/[locale]/preview/logo-cloud/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/logo-cloud/three/page.tsx b/src/app/[locale]/preview/logo-cloud/three/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/logo-cloud/three/page.tsx rename to src/app/[locale]/preview/logo-cloud/three/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/logo-cloud/two/page.tsx b/src/app/[locale]/preview/logo-cloud/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/logo-cloud/two/page.tsx rename to src/app/[locale]/preview/logo-cloud/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/pricing/five/page.tsx b/src/app/[locale]/preview/pricing/five/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/pricing/five/page.tsx rename to src/app/[locale]/preview/pricing/five/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/pricing/four/page.tsx b/src/app/[locale]/preview/pricing/four/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/pricing/four/page.tsx rename to src/app/[locale]/preview/pricing/four/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/pricing/one/page.tsx b/src/app/[locale]/preview/pricing/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/pricing/one/page.tsx rename to src/app/[locale]/preview/pricing/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/pricing/three/page.tsx b/src/app/[locale]/preview/pricing/three/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/pricing/three/page.tsx rename to src/app/[locale]/preview/pricing/three/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/pricing/two/page.tsx b/src/app/[locale]/preview/pricing/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/pricing/two/page.tsx rename to src/app/[locale]/preview/pricing/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/sign-up/one/page.tsx b/src/app/[locale]/preview/sign-up/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/sign-up/one/page.tsx rename to src/app/[locale]/preview/sign-up/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/sign-up/three/page.tsx b/src/app/[locale]/preview/sign-up/three/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/sign-up/three/page.tsx rename to src/app/[locale]/preview/sign-up/three/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/sign-up/two/page.tsx b/src/app/[locale]/preview/sign-up/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/sign-up/two/page.tsx rename to src/app/[locale]/preview/sign-up/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/stats/four/page.tsx b/src/app/[locale]/preview/stats/four/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/stats/four/page.tsx rename to src/app/[locale]/preview/stats/four/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/stats/one/page.tsx b/src/app/[locale]/preview/stats/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/stats/one/page.tsx rename to src/app/[locale]/preview/stats/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/stats/three/page.tsx b/src/app/[locale]/preview/stats/three/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/stats/three/page.tsx rename to src/app/[locale]/preview/stats/three/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/stats/two/page.tsx b/src/app/[locale]/preview/stats/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/stats/two/page.tsx rename to src/app/[locale]/preview/stats/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/team/one/page.tsx b/src/app/[locale]/preview/team/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/team/one/page.tsx rename to src/app/[locale]/preview/team/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/team/two/page.tsx b/src/app/[locale]/preview/team/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/team/two/page.tsx rename to src/app/[locale]/preview/team/two/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/testimonials/five/page.tsx b/src/app/[locale]/preview/testimonials/five/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/testimonials/five/page.tsx rename to src/app/[locale]/preview/testimonials/five/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/testimonials/four/page.tsx b/src/app/[locale]/preview/testimonials/four/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/testimonials/four/page.tsx rename to src/app/[locale]/preview/testimonials/four/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/testimonials/one/page.tsx b/src/app/[locale]/preview/testimonials/one/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/testimonials/one/page.tsx rename to src/app/[locale]/preview/testimonials/one/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/testimonials/six/page.tsx b/src/app/[locale]/preview/testimonials/six/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/testimonials/six/page.tsx rename to src/app/[locale]/preview/testimonials/six/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/testimonials/three/page.tsx b/src/app/[locale]/preview/testimonials/three/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/testimonials/three/page.tsx rename to src/app/[locale]/preview/testimonials/three/page.tsx diff --git a/src/app/[locale]/(blocks)/preview/testimonials/two/page.tsx b/src/app/[locale]/preview/testimonials/two/page.tsx similarity index 100% rename from src/app/[locale]/(blocks)/preview/testimonials/two/page.tsx rename to src/app/[locale]/preview/testimonials/two/page.tsx diff --git a/src/components/blocks/blocks-nav.tsx b/src/components/blocks/blocks-nav.tsx index 28970dc..2c70725 100644 --- a/src/components/blocks/blocks-nav.tsx +++ b/src/components/blocks/blocks-nav.tsx @@ -1,43 +1,46 @@ 'use client'; -import Link from 'next/link'; -import { usePathname } from 'next/navigation'; + +import { LocaleLink, useLocalePathname } from '@/i18n/navigation'; import { cn } from '@/lib/utils'; -const BlocksNav = ({ categories }: { categories: string[] }) => { - const pathname = usePathname(); +export default function BlocksNav({ categories }: { categories: string[] }) { + const pathname = useLocalePathname(); return ( -
+
); -}; - -export default BlocksNav; +} diff --git a/src/config.tsx b/src/config.tsx index b82f30e..5a34ce2 100644 --- a/src/config.tsx +++ b/src/config.tsx @@ -35,7 +35,13 @@ import { SquareKanbanIcon, SquarePenIcon, ThumbsUpIcon, - WandSparklesIcon + WandSparklesIcon, + SquareCodeIcon, + UsersIcon, + FootprintsIcon, + SplitSquareVerticalIcon, + LogInIcon, + UserPlusIcon } from 'lucide-react'; import { useTranslations } from 'next-intl'; @@ -199,9 +205,9 @@ export function getMenuLinks(): NestedMenuItem[] { external: false, }, { - title: t('Marketing.navbar.blocks.items.pricing.title'), - icon: , - href: Routes.PricingBlocks, + title: t('Marketing.navbar.blocks.items.logo.title'), + icon: , + href: Routes.LogoBlocks, external: false, }, { @@ -211,15 +217,9 @@ export function getMenuLinks(): NestedMenuItem[] { external: false, }, { - title: t('Marketing.navbar.blocks.items.faq.title'), - icon: , - href: Routes.FAQBlocks, - external: false, - }, - { - title: t('Marketing.navbar.blocks.items.testimonials.title'), - icon: , - href: Routes.TestimonialsBlocks, + title: t('Marketing.navbar.blocks.items.content.title'), + icon: , + href: Routes.ContentBlocks, external: false, }, { @@ -228,6 +228,18 @@ export function getMenuLinks(): NestedMenuItem[] { href: Routes.StatsBlocks, external: false, }, + { + title: t('Marketing.navbar.blocks.items.team.title'), + icon: , + href: Routes.TeamBlocks, + external: false, + }, + { + title: t('Marketing.navbar.blocks.items.testimonials.title'), + icon: , + href: Routes.TestimonialsBlocks, + external: false, + }, { title: t('Marketing.navbar.blocks.items.callToAction.title'), icon: , @@ -235,9 +247,45 @@ export function getMenuLinks(): NestedMenuItem[] { external: false, }, { - title: t('Marketing.navbar.blocks.items.content.title'), - icon: , - href: Routes.ContentBlocks, + title: t('Marketing.navbar.blocks.items.footer.title'), + icon: , + href: Routes.FooterBlocks, + external: false, + }, + { + title: t('Marketing.navbar.blocks.items.pricing.title'), + icon: , + href: Routes.PricingBlocks, + external: false, + }, + { + title: t('Marketing.navbar.blocks.items.comparator.title'), + icon: , + href: Routes.ComparatorBlocks, + external: false, + }, + { + title: t('Marketing.navbar.blocks.items.faq.title'), + icon: , + href: Routes.FAQBlocks, + external: false, + }, + { + title: t('Marketing.navbar.blocks.items.login.title'), + icon: , + href: Routes.LoginBlocks, + external: false, + }, + { + title: t('Marketing.navbar.blocks.items.signup.title'), + icon: , + href: Routes.SignupBlocks, + external: false, + }, + { + title: t('Marketing.navbar.blocks.items.contact.title'), + icon: , + href: Routes.ContactBlocks, external: false, }, ], diff --git a/src/routes.ts b/src/routes.ts index e5d970e..a5c034f 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -38,14 +38,22 @@ export enum Routes { AIVideo = '/ai/video', AIAudio = '/ai/audio', + // Block routes HeroBlocks = '/blocks/hero-section', - PricingBlocks = '/blocks/pricing', + LogoBlocks = '/blocks/logo-cloud', FeaturesBlocks = '/blocks/features', - FAQBlocks = '/blocks/faq', - TestimonialsBlocks = '/blocks/testimonials', - StatsBlocks = '/blocks/stats', - CallToActionBlocks = '/blocks/call-to-action', ContentBlocks = '/blocks/content', + StatsBlocks = '/blocks/stats', + TeamBlocks = '/blocks/team', + TestimonialsBlocks = '/blocks/testimonials', + CallToActionBlocks = '/blocks/call-to-action', + FooterBlocks = '/blocks/footer', + PricingBlocks = '/blocks/pricing', + ComparatorBlocks = '/blocks/comparator', + FAQBlocks = '/blocks/faqs', + LoginBlocks = '/blocks/login', + SignupBlocks = '/blocks/signup', + ContactBlocks = '/blocks/contact', } /**