From f38f28aaee0b54393ef4fbd737f5d89696cdfd57 Mon Sep 17 00:00:00 2001 From: Anang Yusman Date: Thu, 16 Apr 2026 17:19:59 +0800 Subject: [PATCH] update data --- components/landing-page/landing-site-nav.tsx | 107 ++++++++++++++++--- 1 file changed, 91 insertions(+), 16 deletions(-) diff --git a/components/landing-page/landing-site-nav.tsx b/components/landing-page/landing-site-nav.tsx index fa8b976..f943bcb 100644 --- a/components/landing-page/landing-site-nav.tsx +++ b/components/landing-page/landing-site-nav.tsx @@ -20,6 +20,7 @@ import { Image as ImageIcon, FileText, } from "lucide-react"; +import { fetchPublishedArticles } from "@/lib/articles-public"; const LANDING_SECTION_IDS = new Set(["products", "services"]); @@ -49,6 +50,49 @@ export default function LandingSiteNav({ const [open, setOpen] = useState(false); const [openKonten, setOpenKonten] = useState(false); const [activeMenu, setActiveMenu] = useState(null); + const [event, setEvent] = useState(null); + const [popular, setPopular] = useState([]); + + useEffect(() => { + const loadPopular = async () => { + const res = await fetchPublishedArticles( + { + typeId: 1, + limit: 3, + page: 1, + sortBy: "view_count", + sort: "desc", + }, + { mode: "client" }, + ); + + setPopular(res?.items ?? []); + }; + + loadPopular(); + }, []); + + useEffect(() => { + const loadEvent = async () => { + const res = await fetchPublishedArticles( + { + typeId: 1, + limit: 1, + page: 1, + sortBy: "created_at", + sort: "desc", + }, + { mode: "client" }, + ); + + const firstItem = res?.items?.[0]; + if (firstItem) { + setEvent(firstItem); + } + }; + + loadEvent(); + }, []); useEffect(() => { if (pathname !== "/") return; @@ -330,27 +374,58 @@ export default function LandingSiteNav({
{/* POPULAR */} -
-

POPULAR PAGES

-
    -
  • Berita 1...
  • -
  • Berita 2...
  • -
  • Berita 3...
  • -
-
+
    +

    POPULAR PAGES

    + {popular.length > 0 ? ( + popular.map((item) => ( +
  • + setOpen(false)} + className="hover:underline line-clamp-2 text-sm" + > + {item.title} + +
  • + )) + ) : ( +
  • Loading...
  • + )} +
{/* EVENT */}

Upcoming Event

-
-
-
-

2026 Internal Conference

-

- Lorem ipsum dolor sit amet... -

+ + {event ? ( +
+ {/* IMAGE */} +
+ {event.thumbnailUrl ? ( + {event.title} + ) : ( +
+ )} +
+ + {/* TEXT */} +
+

{event.title}

+ +

+ {event.description?.slice(0, 120)}... +

+
-
+ ) : ( +

Loading...

+ )}