import React, { FC } from 'react'; import { Types } from 'mongoose'; import { UncontrolledTooltip } from 'reactstrap'; import { useTranslation } from 'react-i18next'; import { toastError } from '~/client/util/apiNotification'; import { useIsGuestUser } from '~/stores/context'; import { useSWRxBookmarksInfo } from '~/stores/bookmarks'; import { apiv3Put } from '~/client/util/apiv3-client'; interface Props { pageId: Types.ObjectId, } const BookmarkButton: FC = (props: Props) => { const { t } = useTranslation(); const { pageId } = props; const { data: isGuestUser } = useIsGuestUser(); const { data: bookmarksInfo, mutate } = useSWRxBookmarksInfo(pageId); const isBookmarked = bookmarksInfo?.isBookmarked != null ? bookmarksInfo.isBookmarked : false; const sumOfBookmarks = bookmarksInfo?.sumOfBookmarks != null ? bookmarksInfo.sumOfBookmarks : false; const handleClick = async() => { if (isGuestUser) { return; } try { const res = await apiv3Put('/bookmarks', { pageId, bool: !isBookmarked }); if (res) { mutate(); } } catch (err) { toastError(err); } }; return (
{isGuestUser && ( {t('Not available for guest')} )}
); }; export default BookmarkButton;