import React, { FC, useState, useCallback } from 'react'; import { useTranslation } from 'next-i18next'; import { UncontrolledTooltip, Popover, PopoverBody } from 'reactstrap'; import { useIsGuestUser } from '~/stores/context'; import { IUser } from '../interfaces/user'; import UserPictureList from './User/UserPictureList'; import styles from './BookmarkButtons.module.scss'; interface Props { bookmarkCount?: number isBookmarked?: boolean bookmarkedUsers?: IUser[] hideTotalNumber?: boolean onBookMarkClicked: ()=>void; } const BookmarkButtons: FC = (props: Props) => { const { t } = useTranslation(); const { bookmarkCount, isBookmarked, bookmarkedUsers, hideTotalNumber, } = props; const [isPopoverOpen, setIsPopoverOpen] = useState(false); const { data: isGuestUser } = useIsGuestUser(); const togglePopover = () => { setIsPopoverOpen(!isPopoverOpen); }; const handleClick = async() => { if (props.onBookMarkClicked != null) { props.onBookMarkClicked(); } }; const getTooltipMessage = useCallback(() => { if (isGuestUser) { return 'Not available for guest'; } if (isBookmarked) { return 'tooltip.cancel_bookmark'; } return 'tooltip.bookmark'; }, [isGuestUser, isBookmarked]); return (
{t(getTooltipMessage())} { !hideTotalNumber && ( <> { bookmarkedUsers != null && (
{bookmarkedUsers.length ? : t('No users have bookmarked yet')}
) } ) }
); }; export default BookmarkButtons;