Skip to content

Commit c041e11

Browse files
committed
Dark mode på bakgrunn og lukk meny når man trykker utenfor
1 parent 4c7def6 commit c041e11

3 files changed

Lines changed: 21 additions & 5 deletions

File tree

app/(root)/arrangement/page.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import EventCardPaginated from "@/app/(root)/arrangement/eventCardPaginated"
33
import { type Metadata } from "next"
44
import CalendarModal from "@/components/modals/calendarModal"
55
import FloatingMenu from "@/components/floatingMenu"
6+
import { Card } from "@nextui-org/card"
67

78
export const metadata: Metadata = {
89
title: "Arrangementer | Root Linjeforening",
@@ -27,9 +28,9 @@ const EventsPage: AsyncPage = async () => {
2728
return (
2829
<div className={"pt-3 sm:px-10"}>
2930
<FloatingMenu>
30-
<div className={"rounded-lg bg-white p-2"}>
31+
<Card className={"rounded-lg p-2"}>
3132
<CalendarModal />
32-
</div>
33+
</Card>
3334
</FloatingMenu>
3435
<div className={"flex flex-wrap items-baseline justify-center gap-5 sm:p-5"}>
3536
<EventCardPaginated

components/floatingMenu.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import { ChevronRightIcon } from "@heroicons/react/24/outline"
44
import { defaultIconSize } from "@/components/icons/icon"
55
import useToggle from "@/hooks/useToggle"
6+
import { useEffect, useRef } from "react"
67

7-
// TODO lukk når man trykker utenfor
88
/**
99
* En meny som flyter over innholdet på venstre side av skjermen. Dersom skjermen er for liten, vil menyen kunne åpnes og lukkes.
1010
* Ellers vil menyen alltid være åpen.
@@ -14,9 +14,21 @@ import useToggle from "@/hooks/useToggle"
1414
*/
1515
const FloatingMenu: Component<ChildProps> = ({ children, className, ...props }) => {
1616
const [isMenuOpen, toggleMenu] = useToggle()
17+
const menuRef = useRef<HTMLDivElement>(null)
18+
19+
useEffect(() => {
20+
function onClick(e: MouseEvent): void {
21+
if (menuRef.current && !menuRef.current.contains(e.target as Node)) {
22+
toggleMenu(false)
23+
}
24+
}
25+
26+
document.addEventListener("click", onClick)
27+
return () => document.removeEventListener("click", onClick)
28+
}, [])
1729

1830
return (
19-
<div className={`fixed left-0 z-50 ${className}`} {...props}>
31+
<div ref={menuRef} className={`fixed left-0 z-50 ${className}`} {...props}>
2032
<div className={"2xl:hidden"}>
2133
<button
2234
className={`h-fit w-fit divide-y rounded-r-2xl bg-white p-2 opacity-70 dark:bg-default-dark-background`}

components/modals/calendarModal.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ const CalendarModal: Component = () => (
1313
modalTitle={"Abonner på arrangementer i kalenderen din"}
1414
modalContent={<ModalContent />}
1515
trigger={toggle => (
16-
<button onClick={toggle} className={"text-root-primary"} aria-label={"Åpne meny"}>
16+
<button
17+
onClick={toggle}
18+
className={"text-root-primary dark:text-root-light"}
19+
aria-label={"Åpne meny"}>
1720
Abonner på arrangementer
1821
</button>
1922
)}

0 commit comments

Comments
 (0)