From 0dcb798894f41d978f2030ef15db91895a84c610 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Fri, 2 Jan 2026 23:02:30 +0700 Subject: [PATCH] feat: Add news detail page with view increment and media loading --- app/Http/Controllers/Home/NewsController.php | 13 +++ .../home/news/components/MainContent.jsx | 1 + resources/js/pages/home/news/pages/Show.jsx | 81 +++++++++++++++++++ routes/web.php | 1 + 4 files changed, 96 insertions(+) create mode 100644 resources/js/pages/home/news/pages/Show.jsx diff --git a/app/Http/Controllers/Home/NewsController.php b/app/Http/Controllers/Home/NewsController.php index 48d16f9..fe55cc4 100644 --- a/app/Http/Controllers/Home/NewsController.php +++ b/app/Http/Controllers/Home/NewsController.php @@ -67,4 +67,17 @@ public function index(Request $request) 'filters' => request()->only(['search', 'category']), ]); } + + public function show(News $news) + { + $news->load(['author', 'categories', 'tags']); + $news->increment('views'); + $news->thumbnail = $news->getFirstMediaUrl('news'); + + return Inertia::render('home/news/pages/Show', [ + 'pageTitle' => 'Detail Berita', + 'pageDescription' => $news->title, + 'news' => $news, + ]); + } } diff --git a/resources/js/pages/home/news/components/MainContent.jsx b/resources/js/pages/home/news/components/MainContent.jsx index 6d361ea..690692f 100644 --- a/resources/js/pages/home/news/components/MainContent.jsx +++ b/resources/js/pages/home/news/components/MainContent.jsx @@ -210,6 +210,7 @@ export default function MainContent({ pageTitle, pageDescription, categories, ne onBlur={handleBlur} tabIndex={0} className={focusedCardIndex === news.id ? 'Mui-focused' : ''} + onClick={() => router.get(`/news/${news.slug}`)} > + + + + + +
+ +
+ + + + + + + {news.categories.map((category, index) => + + )} + + + + {news.title} + + + + + {news.tags && news.tags.length > 0 && ( + + {news.tags.map((tag, index) => + + )} + + )} +
+
+