File tree Expand file tree Collapse file tree 3 files changed +38
-12
lines changed Expand file tree Collapse file tree 3 files changed +38
-12
lines changed Original file line number Diff line number Diff line change @@ -47,9 +47,15 @@ export default function SpeakerPage({ params }: SpeakerProps) {
47
47
. filter ( s => s . speakers && s . speakers . some ( s => s . username === params . id ) )
48
48
. map ( s => ( {
49
49
...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
+ } ) ,
53
59
} ) )
54
60
55
61
return (
Original file line number Diff line number Diff line change @@ -34,7 +34,11 @@ function getEventTitle(event: ScheduleSession, speakers: string[]): string {
34
34
type SessionProps = { params : { id : string } }
35
35
36
36
export 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
+ }
38
42
39
43
const keywords = [
40
44
event . event_type ,
@@ -77,14 +81,20 @@ const Tag = ({
77
81
78
82
export default function SessionPage ( { params } : SessionProps ) {
79
83
const event = schedule . find ( s => s . id === params . id )
84
+
80
85
if ( ! event ) {
81
86
notFound ( )
82
87
}
83
88
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
+ } )
88
98
89
99
const eventType = event . event_type . endsWith ( "s" )
90
100
? event . event_type . slice ( 0 , - 1 )
Original file line number Diff line number Diff line change @@ -40,17 +40,27 @@ export function generateStaticParams() {
40
40
41
41
export default function SpeakerPage ( { params } : SpeakerProps ) {
42
42
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
+ }
44
48
45
49
const s = schedule
46
50
. filter ( ( s ) : s is typeof s & Required < Pick < typeof s , "speakers" > > =>
47
51
Boolean ( s . speakers && s . speakers . some ( s => s . username === decodedId ) ) ,
48
52
)
49
53
. map ( s => ( {
50
54
...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
+ } ) ,
54
64
} ) )
55
65
56
66
return (
You can’t perform that action at this time.
0 commit comments