import React from 'react'; import PropTypes from 'prop-types'; import { UncontrolledTooltip } from 'reactstrap'; import { useTranslation } from 'react-i18next'; import { withUnstatedContainers } from './UnstatedUtils'; import AppContainer from '~/client/services/AppContainer'; class LegacyBookmarkButton extends React.Component { constructor(props) { super(props); this.handleClick = this.handleClick.bind(this); } async handleClick() { if (this.props.onBookMarkClicked == null) { return; } this.props.onBookMarkClicked(); } render() { const { appContainer, t, isBookmarked, hideTotalNumber, sumOfBookmarks, } = this.props; const { isGuestUser } = appContainer; return ( <> {isGuestUser && ( {t('Not available for guest')} )} ); } } /** * Wrapper component for using unstated */ const LegacyBookmarkButtonWrapper = withUnstatedContainers(LegacyBookmarkButton, [AppContainer]); LegacyBookmarkButton.propTypes = { appContainer: PropTypes.instanceOf(AppContainer).isRequired, isBookmarked: PropTypes.bool.isRequired, hideTotalNumber: PropTypes.bool, sumOfBookmarks: PropTypes.number, t: PropTypes.func.isRequired, size: PropTypes.string, onBookMarkClicked: PropTypes.func, }; LegacyBookmarkButton.defaultProps = { size: 'md', }; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types const BookmarkButton = (props) => { const { t } = useTranslation(); return ; }; export default BookmarkButton;