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;