prmbr-image-mksaas/src/config/navbar-config.tsx

298 lines
8.9 KiB
TypeScript

'use client';
import { Routes } from '@/routes';
import type { NestedMenuItem } from '@/types';
import {
AudioLinesIcon,
BuildingIcon,
ChartNoAxesCombinedIcon,
CircleDollarSignIcon,
CircleHelpIcon,
ComponentIcon,
CookieIcon,
FileTextIcon,
FilmIcon,
FlameIcon,
FootprintsIcon,
ImageIcon,
ListChecksIcon,
LockKeyholeIcon,
LogInIcon,
MailIcon,
MailboxIcon,
MessageCircleIcon,
NewspaperIcon,
RocketIcon,
ShieldCheckIcon,
SnowflakeIcon,
SplitSquareVerticalIcon,
SquareCodeIcon,
SquareKanbanIcon,
SquarePenIcon,
ThumbsUpIcon,
UserPlusIcon,
UsersIcon,
WandSparklesIcon,
} from 'lucide-react';
import { useTranslations } from 'next-intl';
import { websiteConfig } from './website';
/**
* Get navbar config with translations
*
* NOTICE: used in client components only
*
* docs:
* https://mksaas.com/docs/config/navbar
*
* @returns The navbar config with translated titles and descriptions
*/
export function getNavbarLinks(): NestedMenuItem[] {
const t = useTranslations('Marketing.navbar');
return [
{
title: t('features.title'),
href: Routes.Features,
external: false,
},
{
title: t('pricing.title'),
href: Routes.Pricing,
external: false,
},
...(websiteConfig.blog.enable
? [
{
title: t('blog.title'),
href: Routes.Blog,
external: false,
},
]
: []),
...(websiteConfig.docs.enable
? [
{
title: t('docs.title'),
href: Routes.Docs,
external: false,
},
]
: []),
{
title: t('ai.title'),
items: [
{
title: t('ai.items.text.title'),
description: t('ai.items.text.description'),
icon: <SquarePenIcon className="size-4 shrink-0" />,
href: Routes.AIText,
external: false,
},
{
title: t('ai.items.image.title'),
description: t('ai.items.image.description'),
icon: <ImageIcon className="size-4 shrink-0" />,
href: Routes.AIImage,
external: false,
},
{
title: t('ai.items.chat.title'),
description: t('ai.items.chat.description'),
icon: <MessageCircleIcon className="size-4 shrink-0" />,
href: Routes.AIChat,
external: false,
},
// {
// title: t('ai.items.video.title'),
// description: t('ai.items.video.description'),
// icon: <FilmIcon className="size-4 shrink-0" />,
// href: Routes.AIVideo,
// external: false,
// },
// {
// title: t('ai.items.audio.title'),
// description: t('ai.items.audio.description'),
// icon: <AudioLinesIcon className="size-4 shrink-0" />,
// href: Routes.AIAudio,
// external: false,
// },
],
},
{
title: t('pages.title'),
items: [
{
title: t('pages.items.about.title'),
description: t('pages.items.about.description'),
icon: <BuildingIcon className="size-4 shrink-0" />,
href: Routes.About,
external: false,
},
{
title: t('pages.items.contact.title'),
description: t('pages.items.contact.description'),
icon: <MailIcon className="size-4 shrink-0" />,
href: Routes.Contact,
external: false,
},
{
title: t('pages.items.waitlist.title'),
description: t('pages.items.waitlist.description'),
icon: <MailboxIcon className="size-4 shrink-0" />,
href: Routes.Waitlist,
external: false,
},
{
title: t('pages.items.roadmap.title'),
description: t('pages.items.roadmap.description'),
icon: <SquareKanbanIcon className="size-4 shrink-0" />,
href: Routes.Roadmap,
external: true,
},
{
title: t('pages.items.changelog.title'),
description: t('pages.items.changelog.description'),
icon: <ListChecksIcon className="size-4 shrink-0" />,
href: Routes.Changelog,
external: false,
},
{
title: t('pages.items.cookiePolicy.title'),
description: t('pages.items.cookiePolicy.description'),
icon: <CookieIcon className="size-4 shrink-0" />,
href: Routes.CookiePolicy,
external: false,
},
{
title: t('pages.items.privacyPolicy.title'),
description: t('pages.items.privacyPolicy.description'),
icon: <ShieldCheckIcon className="size-4 shrink-0" />,
href: Routes.PrivacyPolicy,
external: false,
},
{
title: t('pages.items.termsOfService.title'),
description: t('pages.items.termsOfService.description'),
icon: <FileTextIcon className="size-4 shrink-0" />,
href: Routes.TermsOfService,
external: false,
},
],
},
// {
// title: t('blocks.title'),
// items: [
// {
// title: t('blocks.items.magicui.title'),
// icon: <ComponentIcon className="size-4 shrink-0" />,
// href: Routes.MagicuiBlocks,
// external: false,
// },
// {
// title: t('blocks.items.hero-section.title'),
// icon: <FlameIcon className="size-4 shrink-0" />,
// href: Routes.HeroBlocks,
// external: false,
// },
// {
// title: t('blocks.items.logo-cloud.title'),
// icon: <SquareCodeIcon className="size-4 shrink-0" />,
// href: Routes.LogoCloudBlocks,
// external: false,
// },
// {
// title: t('blocks.items.features.title'),
// icon: <WandSparklesIcon className="size-4 shrink-0" />,
// href: Routes.FeaturesBlocks,
// external: false,
// },
// {
// title: t('blocks.items.integrations.title'),
// icon: <SnowflakeIcon className="size-4 shrink-0" />,
// href: Routes.IntegrationsBlocks,
// external: false,
// },
// {
// title: t('blocks.items.content.title'),
// icon: <NewspaperIcon className="size-4 shrink-0" />,
// href: Routes.ContentBlocks,
// external: false,
// },
// {
// title: t('blocks.items.stats.title'),
// icon: <ChartNoAxesCombinedIcon className="size-4 shrink-0" />,
// href: Routes.StatsBlocks,
// external: false,
// },
// {
// title: t('blocks.items.team.title'),
// icon: <UsersIcon className="size-4 shrink-0" />,
// href: Routes.TeamBlocks,
// external: false,
// },
// {
// title: t('blocks.items.testimonials.title'),
// icon: <ThumbsUpIcon className="size-4 shrink-0" />,
// href: Routes.TestimonialsBlocks,
// external: false,
// },
// {
// title: t('blocks.items.callToAction.title'),
// icon: <RocketIcon className="size-4 shrink-0" />,
// href: Routes.CallToActionBlocks,
// external: false,
// },
// {
// title: t('blocks.items.footer.title'),
// icon: <FootprintsIcon className="size-4 shrink-0" />,
// href: Routes.FooterBlocks,
// external: false,
// },
// {
// title: t('blocks.items.pricing.title'),
// icon: <CircleDollarSignIcon className="size-4 shrink-0" />,
// href: Routes.PricingBlocks,
// external: false,
// },
// {
// title: t('blocks.items.comparator.title'),
// icon: <SplitSquareVerticalIcon className="size-4 shrink-0" />,
// href: Routes.ComparatorBlocks,
// external: false,
// },
// {
// title: t('blocks.items.faq.title'),
// icon: <CircleHelpIcon className="size-4 shrink-0" />,
// href: Routes.FAQBlocks,
// external: false,
// },
// {
// title: t('blocks.items.login.title'),
// icon: <LogInIcon className="size-4 shrink-0" />,
// href: Routes.LoginBlocks,
// external: false,
// },
// {
// title: t('blocks.items.signup.title'),
// icon: <UserPlusIcon className="size-4 shrink-0" />,
// href: Routes.SignupBlocks,
// external: false,
// },
// {
// title: t('blocks.items.forgot-password.title'),
// icon: <LockKeyholeIcon className="size-4 shrink-0" />,
// href: Routes.ForgotPasswordBlocks,
// external: false,
// },
// {
// title: t('blocks.items.contact.title'),
// icon: <MailIcon className="size-4 shrink-0" />,
// href: Routes.ContactBlocks,
// external: false,
// },
// ],
// },
];
}