2025-07-23 19:11:13 +05:30

140 lines
4.5 KiB
JavaScript

import { allBlogs } from "@/utlis/constant.utils";
import React from "react";
import Image from "next/image";
import Link from "next/link";
import AnimatedText from "@/components/common/AnimatedText";
function truncateWords(text, wordLimit) {
const words = text.split(" ");
return words.length > wordLimit
? words.slice(0, wordLimit).join(" ") + "..."
: text;
}
export default function Blogs() {
const [leftBlog, ...rightBlogs] = allBlogs.slice(0, 3);
return (
<section
id="blog"
className="news-section fix section-padding fix scrollSpySection"
>
<div className="shape-1 float-bob-y">
<Image
src="/assets/img/blog/blog-left.webp"
width={165}
height={116}
alt="img"
/>
</div>
<div className="shape-2 float-bob-x">
<Image
src="/assets/img/blog/blog-right.webp"
width={165}
height={116}
alt="img"
/>
</div>
<div className="container">
<div className="section-title text-center">
<h6 className="wow fadeInUp">
<i className="fa-regular fa-arrow-left-long" />
Blog &amp; News
<i className="fa-regular fa-arrow-right-long" />
</h6>
<h2 className="splt-txt wow">
<AnimatedText text="Latest News & Blog" />
</h2>
</div>
<div className="row">
<div className="col-lg-6 wow fadeInUp" data-wow-delay=".2s">
{leftBlog && (
<div
key={leftBlog.id}
className="news-image-items bg-cover"
style={{ backgroundImage: `url("${leftBlog.image}")` }}
>
<div className="news-content">
<ul>
<li>
<i className="fa-regular fa-user" />
{leftBlog.author.name}
</li>
<li>
<i className="fa-solid fa-tag" />
{leftBlog.category}
</li>
</ul>
<h3>
<Link href={`/news-details/${leftBlog.slug}`}>
{truncateWords(leftBlog.title.replace(/<[^>]+>/g, ""), 12)
.split("<br />")
.map((line, index) => (
<React.Fragment key={index}>
{line}
<br />
</React.Fragment>
))}
</Link>
</h3>
<p className="text-white">
{truncateWords(leftBlog.description.replace(/<[^>]+>/g, ""), 25)}
</p>
</div>
</div>
)}
</div>
<div className="col-lg-6">
<div className="news-right-items">
{rightBlogs.map((item) => (
<div
key={item.id}
className="news-card-items wow fadeInUp"
data-wow-delay={item.delay}
>
<div className="news-content">
<ul>
<li>
<i className="fa-regular fa-user" />
{item.author.name}
</li>
<li>
<i className="fa-solid fa-tag" />
{item.category}
</li>
</ul>
<h4>
<Link href={`/news-details/${item.slug}`}>
{truncateWords(item.title.replace(/<[^>]+>/g, ""), 8)}
</Link>
</h4>
<p>
{truncateWords(item.description.replace(/<[^>]+>/g, ""), 10)}
</p>
<Link
href={`/news-details/${item.slug}`}
className="link-btn"
>
Read More <i className="fa-regular fa-arrow-right-long" />
</Link>
</div>
<div className="news-image">
<Image
src={item.image}
width={247}
height={258}
alt="img"
/>
</div>
</div>
))}
</div>
</div>
</div>
</div>
</section>
);
}