This commit is contained in:
2024-05-21 00:12:19 +02:00
parent 9e0466f78b
commit 963987278a
22 changed files with 1025 additions and 90 deletions

View File

@ -8,7 +8,7 @@ import {
EventFragment,
getClosestOccurrence,
} from "@/lib/event";
import { toLocalTime, formatDate, commonDateFormat } from "@/lib/date";
import { toLocalTime, formatDate, commonDateTimeFormat } from "@/lib/date";
export const EventItem = ({
event,
@ -46,11 +46,11 @@ export const EventItem = ({
<p className={styles.details}>
{numOccurrences === 1 &&
nextOccurrence?.start &&
formatDate(nextOccurrence.start, commonDateFormat)}
formatDate(nextOccurrence.start, commonDateTimeFormat)}
{numOccurrences > 1 && nextOccurrence?.start && (
<span>
<em>Neste:</em>{" "}
{formatDate(nextOccurrence.start, commonDateFormat)}
{formatDate(nextOccurrence.start, commonDateTimeFormat)}
</span>
)}
</p>

View File

@ -10,7 +10,7 @@ export const PageHeader = ({
return (
<div className={styles.pageHeader}>
<h1 className={styles.title}>{heading}</h1>
<p className="lead">{lead}</p>
{lead && <p className="lead">{lead}</p>}
</div>
);
};

View File

@ -1,23 +1,34 @@
import styles from "./newsItem.module.scss";
import Link from "next/link";
import Image from "../general/Image";
import { NewsFragment } from "@/lib/news";
import { formatDate, commonDateFormat } from "@/lib/date";
import Link from "next/link";
export const NewsItem = ({ news }: { news: NewsFragment }) => {
const featuredImage: any = news.featuredImage;
export const NewsItem = () => {
return (
<li className={`${styles.newsItem} linkItem`}>
<div className={styles.image}></div>
<div className={styles.text}>
<p className={styles.date}>Publiseringsdato</p>
<h2 className={styles.title}>Nyhetsartikkel</h2>
<p className={styles.lead}>
Sed sodales nunc quis sapien malesuada, a faucibus turpis blandit.
Suspendisse potenti. Sed auctor enim et augue dapibus, vitae laoreet
lacus vulputate. Nulla sed finibus diam.
</p>
</div>
{/*<Link href={`/lokaler/${venue.slug}`} className="hiddenLink">
Mer om lokalet {venue.title}
</Link>*/}
</li>
<Link href={`/aktuelt/${news.slug}`}>
<li className={`${styles.newsItem} linkItem`}>
<div className={styles.image}>
{featuredImage && (
<Image
src={featuredImage.url}
alt={featuredImage.alt}
width={featuredImage.width}
height={featuredImage.height}
sizes="20vw"
/>
)}
</div>
<div className={styles.text}>
<p className={styles.date}>
{formatDate(news.firstPublishedAt, commonDateFormat)}
</p>
<h2 className={styles.title}>{news.title}</h2>
<p className={styles.lead}>{news.excerpt}</p>
</div>
</li>
</Link>
);
};

View File

@ -1,38 +1,27 @@
import { NewsItem } from "./NewsItem";
import styles from "./newsList.module.scss";
import { NewsFragment } from "@/lib/news";
export const NewsList = ({
news,
heading,
featured,
limit,
}: {
news: NewsFragment[];
heading?: string;
featured?: boolean;
limit?: number;
}) => {
const filteredNews = limit ? news.slice(0, limit) : news;
return (
<section className={styles.newsWrapper}>
{heading && <h2 className="suphead">{heading}</h2>}
<ul className={`${styles.newsList} ${featured && styles.featured}`}>
{limit === 3 ? (
<>
<NewsItem />
<NewsItem />
<NewsItem />
</>
) : (
<>
<NewsItem />
<NewsItem />
<NewsItem />
<NewsItem />
<NewsItem />
<NewsItem />
<NewsItem />
<NewsItem />
<NewsItem />
</>
)}
{filteredNews.map((singleNews) => (
<NewsItem key={singleNews.id} news={singleNews} />
))}
</ul>
</section>
);