diff --git a/packages/web/components/templates/article/ArticleContainer.tsx b/packages/web/components/templates/article/ArticleContainer.tsx index 46a846637..62e4a7b8d 100644 --- a/packages/web/components/templates/article/ArticleContainer.tsx +++ b/packages/web/components/templates/article/ArticleContainer.tsx @@ -35,7 +35,6 @@ type ArticleContainerProps = { export function ArticleContainer(props: ArticleContainerProps): JSX.Element { const [showShareModal, setShowShareModal] = useState(false) const [showReportIssuesModal, setShowReportIssuesModal] = useState(false) - const [showHighlightsModal, setShowHighlightsModal] = useState(props.showHighlightsModal) const [fontSize, setFontSize] = useState(props.fontSize ?? 20) const updateFontSize = async (newFontSize: number) => { diff --git a/packages/web/components/templates/article/HighlightsModal.tsx b/packages/web/components/templates/article/HighlightsModal.tsx index 92358b057..d31557c4b 100644 --- a/packages/web/components/templates/article/HighlightsModal.tsx +++ b/packages/web/components/templates/article/HighlightsModal.tsx @@ -19,7 +19,7 @@ import { Pen, Trash } from 'phosphor-react' type HighlightsModalProps = { highlights: Highlight[] - deleteHighlightAction: (highlightId: string) => void + deleteHighlightAction?: (highlightId: string) => void onOpenChange: (open: boolean) => void } @@ -59,9 +59,12 @@ export function HighlightsModal(props: HighlightsModalProps): JSX.Element { - props.deleteHighlightAction(highlight.id) - } + showDelete={!!props.deleteHighlightAction} + deleteHighlightAction={() => { + if (props.deleteHighlightAction) { + props.deleteHighlightAction(highlight.id) + } + }} /> ))} {props.highlights.length === 0 && ( @@ -78,6 +81,7 @@ export function HighlightsModal(props: HighlightsModalProps): JSX.Element { type ModalHighlightViewProps = { highlight: Highlight + showDelete: boolean deleteHighlightAction: () => void } @@ -112,9 +116,11 @@ function ModalHighlightView(props: ModalHighlightViewProps): JSX.Element { /> )} */} - + {props.showDelete && ( + + )} ) diff --git a/packages/web/components/templates/article/PdfArticleContainer.tsx b/packages/web/components/templates/article/PdfArticleContainer.tsx index 77659e737..06cb94286 100644 --- a/packages/web/components/templates/article/PdfArticleContainer.tsx +++ b/packages/web/components/templates/article/PdfArticleContainer.tsx @@ -15,10 +15,13 @@ import { ShareHighlightModal } from './ShareHighlightModal' import { useCanShareNative } from '../../../lib/hooks/useCanShareNative' import { webBaseURL } from '../../../lib/appConfig' import { pspdfKitKey } from '../../../lib/appConfig' +import { HighlightsModal } from './HighlightsModal' export type PdfArticleContainerProps = { viewerUsername: string article: ArticleAttributes + showHighlightsModal: boolean + setShowHighlightsModal: React.Dispatch> } export default function PdfArticleContainer( @@ -348,6 +351,12 @@ export default function PdfArticleContainer( }} /> )} + {props.showHighlightsModal && ( + props.setShowHighlightsModal(false)} + /> + )} ) } diff --git a/packages/web/pages/[username]/[slug]/index.tsx b/packages/web/pages/[username]/[slug]/index.tsx index 282bbf0d4..18bd8a00c 100644 --- a/packages/web/pages/[username]/[slug]/index.tsx +++ b/packages/web/pages/[username]/[slug]/index.tsx @@ -209,6 +209,8 @@ export default function Home(): JSX.Element { {article.contentReader == 'PDF' ? ( ) : (