limit news articles shown and add button to show more

This commit is contained in:
elise
2024-08-09 15:27:56 +02:00
parent 297d0cb79a
commit 89ff4d35ee
2 changed files with 20 additions and 5 deletions

View File

@ -1,3 +1,5 @@
"use client"
import { useState } from "react";
import { SectionHeader } from "../general/SectionHeader";
import { NewsItem } from "./NewsItem";
import styles from "./newsList.module.scss";
@ -6,15 +8,16 @@ import { NewsFragment } from "@/lib/news";
export const NewsList = ({
news,
heading,
featured,
limit,
featured
}: {
news: NewsFragment[];
heading?: string;
featured?: boolean;
limit?: number;
}) => {
const filteredNews = limit ? news.slice(0, limit) : news;
const [limit, setLimit] = useState(17);
function increaseLimit() {
setLimit(limit + 16);
}
return (
<section className={styles.newsWrapper}>
@ -22,10 +25,17 @@ export const NewsList = ({
<SectionHeader heading={heading} link="/aktuelt" linkText="Se flere artikler" />
)}
<ul className={`${styles.newsList} ${featured && styles.featured}`}>
{filteredNews.map((singleNews) => (
{news.slice(0, limit).map((singleNews) => (
<NewsItem key={singleNews.id} news={singleNews} />
))}
</ul>
{limit && news.length > limit && (
<div className={styles.showMore}>
<button onClick={increaseLimit}>
<span>Last inn flere artikler</span>
</button>
</div>
)}
</section>
);
};