2024-07-17 08:25:02 +00:00
|
|
|
import { PdfFile } from '../../types/drawing.ts'
|
2024-07-23 09:22:53 +00:00
|
|
|
import { CurrentUserMark, Mark, MarkConfigDetails } from '../../types/mark.ts'
|
2024-07-17 08:25:02 +00:00
|
|
|
import PdfPageItem from './PdfPageItem.tsx';
|
|
|
|
|
|
|
|
interface PdfItemProps {
|
|
|
|
pdfFile: PdfFile
|
2024-07-18 12:38:07 +00:00
|
|
|
marks: Mark[]
|
|
|
|
handleMarkClick: (id: number) => void
|
2024-07-23 09:22:53 +00:00
|
|
|
currentMarkValue: string
|
|
|
|
currentUserMark: CurrentUserMark | null
|
2024-07-17 08:25:02 +00:00
|
|
|
}
|
|
|
|
|
2024-07-23 09:22:53 +00:00
|
|
|
const PdfItem = ({ pdfFile, marks, handleMarkClick, currentMarkValue, currentUserMark }: PdfItemProps) => {
|
2024-07-18 12:38:07 +00:00
|
|
|
const filterByPage = (marks: Mark[], page: number): Mark[] => {
|
|
|
|
return marks.filter((mark) => mark.location.page === page);
|
2024-07-17 08:25:02 +00:00
|
|
|
}
|
|
|
|
return (
|
|
|
|
pdfFile.pages.map((page, i) => {
|
|
|
|
return (
|
|
|
|
<PdfPageItem
|
|
|
|
page={page}
|
|
|
|
key={i}
|
2024-07-18 12:38:07 +00:00
|
|
|
marks={filterByPage(marks, i)}
|
|
|
|
handleMarkClick={handleMarkClick}
|
2024-07-23 09:22:53 +00:00
|
|
|
currentMarkValue={currentMarkValue}
|
|
|
|
currentUserMark={currentUserMark}
|
2024-07-17 08:25:02 +00:00
|
|
|
/>
|
|
|
|
)
|
|
|
|
}))
|
|
|
|
}
|
|
|
|
|
|
|
|
export default PdfItem
|