File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -47,9 +47,15 @@ export default function SpeakerPage({ params }: SpeakerProps) {
4747 . filter ( s => s . speakers && s . speakers . some ( s => s . username === params . id ) )
4848 . map ( s => ( {
4949 ...s ,
50- speakers : s . speakers ! . map (
51- s => speakers . find ( speaker => speaker . username === s . username ) ! ,
52- ) ,
50+ speakers : s . speakers ! . map ( other => {
51+ const s = speakers . find ( s => s . username === other . username )
52+ if ( ! s ) {
53+ throw new Error (
54+ `Speaker "${ other . username } " not found for ${ speaker . username } details page` ,
55+ )
56+ }
57+ return s
58+ } ) ,
5359 } ) )
5460
5561 return (
Original file line number Diff line number Diff line change @@ -34,7 +34,11 @@ function getEventTitle(event: ScheduleSession, speakers: string[]): string {
3434type SessionProps = { params : { id : string } }
3535
3636export function generateMetadata ( { params } : SessionProps ) : Metadata {
37- const event = schedule . find ( s => s . id === params . id ) !
37+ const event = schedule . find ( s => s . id === params . id )
38+
39+ if ( ! event ) {
40+ notFound ( )
41+ }
3842
3943 const keywords = [
4044 event . event_type ,
@@ -77,14 +81,20 @@ const Tag = ({
7781
7882export default function SessionPage ( { params } : SessionProps ) {
7983 const event = schedule . find ( s => s . id === params . id )
84+
8085 if ( ! event ) {
8186 notFound ( )
8287 }
8388
84- // @ts -expect-error -- fixme
85- event . speakers = ( event . speakers || [ ] ) . map ( speaker =>
86- speakers . find ( s => s . username === speaker . username ) ,
87- )
89+ event . speakers = ( event . speakers || [ ] ) . map ( speaker => {
90+ const s = speakers . find ( s => s . username === speaker . username )
91+ if ( ! s ) {
92+ throw new Error (
93+ `Speaker "${ speaker . username } " not found for "${ event . name } "` ,
94+ )
95+ }
96+ return s
97+ } )
8898
8999 const eventType = event . event_type . endsWith ( "s" )
90100 ? event . event_type . slice ( 0 , - 1 )
Original file line number Diff line number Diff line change @@ -40,17 +40,27 @@ export function generateStaticParams() {
4040
4141export default function SpeakerPage ( { params } : SpeakerProps ) {
4242 const decodedId = decodeURIComponent ( params . id )
43- const speaker = speakers . find ( s => s . username === decodedId ) !
43+ const speaker = speakers . find ( s => s . username === decodedId )
44+
45+ if ( ! speaker ) {
46+ throw new Error ( `Speaker "${ decodedId } " not found for details page` )
47+ }
4448
4549 const s = schedule
4650 . filter ( ( s ) : s is typeof s & Required < Pick < typeof s , "speakers" > > =>
4751 Boolean ( s . speakers && s . speakers . some ( s => s . username === decodedId ) ) ,
4852 )
4953 . map ( s => ( {
5054 ...s ,
51- speakers : s . speakers . map (
52- s => speakers . find ( speaker => speaker . username === s . username ) ! ,
53- ) ,
55+ speakers : s . speakers . map ( other => {
56+ const s = speakers . find ( s => other . username === s . username )
57+ if ( ! s ) {
58+ throw new Error (
59+ `Speaker "${ other . username } " not found for ${ speaker . username } details page` ,
60+ )
61+ }
62+ return s
63+ } ) ,
5464 } ) )
5565
5666 return (
You can’t perform that action at this time.
0 commit comments