start splitting up event list
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
import { graphql } from "@/gql";
|
import { graphql } from "@/gql";
|
||||||
import { EventFragment } from "@/gql/graphql";
|
import { EventFragment } from "@/gql/graphql";
|
||||||
import { getClient } from "@/app/client";
|
import { getClient } from "@/app/client";
|
||||||
import { EventList } from "@/components/events/EventList";
|
import { FeaturedEvents } from "@/components/events/FeaturedEvents";
|
||||||
import { Body } from "@/components/general/Body";
|
import { Body } from "@/components/general/Body";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import { PersonList } from "@/components/people/PersonList";
|
import { PersonList } from "@/components/people/PersonList";
|
||||||
@ -21,7 +21,7 @@ export default async function Home() {
|
|||||||
return (
|
return (
|
||||||
<main className="site-main" id="main">
|
<main className="site-main" id="main">
|
||||||
<div>
|
<div>
|
||||||
<EventList events={events} />
|
<FeaturedEvents events={events} />
|
||||||
<blockquote>«Hvor Glæden hersker, er alltid Fest»</blockquote>
|
<blockquote>«Hvor Glæden hersker, er alltid Fest»</blockquote>
|
||||||
<NewsList />
|
<NewsList />
|
||||||
<div>
|
<div>
|
||||||
|
20
web/src/components/events/EventFilter.tsx
Normal file
20
web/src/components/events/EventFilter.tsx
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import styles from "./eventFilter.module.scss";
|
||||||
|
|
||||||
|
export const EventFilter = () => {
|
||||||
|
return (
|
||||||
|
<div className={styles.eventFilter}>
|
||||||
|
<span>Filter</span>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<button>Kategori</button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button>Kategori</button>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button>Kategori</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
@ -1,13 +1,23 @@
|
|||||||
import { EventFragment } from "@/gql/graphql";
|
import { EventFragment } from "@/gql/graphql";
|
||||||
import { EventItem } from "./EventItem";
|
import { EventItem } from "./EventItem";
|
||||||
import styles from "./eventList.module.scss";
|
import styles from "./eventList.module.scss";
|
||||||
|
import { EventFilter } from "./EventFilter";
|
||||||
|
|
||||||
export const EventList = ({ events }: { events: EventFragment[] }) => {
|
export const EventList = ({ events }: { events: EventFragment[] }) => {
|
||||||
return (
|
return (
|
||||||
<ul className={styles.eventList}>
|
<div className={styles.events}>
|
||||||
{events.map((event) => (
|
<EventFilter />
|
||||||
<EventItem key={event.id} event={event} />
|
<div className={styles.eventWrapper}>
|
||||||
))}
|
<div className={styles.displayOptions}>
|
||||||
</ul>
|
<button>Vis liste</button>
|
||||||
|
<button>Vis kalender</button>
|
||||||
|
</div>
|
||||||
|
<ul className={styles.eventList}>
|
||||||
|
{events.map((event) => (
|
||||||
|
<EventItem key={event.id} event={event} />
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
13
web/src/components/events/FeaturedEvents.tsx
Normal file
13
web/src/components/events/FeaturedEvents.tsx
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { EventFragment } from "@/gql/graphql";
|
||||||
|
import { EventItem } from "./EventItem";
|
||||||
|
import styles from "./featuredEvents.module.scss";
|
||||||
|
|
||||||
|
export const FeaturedEvents = ({ events }: { events: EventFragment[] }) => {
|
||||||
|
return (
|
||||||
|
<ul className={styles.eventList}>
|
||||||
|
{events.map((event) => (
|
||||||
|
<EventItem key={event.id} event={event} />
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
);
|
||||||
|
};
|
14
web/src/components/events/eventFilter.module.scss
Normal file
14
web/src/components/events/eventFilter.module.scss
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
.eventFilter {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1rem;
|
||||||
|
background: var(--color-background-secondary);
|
||||||
|
margin: var(--spacing-sitepadding) calc(var(--spacing-sitepadding)*-1);
|
||||||
|
padding: 1rem var(--spacing-sitepadding);
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style: none;
|
||||||
|
display: flex;
|
||||||
|
gap: .5rem;
|
||||||
|
}
|
||||||
|
}
|
@ -1,3 +1,9 @@
|
|||||||
|
.eventWrapper {
|
||||||
|
background: #ccc;
|
||||||
|
margin: calc(var(--spacing-sitepadding)*-1) calc(var(--spacing-sitepadding)*-1);
|
||||||
|
padding: var(--spacing-sitepadding);
|
||||||
|
}
|
||||||
|
|
||||||
.eventList {
|
.eventList {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
@ -5,3 +11,14 @@
|
|||||||
row-gap: var(--spacing-gap-row);
|
row-gap: var(--spacing-gap-row);
|
||||||
padding-bottom: var(--spacing-section-bottom);
|
padding-bottom: var(--spacing-section-bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.displayOptions {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
gap: var(--spacing-gap-column);
|
||||||
|
margin-bottom: var(--spacing-sitepadding);
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
}
|
7
web/src/components/events/featuredEvents.module.scss
Normal file
7
web/src/components/events/featuredEvents.module.scss
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.eventList {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
column-gap: var(--spacing-gap-column);
|
||||||
|
row-gap: var(--spacing-gap-row);
|
||||||
|
padding-bottom: var(--spacing-section-bottom);
|
||||||
|
}
|
@ -85,7 +85,7 @@ button {
|
|||||||
background: var(--color-cta);
|
background: var(--color-cta);
|
||||||
color: var(--color-text);
|
color: var(--color-text);
|
||||||
border: none;
|
border: none;
|
||||||
padding: 1rem 1.5rem;
|
padding: .5rem 1rem;
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
font-size: var(--font-size-body);
|
font-size: var(--font-size-body);
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
|
Reference in New Issue
Block a user