|
1 | 1 | import { useEffect, useState, Suspense, startTransition } from "react"; |
2 | | -import { useSearchParams } from "react-router"; |
3 | 2 | import { getConferenceByCode, getEventsByIds, getSpeakerById } from "@/lib/db"; |
4 | 3 | import type { HTConference, HTEvent, HTPerson } from "@/types/db"; |
5 | 4 | import { ConferenceHeader } from "@/components/ConferenceHeader"; |
6 | 5 | import LoadingPage from "@/components/LoadingPage"; |
7 | 6 | import ErrorPage from "@/components/ErrorPage"; |
8 | 7 | import { HTFooter } from "@/components/HTFooter"; |
9 | 8 | import PersonDetails from "./PersonDetails"; |
| 9 | +import { useNormalizedParams } from "@/lib/utils/params"; |
10 | 10 |
|
11 | 11 | export function Person() { |
12 | | - const [searchParams] = useSearchParams(); |
13 | | - const confCode = searchParams.get("conf"); |
14 | | - const personId = searchParams.get("person"); |
| 12 | + const { confCode, personId } = useNormalizedParams(); |
15 | 13 |
|
16 | 14 | const [person, setPerson] = useState<HTPerson | null>(null); |
17 | 15 | const [conference, setConference] = useState<HTConference | null>(null); |
@@ -79,10 +77,10 @@ export function Person() { |
79 | 77 | <div className="min-h-dvh flex flex-col"> |
80 | 78 | {conference && <ConferenceHeader conference={conference} />} |
81 | 79 | <main className="flex-1"> |
82 | | - {person && confCode ? ( |
| 80 | + {person && conference ? ( |
83 | 81 | <Suspense fallback={<LoadingPage message="Loading people..." />}> |
84 | 82 | <PersonDetails |
85 | | - confCode={confCode} |
| 83 | + conference={conference} |
86 | 84 | person={person} |
87 | 85 | events={events} |
88 | 86 | /> |
|
0 commit comments