diff --git a/src/email/Summary.tsx b/src/email/Summary.tsx
index 9b06f97..ff82ea0 100644
--- a/src/email/Summary.tsx
+++ b/src/email/Summary.tsx
@@ -20,7 +20,7 @@ export default ({ content, href, paragraphStyle, blockquoteStyle }: Props) => {
return (
<>
- {elements[0].text}
+ {elements.at(0)?.text}
{elements.length > 1 && (
…
diff --git a/src/email/daringfireball/Summary.tsx b/src/email/daringfireball/Summary.tsx
index e10aba5..ece52be 100644
--- a/src/email/daringfireball/Summary.tsx
+++ b/src/email/daringfireball/Summary.tsx
@@ -30,7 +30,7 @@ export default ({ content, href }: Props) => {
const paragraphs = element.querySelectorAll('> p')
return (
- {paragraphs[0].text ?? ''}
+ {paragraphs.at(0)?.text ?? ''}
{blockquoteHasMore && (
diff --git a/src/email/parseLinks.ts b/src/email/parseLinks.ts
index f64afeb..7b0a5fd 100644
--- a/src/email/parseLinks.ts
+++ b/src/email/parseLinks.ts
@@ -16,5 +16,5 @@ export const parseLinks = (links: ItemLink[]) => {
return `${links[0]}`
}
- return hrefByRel(links, 'related') ?? hrefByRel(links, 'alternate') ?? links[0].$.href
+ return hrefByRel(links, 'related') ?? hrefByRel(links, 'alternate') ?? links.at(0)?.$.href
}