From 431e61d2a5c33770e8deefd0609db2a224f6b6d5 Mon Sep 17 00:00:00 2001 From: javayhu Date: Sat, 8 Mar 2025 13:50:08 +0800 Subject: [PATCH] refactor: consolidate blog components and improve file structure - Move MDX component from marketing to shared folder - Remove deprecated blog post and blog posts components - Update blog page imports to use new MDX component location - Add reading time estimation utility function - Reorganize navbar and mobile navbar components - Update marketing links configuration - Improve component modularity and code organization --- messages/en.json | 3 +- messages/zh.json | 3 +- public/images/avatars/haitang.png | Bin 13080 -> 106655 bytes .../(marketing)/blog/[...slug]/page.tsx | 18 +- src/app/[locale]/(marketing)/layout.tsx | 2 +- src/app/[locale]/layout.tsx | 3 - src/components/blog/all-posts-button.tsx | 11 +- .../blog/blog-category-list-mobile.tsx | 37 +- src/components/blog/blog-post.tsx | 78 ---- src/components/blog/blog-posts.tsx | 78 ---- .../{marketing => layout}/navbar-mobile.tsx | 83 +--- src/components/layout/navbar.tsx | 394 +++++++----------- src/components/legacy/navbar.tsx | 286 +++++++++++++ src/components/marketing/blog/callout.tsx | 30 -- .../marketing/fragments/grid-section.tsx | 39 -- .../marketing/fragments/site-heading.tsx | 38 -- src/components/marketing/navbar.tsx | 194 --------- src/components/shared/callout-custom.tsx | 86 ++++ src/components/shared/callout.tsx | 96 +---- .../blog => shared}/mdx-component.tsx | 2 +- .../marketing => config}/marketing-links.tsx | 55 +-- src/lib/utils.ts | 20 +- 22 files changed, 613 insertions(+), 943 deletions(-) delete mode 100644 src/components/blog/blog-post.tsx delete mode 100644 src/components/blog/blog-posts.tsx rename src/components/{marketing => layout}/navbar-mobile.tsx (72%) create mode 100644 src/components/legacy/navbar.tsx delete mode 100644 src/components/marketing/blog/callout.tsx delete mode 100644 src/components/marketing/fragments/grid-section.tsx delete mode 100644 src/components/marketing/fragments/site-heading.tsx delete mode 100644 src/components/marketing/navbar.tsx create mode 100644 src/components/shared/callout-custom.tsx rename src/components/{marketing/blog => shared}/mdx-component.tsx (99%) rename src/{components/marketing => config}/marketing-links.tsx (84%) diff --git a/messages/en.json b/messages/en.json index dfbff26..9e5f377 100644 --- a/messages/en.json +++ b/messages/en.json @@ -65,7 +65,8 @@ "categories": "Categories", "tableOfContents": "Table of Contents", "all": "All", - "noPostsFound": "No posts found" + "noPostsFound": "No posts found", + "allPosts": "All Posts" }, "mail": { "common": { diff --git a/messages/zh.json b/messages/zh.json index 8fb61c1..6d81209 100644 --- a/messages/zh.json +++ b/messages/zh.json @@ -65,7 +65,8 @@ "categories": "分类", "tableOfContents": "目录", "all": "全部", - "noPostsFound": "没有找到文章" + "noPostsFound": "没有找到文章", + "allPosts": "全部文章" }, "mail": { "common": { diff --git a/public/images/avatars/haitang.png b/public/images/avatars/haitang.png index 3a0eafb448b02e46df2cc9b27ce53e4774dda953..7fabd8ca08dcc4d3ff4004fb8c6f81c70587ea77 100644 GIT binary patch literal 106655 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%0D5I8+3gSaa?Q^HBnuFwmx6Axb$Ljc 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 i99r|=^hfZ + {/* blog post date */} +
+

{date}

+

{estimateReadingTime(post.body.raw)}

+
+ {/* blog post title */}

{post.title}

@@ -137,7 +143,7 @@ export default async function BlogPostPage(props: NextPageProps) {

{t("publisher")}

-
+
{post.author?.avatar && ( )}
-
- {post.author?.name} - -

{date}

-
+ {post.author?.name}
diff --git a/src/app/[locale]/(marketing)/layout.tsx b/src/app/[locale]/(marketing)/layout.tsx index 4e11e57..c5e7a87 100644 --- a/src/app/[locale]/(marketing)/layout.tsx +++ b/src/app/[locale]/(marketing)/layout.tsx @@ -1,6 +1,6 @@ import { marketingConfig } from "@/config/marketing"; import { Footer } from "@/components/layout/footer"; -import { Navbar } from "@/components/marketing/navbar"; +import { Navbar } from "@/components/layout/navbar"; export default function MarketingLayout({ children }: { children: React.ReactNode }) { return ( diff --git a/src/app/[locale]/layout.tsx b/src/app/[locale]/layout.tsx index 96eab56..a080bdc 100644 --- a/src/app/[locale]/layout.tsx +++ b/src/app/[locale]/layout.tsx @@ -1,8 +1,5 @@ import { fontSourceSans, fontSourceSerif4 } from "@/assets/fonts"; -import { Footer } from '@/components/layout/footer'; -import { Navbar } from '@/components/marketing/navbar'; import { TailwindIndicator } from '@/components/tailwind-indicator'; -import { marketingConfig } from '@/config/marketing'; import { routing } from '@/i18n/routing'; import { cn } from "@/lib/utils"; import { GeistMono } from "geist/font/mono"; diff --git a/src/components/blog/all-posts-button.tsx b/src/components/blog/all-posts-button.tsx index 5565247..1845b10 100644 --- a/src/components/blog/all-posts-button.tsx +++ b/src/components/blog/all-posts-button.tsx @@ -1,10 +1,12 @@ "use client"; import { Button } from "@/components/ui/button"; -import { ArrowLeftIcon } from "lucide-react"; import { LocaleLink } from "@/i18n/navigation"; +import { ArrowLeftIcon } from "lucide-react"; +import { useTranslations } from "next-intl"; export default function AllPostsButton() { + const t = useTranslations("BlogPage"); return ( ); diff --git a/src/components/blog/blog-category-list-mobile.tsx b/src/components/blog/blog-category-list-mobile.tsx index 2bdbec1..5da9aa8 100644 --- a/src/components/blog/blog-category-list-mobile.tsx +++ b/src/components/blog/blog-category-list-mobile.tsx @@ -1,12 +1,19 @@ "use client"; +import FilterItemMobile from "@/components/shared/filter-item-mobile"; +import { + Drawer, + DrawerContent, + DrawerOverlay, + DrawerPortal, + DrawerTitle, + DrawerTrigger, +} from "@/components/ui/drawer"; import { Category } from "content-collections"; import { LayoutListIcon } from "lucide-react"; +import { useTranslations } from "next-intl"; import { useParams } from "next/navigation"; import { useState } from "react"; -import { Drawer } from "vaul"; -import FilterItemMobile from "@/components/shared/filter-item-mobile"; -import { useTranslations } from "next-intl"; export type BlogCategoryListMobileProps = { categoryList: Category[]; @@ -27,8 +34,8 @@ export function BlogCategoryListMobile({ }; return ( - - + setOpen(true)} className="flex items-center w-full p-3 border-y text-foreground/90" > @@ -41,14 +48,11 @@ export function BlogCategoryListMobile({ {selectedCategory?.name ? `${selectedCategory?.name}` : t("all")}
- - - - - {t("categories")} + + + + + {t("categories")}
@@ -71,9 +75,8 @@ export function BlogCategoryListMobile({ /> ))} - - - - + + + ); } diff --git a/src/components/blog/blog-post.tsx b/src/components/blog/blog-post.tsx deleted file mode 100644 index e4f535a..0000000 --- a/src/components/blog/blog-post.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import * as React from 'react'; -import Link from 'next/link'; -import { format } from 'date-fns'; -import { Mdx } from '@/components/marketing/blog/mdx-component'; -import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; -import { Separator } from '@/components/ui/separator'; -import { getInitials } from '@/lib/utils'; -import { Post } from 'content-collections'; - -type BlogPostProps = { - post: Post; -}; - -export function BlogPost({ post }: BlogPostProps): React.JSX.Element { - console.log(post); - console.log(post.author); - return ( -
-
-
- - - ← - - All posts - -
-
- - {post.categories.map((c) => c?.name).join(', ')} - - - - -
-

- {post.title} -

-

{post.description}

-
-
- - - - {getInitials(post.author?.name ?? '')} - - - {post.author?.name ?? ''} -
-
{estimateReadingTime(post.body.raw)}
-
-
-
-
- -
- -
-
- ); -} - -function estimateReadingTime( - text: string, - wordsPerMinute: number = 250 -): string { - const words = text.trim().split(/\s+/).length; - const minutes = Math.ceil(words / wordsPerMinute); - return minutes === 1 ? '1 minute read' : `${minutes} minutes read`; -} diff --git a/src/components/blog/blog-posts.tsx b/src/components/blog/blog-posts.tsx deleted file mode 100644 index c714b5c..0000000 --- a/src/components/blog/blog-posts.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import * as React from 'react'; -import Link from 'next/link'; -import { allPosts } from 'content-collections'; -import { format, isBefore } from 'date-fns'; -import { ArrowRightIcon } from 'lucide-react'; -import { GridSection } from '@/components/marketing/fragments/grid-section'; -import { SiteHeading } from '@/components/marketing/fragments/site-heading'; -import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; -import { FillRemainingSpace } from '@/components/fill-remaining-space'; -import { getBaseUrl } from '@/lib/urls/get-base-url'; -import { getInitials } from '@/lib/utils'; -import { useLocale } from 'next-intl'; - -export function BlogPosts(): React.JSX.Element { - const locale = useLocale(); - - // Filter posts by current locale - const localizedPosts = allPosts - .filter(post => post.published && post.locale === locale) - .slice() - .sort((a, b) => (isBefore(a.date, b.date) ? 1 : -1)); - - return ( - -
- -
- {localizedPosts.map((post, index) => ( - -
- {post.categories.map((c) => c?.name).join(', ')} - -
-

- {post.title} -

-

- {post.description} -

- -
-
- - - - {getInitials(post.author?.name ?? '')} - - - {post.author?.name ?? ''} -
-
- Read more - -
-
- - ))} -
-
-
- ); -} diff --git a/src/components/marketing/navbar-mobile.tsx b/src/components/layout/navbar-mobile.tsx similarity index 72% rename from src/components/marketing/navbar-mobile.tsx rename to src/components/layout/navbar-mobile.tsx index 3be8fd2..88a9c1f 100644 --- a/src/components/marketing/navbar-mobile.tsx +++ b/src/components/layout/navbar-mobile.tsx @@ -1,7 +1,7 @@ 'use client'; import { Logo } from '@/components/logo'; -import { DOCS_LINKS, MENU_LINKS } from '@/components/marketing/marketing-links'; +import { MENU_LINKS } from '@/config/marketing-links'; import { Button, buttonVariants } from '@/components/ui/button'; import { Collapsible, @@ -27,7 +27,6 @@ export function NavbarMobile({ }: React.HTMLAttributes) { const [open, setOpen] = React.useState(false); const pathname = usePathname(); - const isDocs = pathname.startsWith('/docs'); React.useEffect(() => { const handleRouteChangeStart = () => { @@ -90,11 +89,7 @@ export function NavbarMobile({ {open && ( - {isDocs ? ( - - ) : ( - - )} + )} @@ -238,77 +233,3 @@ function MainMobileMenu({ onLinkClicked }: MainMobileMenuProps) {
); } - -interface DocsMobileMenuProps { - onLinkClicked: () => void; -}; - -function DocsMobileMenu({ - onLinkClicked -}: DocsMobileMenuProps): React.JSX.Element { - const [expanded, setExpanded] = React.useState>({}); - return ( -
-
-
    - {DOCS_LINKS.map((item) => ( -
  • - - setExpanded((prev) => ({ - ...prev, - [item.title.toLowerCase()]: isOpen - })) - } - > - - - - -
      - {item.items.map((subItem) => ( -
    • - - {subItem.title} - -
    • - ))} -
    -
    -
    -
  • - ))} -
-
- - -
-
-
- ); -} diff --git a/src/components/layout/navbar.tsx b/src/components/layout/navbar.tsx index cd3e823..3c7dcc4 100644 --- a/src/components/layout/navbar.tsx +++ b/src/components/layout/navbar.tsx @@ -1,11 +1,13 @@ -"use client"; +'use client'; -import { LoginWrapper } from "@/components/auth/login-button"; -import Container from "@/components/container"; -import { Icons } from "@/components/icons/icons"; -import { UserButton } from "@/components/layout/user-button"; -import { Logo } from "@/components/logo"; -import { Button } from "@/components/ui/button"; +import { LoginWrapper } from '@/components/auth/login-button'; +import Container from '@/components/container'; +import { ThemeSwitcher } from '@/components/layout/theme-switcher'; +import { UserButton } from '@/components/layout/user-button'; +import { Logo } from '@/components/logo'; +import { MENU_LINKS } from '@/config/marketing-links'; +import { NavbarMobile } from '@/components/layout/navbar-mobile'; +import { Button } from '@/components/ui/button'; import { NavigationMenu, NavigationMenuContent, @@ -13,274 +15,180 @@ import { NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, - navigationMenuTriggerStyle, -} from "@/components/ui/navigation-menu"; -import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from "@/components/ui/sheet"; -import { siteConfig } from "@/config/site"; + navigationMenuTriggerStyle +} from '@/components/ui/navigation-menu'; +import { siteConfig } from '@/config/site'; import { useScroll } from "@/hooks/use-scroll"; -import { authClient } from "@/lib/auth-client"; -import { cn } from "@/lib/utils"; -import type { DashboardConfig, MarketingConfig, NestedNavItem } from "@/types"; -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@radix-ui/react-accordion"; -import { MenuIcon } from "lucide-react"; -import Link from "next/link"; -import { usePathname } from "next/navigation"; -import { useEffect, useState } from "react"; +import { authClient } from '@/lib/auth-client'; +import { cn } from '@/lib/utils'; +import { Routes } from '@/routes'; +import { MarketingConfig } from '@/types'; +import Link from 'next/link'; +import { usePathname } from 'next/navigation'; +import { ArrowUpRightIcon } from 'lucide-react'; +import LocaleSelector from '@/components/layout/locale-selector'; +import { LocaleLink } from '@/i18n/navigation'; interface NavBarProps { scroll?: boolean; - config: DashboardConfig | MarketingConfig; + config: MarketingConfig; } -export function Navbar({ scroll = false, config }: NavBarProps) { +const customNavigationMenuTriggerStyle = cn( + navigationMenuTriggerStyle(), + "bg-transparent hover:bg-transparent hover:text-primary focus:bg-transparent focus:text-primary data-[active]:bg-transparent data-[active]:text-primary data-[state=open]:bg-transparent data-[state=open]:text-primary relative data-[active]:font-bold dark:text-gray-400 dark:hover:text-gray-300 dark:data-[active]:text-white" +); + +export function Navbar({ scroll, config }: NavBarProps) { const scrolled = useScroll(50); const { data: session, error } = authClient.useSession(); const user = session?.user; - console.log(`Navbar, user:`, user); + // console.log(`Navbar, user:`, user); const pathname = usePathname(); - // console.log(`Navbar, pathname: ${pathname}`); - const menus = config.menus; - - const isMenuActive = (href: string) => { - if (href === "/") { - return pathname === "/"; - } - // console.log(`Navbar, href: ${href}, pathname: ${pathname}`); - return pathname.startsWith(href); - }; - - const [open, setOpen] = useState(false); - // prevent body scroll when modal is open - useEffect(() => { - if (open) { - document.body.style.overflow = "hidden"; - } else { - document.body.style.overflow = "auto"; - } - }, [open]); return ( -
- {/* Desktop View */} -
- - {/* navbar left show logo and links */} -
- {/* logo */} - +
+ + {/* desktop navbar */} +
- - {/* Mobile View */} -
-
- {/* mobile navbar left show menu icon when closed & show sheet when menu is open */} -
- - - - - - - - setOpen(false)} - > - - {siteConfig.name} - - - -
- + +
-
-
+ Log in + + - {/* logo */} - setOpen(false)} - > - - - {siteConfig.name} - -
- - {/* mobile navbar right show sign in or user button */} -
- {user ? ( -
- -
- ) : ( - - +
)} + + +
-
- - + + + {/* mobile navbar */} + + + ); } - -const renderMenuItem = (item: NestedNavItem) => { - if (item.items) { - return ( - - - {item.title} - - - - - - ); - } - - return ( - - - {item.title} - - - ); -}; - -const renderMobileMenuItem = (item: NestedNavItem) => { - console.log(`renderMobileMenuItem, item:`, item, `, items:`, item.items); - if (item.items) { - return ( - - - {item.title} - - - {item.items.map((subItem) => { - const CustomMenuIcon = Icons[subItem.icon || "arrowRight"]; - return ( - - {subItem.icon && } -
-
{subItem.title}
-
- - ); - })} -
-
- ); - } - - const CustomMenuIcon = Icons[item.icon || "arrowRight"]; - return ( - - {item.icon && } - {item.title} - - ); -}; diff --git a/src/components/legacy/navbar.tsx b/src/components/legacy/navbar.tsx new file mode 100644 index 0000000..cd3e823 --- /dev/null +++ b/src/components/legacy/navbar.tsx @@ -0,0 +1,286 @@ +"use client"; + +import { LoginWrapper } from "@/components/auth/login-button"; +import Container from "@/components/container"; +import { Icons } from "@/components/icons/icons"; +import { UserButton } from "@/components/layout/user-button"; +import { Logo } from "@/components/logo"; +import { Button } from "@/components/ui/button"; +import { + NavigationMenu, + NavigationMenuContent, + NavigationMenuItem, + NavigationMenuLink, + NavigationMenuList, + NavigationMenuTrigger, + navigationMenuTriggerStyle, +} from "@/components/ui/navigation-menu"; +import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from "@/components/ui/sheet"; +import { siteConfig } from "@/config/site"; +import { useScroll } from "@/hooks/use-scroll"; +import { authClient } from "@/lib/auth-client"; +import { cn } from "@/lib/utils"; +import type { DashboardConfig, MarketingConfig, NestedNavItem } from "@/types"; +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@radix-ui/react-accordion"; +import { MenuIcon } from "lucide-react"; +import Link from "next/link"; +import { usePathname } from "next/navigation"; +import { useEffect, useState } from "react"; + +interface NavBarProps { + scroll?: boolean; + config: DashboardConfig | MarketingConfig; +} + +export function Navbar({ scroll = false, config }: NavBarProps) { + const scrolled = useScroll(50); + const { data: session, error } = authClient.useSession(); + const user = session?.user; + console.log(`Navbar, user:`, user); + + const pathname = usePathname(); + // console.log(`Navbar, pathname: ${pathname}`); + const menus = config.menus; + + const isMenuActive = (href: string) => { + if (href === "/") { + return pathname === "/"; + } + // console.log(`Navbar, href: ${href}, pathname: ${pathname}`); + return pathname.startsWith(href); + }; + + const [open, setOpen] = useState(false); + // prevent body scroll when modal is open + useEffect(() => { + if (open) { + document.body.style.overflow = "hidden"; + } else { + document.body.style.overflow = "auto"; + } + }, [open]); + + return ( +
+ {/* Desktop View */} +
+ + {/* navbar left show logo and links */} +
+ {/* logo */} + + + + {siteConfig.name} + +
+ + {/* links */} +
+ {menus && menus.length > 0 ? ( + + + {menus.map((item) => renderMenuItem(item))} + + + ) : null} +
+ + {/* navbar right show sign in or account */} +
+ {user ? ( +
+ +
+ ) : ( + + + + )} +
+
+
+ + {/* Mobile View */} +
+
+ {/* mobile navbar left show menu icon when closed & show sheet when menu is open */} +
+ + + + + + + + setOpen(false)} + > + + {siteConfig.name} + + + +
+ + {menus.map((item) => renderMobileMenuItem(item))} + +
+
+
+ + {/* logo */} + setOpen(false)} + > + + + {siteConfig.name} + +
+ + {/* mobile navbar right show sign in or user button */} +
+ {user ? ( +
+ +
+ ) : ( + + + + )} +
+
+
+
+ ); +} + +const renderMenuItem = (item: NestedNavItem) => { + if (item.items) { + return ( + + + {item.title} + + + + + + ); + } + + return ( + + + {item.title} + + + ); +}; + +const renderMobileMenuItem = (item: NestedNavItem) => { + console.log(`renderMobileMenuItem, item:`, item, `, items:`, item.items); + if (item.items) { + return ( + + + {item.title} + + + {item.items.map((subItem) => { + const CustomMenuIcon = Icons[subItem.icon || "arrowRight"]; + return ( + + {subItem.icon && } +
+
{subItem.title}
+
+ + ); + })} +
+
+ ); + } + + const CustomMenuIcon = Icons[item.icon || "arrowRight"]; + return ( + + {item.icon && } + {item.title} + + ); +}; diff --git a/src/components/marketing/blog/callout.tsx b/src/components/marketing/blog/callout.tsx deleted file mode 100644 index 3e1fa9c..0000000 --- a/src/components/marketing/blog/callout.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import * as React from 'react'; -import { ComponentProps } from 'react'; -import { - Alert, - AlertDescription, - AlertTitle -} from '@/components/ui/alert'; - -type CalloutProps = ComponentProps & { - icon?: string; - title?: string; -}; - -/** - * TODO: update - */ -export function Callout({ - title, - children, - icon, - ...props -}: CalloutProps): React.JSX.Element { - return ( - - {icon && {icon}} - {title && {title}} - {children} - - ); -} diff --git a/src/components/marketing/fragments/grid-section.tsx b/src/components/marketing/fragments/grid-section.tsx deleted file mode 100644 index a5c29e3..0000000 --- a/src/components/marketing/fragments/grid-section.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import * as React from 'react'; -import { cn } from '@/lib/utils'; - -export type GridSectionProps = React.HtmlHTMLAttributes & { - hideVerticalGridLines?: boolean; - hideBottomGridLine?: boolean; - containerProps?: React.HtmlHTMLAttributes; -}; - -/** - * TODO: remove - */ -export function GridSection({ - children, - hideVerticalGridLines, - hideBottomGridLine, - containerProps: { className = '', ...containerProps } = {}, - ...other -}: GridSectionProps): React.JSX.Element { - return ( -
-
-
- {!hideVerticalGridLines && ( - <> -
-
- - )} - {children} -
-
- {!hideBottomGridLine &&
} -
- ); -} diff --git a/src/components/marketing/fragments/site-heading.tsx b/src/components/marketing/fragments/site-heading.tsx deleted file mode 100644 index d34fba5..0000000 --- a/src/components/marketing/fragments/site-heading.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import * as React from 'react'; -import { Badge } from '@/components/ui/badge'; - -export type SiteHeadingProps = { - badge?: React.ReactNode; - title?: React.ReactNode; - description?: React.ReactNode; -}; - -/** - * TODO: remove - */ -export function SiteHeading({ - badge, - title, - description -}: SiteHeadingProps): React.JSX.Element { - return ( -
- {badge && ( - - {badge} - - )} - {title && ( -

{title}

- )} - {description && ( -

- {description} -

- )} -
- ); -} diff --git a/src/components/marketing/navbar.tsx b/src/components/marketing/navbar.tsx deleted file mode 100644 index 387791c..0000000 --- a/src/components/marketing/navbar.tsx +++ /dev/null @@ -1,194 +0,0 @@ -'use client'; - -import { LoginWrapper } from '@/components/auth/login-button'; -import Container from '@/components/container'; -import { ThemeSwitcher } from '@/components/layout/theme-switcher'; -import { UserButton } from '@/components/layout/user-button'; -import { Logo } from '@/components/logo'; -import { MENU_LINKS } from '@/components/marketing/marketing-links'; -import { NavbarMobile } from '@/components/marketing/navbar-mobile'; -import { Button } from '@/components/ui/button'; -import { - NavigationMenu, - NavigationMenuContent, - NavigationMenuItem, - NavigationMenuLink, - NavigationMenuList, - NavigationMenuTrigger, - navigationMenuTriggerStyle -} from '@/components/ui/navigation-menu'; -import { siteConfig } from '@/config/site'; -import { useScroll } from "@/hooks/use-scroll"; -import { authClient } from '@/lib/auth-client'; -import { cn } from '@/lib/utils'; -import { Routes } from '@/routes'; -import { MarketingConfig } from '@/types'; -import Link from 'next/link'; -import { usePathname } from 'next/navigation'; -import { ArrowUpRightIcon } from 'lucide-react'; -import LocaleSelector from '@/components/layout/locale-selector'; -import { LocaleLink } from '@/i18n/navigation'; - -interface NavBarProps { - scroll?: boolean; - config: MarketingConfig; -} - -const customNavigationMenuTriggerStyle = cn( - navigationMenuTriggerStyle(), - "bg-transparent hover:bg-transparent hover:text-primary focus:bg-transparent focus:text-primary data-[active]:bg-transparent data-[active]:text-primary data-[state=open]:bg-transparent data-[state=open]:text-primary relative data-[active]:font-bold dark:text-gray-400 dark:hover:text-gray-300 dark:data-[active]:text-white" -); - -export function Navbar({ scroll, config }: NavBarProps) { - const scrolled = useScroll(50); - const { data: session, error } = authClient.useSession(); - const user = session?.user; - // console.log(`Navbar, user:`, user); - - const pathname = usePathname(); - - return ( -
- - {/* desktop navbar */} - - - {/* mobile navbar */} - - -
- ); -} diff --git a/src/components/shared/callout-custom.tsx b/src/components/shared/callout-custom.tsx new file mode 100644 index 0000000..8d4a2bc --- /dev/null +++ b/src/components/shared/callout-custom.tsx @@ -0,0 +1,86 @@ +import { + AlertTriangle, + Ban, + CircleAlert, + CircleCheckBig, + FileText, + Info, + Lightbulb, +} from "lucide-react"; + +import { cn } from "@/lib/utils"; + +interface CalloutProps { + twClass?: string; + children?: React.ReactNode; + type?: keyof typeof dataCallout; +} + +const dataCallout = { + default: { + icon: Info, + classes: + "border-zinc-200 bg-gray-50 text-zinc-900 dark:bg-zinc-800 dark:text-zinc-200", + }, + danger: { + icon: CircleAlert, + classes: + "border-red-200 bg-red-50 text-red-900 dark:bg-red-950 dark:text-red-200", + }, + error: { + icon: Ban, + classes: + "border-red-200 bg-red-50 text-red-900 dark:bg-red-950 dark:text-red-200", + }, + idea: { + icon: Lightbulb, + classes: + "border-blue-200 bg-blue-50 text-blue-800 dark:bg-blue-950 dark:text-blue-200", + }, + info: { + icon: Info, + classes: + "border-blue-200 bg-blue-50 text-blue-800 dark:bg-blue-950 dark:text-blue-200", + }, + note: { + icon: FileText, + classes: + "border-blue-200 bg-blue-50 text-blue-800 dark:bg-blue-950 dark:text-blue-200", + }, + success: { + icon: CircleCheckBig, + classes: + "border-green-200 bg-green-50 text-green-800 dark:bg-green-400/20 dark:text-green-300", + }, + warning: { + icon: AlertTriangle, + classes: + "border-orange-200 bg-orange-50 text-orange-800 dark:bg-orange-400/20 dark:text-orange-300", + }, +}; + +export function Callout({ + children, + twClass, + type = "default", + ...props +}: CalloutProps) { + const { icon: Icon, classes } = dataCallout[type]; + return ( +
+ {/*
+
+ +
+
{children}
+
*/} +
+ ); +} diff --git a/src/components/shared/callout.tsx b/src/components/shared/callout.tsx index 8d4a2bc..3e1fa9c 100644 --- a/src/components/shared/callout.tsx +++ b/src/components/shared/callout.tsx @@ -1,86 +1,30 @@ +import * as React from 'react'; +import { ComponentProps } from 'react'; import { - AlertTriangle, - Ban, - CircleAlert, - CircleCheckBig, - FileText, - Info, - Lightbulb, -} from "lucide-react"; + Alert, + AlertDescription, + AlertTitle +} from '@/components/ui/alert'; -import { cn } from "@/lib/utils"; - -interface CalloutProps { - twClass?: string; - children?: React.ReactNode; - type?: keyof typeof dataCallout; -} - -const dataCallout = { - default: { - icon: Info, - classes: - "border-zinc-200 bg-gray-50 text-zinc-900 dark:bg-zinc-800 dark:text-zinc-200", - }, - danger: { - icon: CircleAlert, - classes: - "border-red-200 bg-red-50 text-red-900 dark:bg-red-950 dark:text-red-200", - }, - error: { - icon: Ban, - classes: - "border-red-200 bg-red-50 text-red-900 dark:bg-red-950 dark:text-red-200", - }, - idea: { - icon: Lightbulb, - classes: - "border-blue-200 bg-blue-50 text-blue-800 dark:bg-blue-950 dark:text-blue-200", - }, - info: { - icon: Info, - classes: - "border-blue-200 bg-blue-50 text-blue-800 dark:bg-blue-950 dark:text-blue-200", - }, - note: { - icon: FileText, - classes: - "border-blue-200 bg-blue-50 text-blue-800 dark:bg-blue-950 dark:text-blue-200", - }, - success: { - icon: CircleCheckBig, - classes: - "border-green-200 bg-green-50 text-green-800 dark:bg-green-400/20 dark:text-green-300", - }, - warning: { - icon: AlertTriangle, - classes: - "border-orange-200 bg-orange-50 text-orange-800 dark:bg-orange-400/20 dark:text-orange-300", - }, +type CalloutProps = ComponentProps & { + icon?: string; + title?: string; }; +/** + * TODO: update + */ export function Callout({ + title, children, - twClass, - type = "default", + icon, ...props -}: CalloutProps) { - const { icon: Icon, classes } = dataCallout[type]; +}: CalloutProps): React.JSX.Element { return ( -
- {/*
-
- -
-
{children}
-
*/} -
+ + {icon && {icon}} + {title && {title}} + {children} + ); } diff --git a/src/components/marketing/blog/mdx-component.tsx b/src/components/shared/mdx-component.tsx similarity index 99% rename from src/components/marketing/blog/mdx-component.tsx rename to src/components/shared/mdx-component.tsx index ec65042..18948e9 100644 --- a/src/components/marketing/blog/mdx-component.tsx +++ b/src/components/shared/mdx-component.tsx @@ -4,7 +4,7 @@ import * as React from 'react'; import Image from 'next/image'; import Link from 'next/link'; import { useMDXComponent } from '@content-collections/mdx/react'; -import { Callout } from '@/components/marketing/blog/callout'; +import { Callout } from '@/components/shared/callout'; import { Accordion, AccordionContent, diff --git a/src/components/marketing/marketing-links.tsx b/src/config/marketing-links.tsx similarity index 84% rename from src/components/marketing/marketing-links.tsx rename to src/config/marketing-links.tsx index afa2e42..8178513 100644 --- a/src/components/marketing/marketing-links.tsx +++ b/src/config/marketing-links.tsx @@ -1,20 +1,16 @@ -import * as React from 'react'; -import { CubeIcon, PaperPlaneIcon } from '@radix-ui/react-icons'; -import { - BookIcon, - BookOpenIcon, - CircuitBoardIcon, - CuboidIcon, - FileBarChartIcon, - LayoutIcon, - PlayIcon -} from 'lucide-react'; -import { Routes } from '@/routes'; import { FacebookIcon } from '@/components/icons/facebook'; import { InstagramIcon } from '@/components/icons/instagram'; import { LinkedInIcon } from '@/components/icons/linkedin'; import { TikTokIcon } from '@/components/icons/tiktok'; import { XTwitterIcon } from '@/components/icons/x'; +import { Routes } from '@/routes'; +import { CubeIcon, PaperPlaneIcon } from '@radix-ui/react-icons'; +import { + BookOpenIcon, + FileBarChartIcon, + LayoutIcon, + PlayIcon +} from 'lucide-react'; export const MENU_LINKS = [ { @@ -32,11 +28,6 @@ export const MENU_LINKS = [ href: Routes.Blog, external: false }, - // { - // title: 'Docs', - // href: Routes.Docs, - // external: false - // }, { title: 'AI', items: [ @@ -162,33 +153,3 @@ export const SOCIAL_LINKS = [ icon: } ]; - -export const DOCS_LINKS = [ - { - title: 'Getting Started', - icon: , - items: [ - { - title: 'Introduction', - href: '/docs', - items: [] - }, - { - title: 'Dependencies', - href: '/docs/dependencies', - items: [] - } - ] - }, - { - title: 'Guides', - icon: , - items: [ - { - title: 'Using MDX', - href: '/docs/using-mdx', - items: [] - } - ] - } -]; diff --git a/src/lib/utils.ts b/src/lib/utils.ts index b78b909..aa86fc5 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -72,10 +72,26 @@ export function getLocaleDate(input: string | number): string { * @param request - The request to get the locale from * @returns The locale from the request or the default locale */ -export const getLocaleFromRequest = (request?: Request) => { +export function getLocaleFromRequest(request?: Request): Locale { const cookies = parseCookies(request?.headers.get("cookie") ?? ""); return ( (cookies[LOCALE_COOKIE_NAME] as Locale) ?? routing.defaultLocale ); -}; \ No newline at end of file +}; + +/** + * Estimates the reading time of a text + * + * @param text - The text to estimate the reading time of + * @param wordsPerMinute - The number of words per minute to use for the estimate + * @returns The estimated reading time + */ +export function estimateReadingTime( + text: string, + wordsPerMinute: number = 250 +): string { + const words = text.trim().split(/\s+/).length; + const minutes = Math.ceil(words / wordsPerMinute); + return minutes === 1 ? '1 minute read' : `${minutes} minutes read`; +} \ No newline at end of file