"use client"; import React, { useState, useEffect } from "react"; import { Card, CardHeader, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import Link from "next/link"; import Image from "next/image"; import axios from "axios"; import { backendUrl } from "@/utils/axios"; import DOMPurify from 'dompurify'; const BlogPost = ({ title, author, date, excerpt, imageUrl, slug }) => { const sanitizedExcerpt = DOMPurify.sanitize(excerpt); const formattedImageUrl = imageUrl !== "NA" ? (imageUrl.startsWith('http') ? imageUrl : `${backendUrl}${imageUrl}`) : "/api/placeholder/300/200"; return (
{title

{title}

{author} | {date}

); }; const PopularArticle = ({ title, author, date, slug }) => (

{title}

{author} | {date}

); const BlogHome = () => { const [currentPage, setCurrentPage] = useState(1); const [blogData, setBlogData] = useState({ recentBlogPosts: [], popularArticles: [] }); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const postsPerPage = 3; useEffect(() => { const fetchBlogData = async () => { try { setLoading(true); const response = await axios.get(`${backendUrl}/blogs/`); setBlogData(response.data); setLoading(false); } catch (err) { console.error("Error fetching blog data:", err); setError("Failed to load blog data. Please try again later."); setLoading(false); } }; fetchBlogData(); }, []); // Get featured blog (first blog from recent posts) const featuredBlog = blogData.recentBlogPosts && blogData.recentBlogPosts.length > 0 ? blogData.recentBlogPosts[0] : null; // Get remaining blogs for pagination const remainingBlogs = blogData.recentBlogPosts && blogData.recentBlogPosts.length > 0 ? blogData.recentBlogPosts.slice(1) : []; const indexOfLastPost = currentPage * postsPerPage; const indexOfFirstPost = indexOfLastPost - postsPerPage; const currentPosts = remainingBlogs.slice(indexOfFirstPost, indexOfLastPost); const paginate = (pageNumber) => setCurrentPage(pageNumber); const featuredImageUrl = featuredBlog && featuredBlog.imageUrl !== "NA" ? (featuredBlog.imageUrl.startsWith('http') ? featuredBlog.imageUrl : `${backendUrl}${featuredBlog.imageUrl}`) : "/api/placeholder/300/200"; if (loading) { return
Loading blogs...
; } if (error) { return
{error}
; } // Check if there are no blogs at all if (!blogData.recentBlogPosts || blogData.recentBlogPosts.length === 0) { return (

Insights from Gupta Rudraksha

No Blogs Found

We're currently working on creating insightful content for you. Please check back later for updates on Rudraksha and spiritual practices.

); } return (

Insights from Gupta Rudraksha

Explore our latest articles on the spiritual, cultural, and healing aspects

{/* Featured blog section */} {featuredBlog && (
{featuredBlog.title}

{featuredBlog.title}

{featuredBlog.author} | {featuredBlog.date}

Popular Articles

{blogData.popularArticles && blogData.popularArticles.length > 0 ? ( blogData.popularArticles.map((article, index) => ( )) ) : (

No popular articles available

)}
)}

Recent Blogs

{currentPosts.length > 0 ? ( currentPosts.map((post, index) => ( )) ) : (

No recent blogs available

)} {remainingBlogs.length > postsPerPage && (
{[...Array(Math.ceil(remainingBlogs.length / postsPerPage))].map( (_, index) => ( ) )}
)}

Popular Articles

{blogData.popularArticles && blogData.popularArticles.length > 0 ? ( blogData.popularArticles.map((article, index) => ( )) ) : (

No popular articles available

)}
); }; export default BlogHome;