import React, { useCallback } from 'react'; import PropTypes from 'prop-types'; import { StatefulButton } from '@openedx/paragon'; import { FormattedMessage } from '@edx/frontend-platform/i18n'; import { useDispatch } from 'react-redux'; import BookmarkOutlineIcon from './BookmarkOutlineIcon'; import BookmarkFilledIcon from './BookmarkFilledIcon'; import { removeBookmark, addBookmark } from './data/thunks'; const addBookmarkLabel = ( ); const hasBookmarkLabel = ( ); const BookmarkButton = ({ isBookmarked, isProcessing, unitId, }) => { const bookmarkState = isBookmarked ? 'bookmarked' : 'default'; const state = isProcessing ? `${bookmarkState}Processing` : bookmarkState; const dispatch = useDispatch(); const toggleBookmark = useCallback(() => { if (isBookmarked) { dispatch(removeBookmark(unitId)); } else { dispatch(addBookmark(unitId)); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [isBookmarked, unitId]); return ( , defaultProcessing: , bookmarked: , bookmarkedProcessing: , }} /> ); }; BookmarkButton.propTypes = { unitId: PropTypes.string.isRequired, isBookmarked: PropTypes.bool, isProcessing: PropTypes.bool.isRequired, }; BookmarkButton.defaultProps = { isBookmarked: false, }; export default BookmarkButton;