Add PDF modal and selectedPost setter
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
27
src/components/PDFModal.tsx
Normal file
27
src/components/PDFModal.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
import React from 'react'
|
||||
import useAppStore from '../store/useAppStore'
|
||||
import PDFPreview from './PDFPreview'
|
||||
|
||||
const PDFModal: React.FC = () => {
|
||||
const selectedPostId = useAppStore((s) => s.selectedPostId)
|
||||
const setSelectedPost = useAppStore((s) => s.setSelectedPost)
|
||||
const post = useAppStore((s) => s.posts.find((p) => p.id === selectedPostId))
|
||||
|
||||
if (!selectedPostId || !post?.attachedPDF) return null
|
||||
|
||||
return (
|
||||
<div className="modal-backdrop" onClick={() => setSelectedPost(null)}>
|
||||
<div className="modal" onClick={(e) => e.stopPropagation()}>
|
||||
<div style={{display:'flex',justifyContent:'space-between',alignItems:'center'}}>
|
||||
<h3>{post.attachedPDF.name}</h3>
|
||||
<button onClick={() => setSelectedPost(null)}>Close</button>
|
||||
</div>
|
||||
<div style={{marginTop:8}}>
|
||||
<PDFPreview url={post.attachedPDF.url} name={post.attachedPDF.name} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default PDFModal
|
||||
@@ -8,6 +8,7 @@ import PDFPreview from './PDFPreview'
|
||||
const PostCard: React.FC<{ post: Post }> = ({ post }) => {
|
||||
const author = useAppStore((s) => s.users.find((u) => u.id === post.authorId))
|
||||
const endorsePost = useAppStore((s) => s.endorsePost)
|
||||
const setSelectedPost = useAppStore((s) => s.setSelectedPost)
|
||||
|
||||
if (!author) return null
|
||||
|
||||
@@ -27,7 +28,11 @@ const PostCard: React.FC<{ post: Post }> = ({ post }) => {
|
||||
<p style={{marginTop:8}}>{post.content}</p>
|
||||
{post.attachedPDF && (
|
||||
<div style={{marginTop:8}}>
|
||||
<PDFPreview url={post.attachedPDF.url} name={post.attachedPDF.name} />
|
||||
<div className="small">{post.attachedPDF.name}</div>
|
||||
<div style={{marginTop:6,display:'flex',gap:8}}>
|
||||
<button className="button" onClick={() => setSelectedPost(post.id)}>Open PDF</button>
|
||||
<PDFPreview url={post.attachedPDF.url} name={post.attachedPDF.name} />
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
<div style={{display:'flex',justifyContent:'space-between',alignItems:'center',marginTop:8}}>
|
||||
|
||||
Reference in New Issue
Block a user