Skip to content

Commit 9530748

Browse files
authored
fix: safari pdf (#973)
1 parent 4f89e1a commit 9530748

File tree

2 files changed

+36
-14
lines changed

2 files changed

+36
-14
lines changed

pnpm-lock.yaml

+9-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/Task/Tabs/Statement.tsx

+27-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
'use client'
22
// TODO Convert to Server Component
33

4+
import { useEffect, useState } from 'react'
5+
6+
import Link from 'next/link'
7+
48
import { Task } from '@prisma/client'
59
import { MDXRemote, MDXRemoteSerializeResult } from 'next-mdx-remote'
610
import useSWR from 'swr'
@@ -14,14 +18,32 @@ const StatementTab = ({ task }: { task: Task }) => {
1418
fetcher
1519
)
1620

21+
const [enablePDF, setEnablePDF] = useState<boolean>(true)
22+
23+
useEffect(() => {
24+
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent)
25+
const isMobile = /Mobi/.test(navigator.userAgent)
26+
27+
if (isSafari && isMobile) {
28+
setEnablePDF(false)
29+
}
30+
}, [])
31+
1732
if (task.statement === 'PDF') {
1833
return (
1934
<article className="h-screen">
20-
<embed
21-
src={`/api/tasks/${task.id}/statement`}
22-
width="100%"
23-
height="100%"
24-
/>
35+
{!enablePDF ? (
36+
<p>
37+
This browser does not support inline PDFs. Please view the PDF by
38+
clicking <Link href={`/api/tasks/${task.id}/statement`}>here</Link>.
39+
</p>
40+
) : (
41+
<embed
42+
src={`/api/tasks/${task.id}/statement`}
43+
width="100%"
44+
height="100%"
45+
/>
46+
)}
2547
</article>
2648
)
2749
} else if (task.statement === 'MARKDOWN' && mdStatement) {

0 commit comments

Comments
 (0)