diff --git a/web/src/components/events/EventContainer.tsx b/web/src/components/events/EventContainer.tsx
index e7652fe..f655f51 100644
--- a/web/src/components/events/EventContainer.tsx
+++ b/web/src/components/events/EventContainer.tsx
@@ -16,6 +16,8 @@ import styles from "./eventContainer.module.scss";
import { formatDate, formatYearMonth } from "@/lib/date";
import { parse } from "date-fns";
import { unique } from "@/lib/common";
+import Icon from "../general/Icon";
+import { useState } from "react";
/*
TODO: canonical / alternate URLs https://github.com/47ng/nuqs?tab=readme-ov-file#seo
@@ -64,22 +66,40 @@ export const EventContainer = ({
.includes(category)
);
+ const [showFilter, setShowFilter] = useState(false);
+ function toggleFilter() {
+ setShowFilter(!showFilter);
+ }
+
return (
-
-
-
-
+
+
+
+
{mode === "list" &&
}
{mode === "calendar" &&
}
diff --git a/web/src/components/events/EventFilter.tsx b/web/src/components/events/EventFilter.tsx
index 8554b9c..65e00e6 100644
--- a/web/src/components/events/EventFilter.tsx
+++ b/web/src/components/events/EventFilter.tsx
@@ -9,6 +9,7 @@ export const EventFilter = ({
eventOrganizers,
setOrganizer,
activeOrganizer,
+ isVisible,
}: {
eventCategories: EventCategory[];
setCategory: (slug: string | null) => void;
@@ -16,6 +17,7 @@ export const EventFilter = ({
eventOrganizers: EventOrganizer[];
setOrganizer: (slug: string | null) => void;
activeOrganizer: string | null;
+ isVisible: boolean;
}) => {
const onOrganizerSelect = (e: React.ChangeEvent
) => {
const organizer = e.target.value;
@@ -23,44 +25,52 @@ export const EventFilter = ({
};
return (
-
-
Kategori
-
- {eventCategories
- .filter((x) => x.showInFilters)
- .map((category) => (
- -
+
+
+
Kategori
+
+ {eventCategories
+ .filter((x) => x.showInFilters)
+ .map((category) => (
+ -
+
+
+ ))}
+
+
+
+
+
+
);
diff --git a/web/src/components/events/eventContainer.module.scss b/web/src/components/events/eventContainer.module.scss
index 7083943..1eedeea 100644
--- a/web/src/components/events/eventContainer.module.scss
+++ b/web/src/components/events/eventContainer.module.scss
@@ -12,15 +12,19 @@
}
.displayOptions {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: var(--spacing-gap-column);
- //padding: 0 var(--spacing-sitepadding);
+ display: flex;
+ gap: .5rem;
+ align-items: center;
+ position: relative;
+ z-index: 10;
+ transition: background-color .5s ease;
- button {
- border-radius: 0;
- background: var(--color-deepBrick);
- color: var(--color-goldenBeige);
+ button:last-child {
+ margin: 0 0 0 auto;
+ }
+
+ &[data-showFilter=true] {
+ background-color: var(--color-background-secondary);
}
}
@@ -91,6 +95,10 @@
}
@media (max-width: 1200px) {
+ .eventList {
+ grid-template-columns: 1fr 1fr;
+ }
+
.calendarWeek {
grid-template-columns: 1fr;
}
@@ -116,4 +124,10 @@
padding: calc(var(--spacing-gap-column)/2) var(--spacing-sitepadding);
}
}
+}
+
+@media (max-width: 700px) {
+ .eventList {
+ grid-template-columns: 1fr;
+ }
}
\ No newline at end of file
diff --git a/web/src/components/events/eventFilter.module.scss b/web/src/components/events/eventFilter.module.scss
index 6cd36d9..69247fb 100644
--- a/web/src/components/events/eventFilter.module.scss
+++ b/web/src/components/events/eventFilter.module.scss
@@ -1,10 +1,26 @@
.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);
+ display: grid;
+ grid-template-rows: 0fr;
+ transition: grid-template-rows .5s ease;
+ margin: var(--spacing-sitepadding) calc(var(--spacing-sitepadding)*-1) 0;
+
+ .filterContent {
+ background-color: var(--color-background);
+ padding: 1rem var(--spacing-sitepadding);
+ min-height: 0;
+ visibility: hidden;
+ opacity: 0;
+ transition: visibility .5s, opacity .5s ease, background-color .5s ease;
+ }
+
+ .filterItem {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+ margin-bottom: 1rem;
+
+
+ }
ul {
list-style: none;
@@ -25,4 +41,14 @@
color: var(--color-goldenBeige);
}
}
+
+ &[data-show=true] {
+ grid-template-rows: 1fr;
+
+ .filterContent {
+ background-color: var(--color-background-secondary);
+ visibility: visible;
+ opacity: 1;
+ }
+ }
}
\ No newline at end of file
diff --git a/web/src/components/general/pageHeader.module.scss b/web/src/components/general/pageHeader.module.scss
index afb0eb4..81b8802 100644
--- a/web/src/components/general/pageHeader.module.scss
+++ b/web/src/components/general/pageHeader.module.scss
@@ -1,6 +1,6 @@
.pageHeader {
position: relative;
- padding: var(--spacing-l) 0 calc(var(--spacing-l) + var(--spacing-sitepadding));
+ padding: var(--spacing-l) 0 var(--spacing-sitepadding);
}
.title {
diff --git a/web/src/css/base.scss b/web/src/css/base.scss
index 27610e5..63180c1 100644
--- a/web/src/css/base.scss
+++ b/web/src/css/base.scss
@@ -145,6 +145,18 @@ input[type="text"] {
transition: opacity var(--transition-easing);
}
+select {
+ border-radius: 10rem;
+ background: var(--color-white);
+ color: var(--color-text);
+ border: 2px solid currentColor;
+ padding: .5rem 1rem;
+ font-family: inherit;
+ font-size: var(--font-size-body);
+ font-weight: 500;
+ transition: opacity var(--transition-easing);
+}
+
.number {
font-family: var(--font-serif);
font-weight: 400;