Skip to content

Commit 70f22cc

Browse files
La til searchParam for abonner (#206)
Co-authored-by: simsine <simen@simsine.no>
1 parent 3f34ab7 commit 70f22cc

3 files changed

Lines changed: 7409 additions & 5307 deletions

File tree

components/modals/calendarModal.tsx

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,33 @@
11
"use client"
22
import Modal from "@/components/modals/modal"
3-
import { useEffect, useMemo, useState } from "react"
3+
import { type ReactNode, useEffect, useMemo, useState } from "react"
44
import type { EventType } from "@/sanity/types"
55
import Select from "@/components/select/select"
66
import { getEventTypeLabel } from "@/sanity/lib/utils"
77
import AddToCalendarDropdown from "@/components/dropdown/addToCalendarDropdown"
8+
import { useSearchParams } from "next/navigation"
89

9-
const CalendarModal: Component = () => (
10-
<Modal
11-
size={"xl"}
12-
label={"Abonner på arrangementer"}
13-
modalTitle={"Abonner på arrangementer i kalenderen din"}
14-
modalContent={<ModalContent />}
15-
trigger={toggle => (
16-
<button
17-
onClick={toggle}
18-
className={"text-root-primary dark:text-root-light"}
19-
aria-label={"Åpne meny"}>
20-
Abonner på arrangementer
21-
</button>
22-
)}
23-
/>
24-
)
10+
const CalendarModal: Component = () => {
11+
const searchParams = useSearchParams()
12+
const initState = searchParams.has("abonner")
13+
return (
14+
<Modal
15+
initialState={initState}
16+
size={"xl"}
17+
label={"Abonner på arrangementer"}
18+
modalTitle={"Abonner på arrangementer i kalenderen din"}
19+
modalContent={<ModalContent />}
20+
trigger={toggle => (
21+
<button
22+
onClick={toggle}
23+
className={"text-root-primary dark:text-root-light"}
24+
aria-label={"Åpne meny"}>
25+
Abonner på arrangementer
26+
</button>
27+
)}
28+
/>
29+
)
30+
}
2531

2632
export default CalendarModal
2733

components/modals/modal.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import useToggle from "@/hooks/useToggle"
1212
import { type ReactNode } from "react"
1313

1414
interface ModalProps extends DefaultProps {
15+
initialState?: boolean
1516
label?: string
1617
modalTitle?: string
1718
modalContent?: ReactNode
@@ -21,6 +22,7 @@ interface ModalProps extends DefaultProps {
2122

2223
/**
2324
* En modal som flyter over innholdet på siden.
25+
* @param initialState
2426
* @param label Tittelen på knappen som åpner modalen. Vises kun hvis trigger ikke er satt.
2527
* @param size Størrelsen på modalen.
2628
* @param modalTitle Tittelen på modalen. Vises på toppen av modalen.
@@ -29,14 +31,15 @@ interface ModalProps extends DefaultProps {
2931
* @param props Andre props som sendes til Modal komponenten.
3032
*/
3133
const Modal: Component<ModalProps> = ({
34+
initialState,
3235
label,
3336
size,
3437
modalTitle,
3538
modalContent,
3639
trigger,
3740
...props
3841
}) => {
39-
const [isOpen, toggleOpen] = useToggle()
42+
const [isOpen, toggleOpen] = useToggle(initialState ?? false)
4043

4144
function closeModal() {
4245
toggleOpen(false)

0 commit comments

Comments
 (0)