import { useCallback, useMemo } from "react"; import { Classes, Checkbox, Tag } from "@blueprintjs/core"; import { ListItem } from "Components/DataList"; import { formatItemNotes, simplifyZoteroAnnotations } from "../../../utils"; import { CustomClasses } from "../../../constants"; import { ZItemAnnotation, ZItemNote, isZNote } from "Types/transforms"; import "./_index.sass"; function Annotation({ annotation }: { annotation: ZItemAnnotation}){ const { color, comment, text, type } = useMemo(() => simplifyZoteroAnnotations([annotation])[0], [annotation]); // https://shannonpayne.com.au/how-to-create-a-low-highlight-text-effect-using-css/ const highlightStyle = useMemo(() => ({ "backgroundImage": `linear-gradient(120deg, ${color}50 0%, ${color}50 100%)` }), [color]); return
{text && {text}} {type == "image" && Images are currently not supported} {comment &&
{comment}
}
; } function Note({ note }: { note: ZItemNote }){ const notesContent = useMemo(() => formatItemNotes([note]).join(" "), [note]); return

{notesContent}

; } type NotesImportItemProps = { note: ZItemAnnotation | ZItemNote, isSelected: boolean, isSingleChild: boolean, onToggle: (value: string) => void }; function NotesImportItem({ note, isSelected, isSingleChild, onToggle }: NotesImportItemProps) { const handleToggle = useCallback(() => onToggle(note.data.key), [note.data.key, onToggle]); const itemContents = useMemo(() => { if(isZNote(note)){ return ; } else { return ; } }, [note]); return
{isSingleChild ? itemContents : }
{note.data.tags.map((t, i) => {t.tag})}
; } export default NotesImportItem;