import React from 'react'; import * as Text from 'app/shared/components/text/text'; import ToggleButton from 'app/shared/components/ToggleButton/toggleButton'; import { useDispatch, useSelector } from 'react-redux'; import { selectCategories, selectDocumentsBookmarksFilter, selectDocumentsCategoryFilter, } from '../store/documents.selectors'; import cx from 'classnames'; import { addDocumentsCategoryFilter, removeDocumentsCategoryFilter, resetDocumentsCategoryFilter, setDocumentsBookmarksFilter, } from '../store/documents.actions'; const DocumentsFilters = () => { const dispatch = useDispatch(); const categories = useSelector(selectCategories); const bookmarksOnly = useSelector(selectDocumentsBookmarksFilter); const selectedCategories = useSelector(selectDocumentsCategoryFilter); const handleCategorySelection = (categoryId: number, isSelected: boolean) => () => { if (isSelected) { dispatch(removeDocumentsCategoryFilter(categoryId)); } else { dispatch(addDocumentsCategoryFilter(categoryId)); } }; const handleClearCategoriesFilter = () => { dispatch(resetDocumentsCategoryFilter()); }; const handleBookmarksSelection = () => { dispatch(setDocumentsBookmarksFilter(!bookmarksOnly)); }; return
Filters
Show bookmarks only

document type {selectedCategories.length > 0 &&
Clear all
}
{categories.map(category => { const isSelected = selectedCategories.includes(category.id); const checkmarkClassName = cx('c-documents-filters__checkbox', 'u-margin-right', 'o-layout', 'o-layout--aligned', 'o-layout--justified', { 'c-documents-filters__checkbox--selected': isSelected } ); return
{isSelected && }
{category.label}
; })}
; }; export default DocumentsFilters;