File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ import EventCardPaginated from "@/app/(root)/arrangement/eventCardPaginated"
33import { type Metadata } from "next"
44import CalendarModal from "@/components/modals/calendarModal"
55import FloatingMenu from "@/components/floatingMenu"
6+ import { Card } from "@nextui-org/card"
67
78export 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
Original file line number Diff line number Diff line change 33import { ChevronRightIcon } from "@heroicons/react/24/outline"
44import { defaultIconSize } from "@/components/icons/icon"
55import 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 */
1515const 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` }
Original file line number Diff line number Diff 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 ) }
You can’t perform that action at this time.
0 commit comments