298 lines
8.9 KiB
TypeScript
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,
|
|
// },
|
|
// ],
|
|
// },
|
|
];
|
|
}
|