Fix critical runtime crashes: handle empty blog posts and calendar fetch failures #1919
+201
−159
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What we did
Fixed two runtime crash bugs in the JSON Schema website:
Bug #1: Homepage crash when blogPosts is empty
Problem: Accessing blogPosts[0] without checking if the array was empty caused crashes.
Solution:
Added null/empty checks: const blogPosts = props.blogPosts || []
Introduced firstBlogPost variable with safe access
Wrapped blog post section in conditional rendering: {firstBlogPost && (...)}
Added fallback for reading time calculation
Bug #2: Homepage crash when calendar fetch fails
Problem: Calendar fetch errors left datesInfo as undefined, causing .map() to crash.
Solution:
Replaced .catch() that didn't return a value with a try-catch block
Defaulted datesInfo to empty array [] on error
Added TypeScript type annotations for datesInfo
Added safe array access: (props.datesInfo || []).map(...)
Files modified
pages/index.page.tsx — Homepage fixes
pages/community/index.page.tsx — Community page fixes