import React from 'react'; import { DocumentWithCategory } from '../store/documents.types'; import { AnyAction } from 'redux'; import * as Text from 'app/shared/components/text/text'; import { getFileIcon } from 'app/shared/components/FileType/fileTypeIconHelper'; import cx from 'classnames'; import { useSelector } from 'react-redux'; import { selectDocumentBookmarksLoadingStatus } from '../store/documents.selectors'; export interface Props { document: DocumentWithCategory; getDocumentFile: (documentId: number) => AnyAction; isBookmarked: boolean; onBookmarkRemove: (documentId: number) => AnyAction; onBookmarkAdd: (documentId: number) => AnyAction; } const DocumentsListItem = ({ document, getDocumentFile, isBookmarked, onBookmarkAdd, onBookmarkRemove, }: Props) => { const isAwaitingBookmarkToggle = useSelector(selectDocumentBookmarksLoadingStatus); const handleDownload = (event) => { event.preventDefault(); getDocumentFile(document.id); }; const handleBookmarkToggle = () => { if (!isAwaitingBookmarkToggle) { if (isBookmarked) { onBookmarkRemove(document.id); } else { onBookmarkAdd(document.id); } } }; const bookmarkClassName = cx('u-font-size--big-icon', 'u-cursor--pointer', { 'icon-bookmark': !isBookmarked }, { 'icon-bookmark-marked': isBookmarked }, ); return
{getFileIcon(document.fileType)}
{`${document.date} | ${document.category}`} {document.name} {document.description !== null &&
}

; }; export default DocumentsListItem;