diff --git a/src/discussions/common/HoverCard.jsx b/src/discussions/common/HoverCard.jsx
index a4e4c0ac3..bf60b9167 100644
--- a/src/discussions/common/HoverCard.jsx
+++ b/src/discussions/common/HoverCard.jsx
@@ -12,7 +12,7 @@ import classNames from 'classnames';
import { useIntl } from '@edx/frontend-platform/i18n';
import { ThreadType } from '../../data/constants';
-import { useUserPostingEnabled } from '../data/hooks';
+import { useHasLikePermission, useUserPostingEnabled } from '../data/hooks';
import PostCommentsContext from '../post-comments/postCommentsContext';
import ActionsDropdown from './ActionsDropdown';
import DiscussionContext from './context';
@@ -33,6 +33,7 @@ const HoverCard = ({
const { enableInContextSidebar } = useContext(DiscussionContext);
const { isClosed } = useContext(PostCommentsContext);
const isUserPrivilegedInPostingRestriction = useUserPostingEnabled();
+ const userHasLikePermission = useHasLikePermission(contentType, id);
return (
{
e.preventDefault();
diff --git a/src/discussions/data/hooks.js b/src/discussions/data/hooks.js
index 2576824bb..6de5e1f0f 100644
--- a/src/discussions/data/hooks.js
+++ b/src/discussions/data/hooks.js
@@ -16,10 +16,11 @@ import { AppContext } from '@edx/frontend-platform/react';
import selectCourseTabs from '../../components/NavigationBar/data/selectors';
import { LOADED } from '../../components/NavigationBar/data/slice';
import fetchTab from '../../components/NavigationBar/data/thunks';
-import { RequestStatus, Routes } from '../../data/constants';
+import { ContentActions, RequestStatus, Routes } from '../../data/constants';
import { selectTopicsUnderCategory } from '../../data/selectors';
import fetchCourseBlocks from '../../data/thunks';
import DiscussionContext from '../common/context';
+import PostCommentsContext from '../post-comments/postCommentsContext';
import { clearRedirect } from '../posts/data';
import { threadsLoadingStatus } from '../posts/data/selectors';
import { selectTopics } from '../topics/data/selectors';
@@ -27,7 +28,8 @@ import tourCheckpoints from '../tours/constants';
import selectTours from '../tours/data/selectors';
import { updateTourShowStatus } from '../tours/data/thunks';
import messages from '../tours/messages';
-import { discussionsPath } from '../utils';
+import { checkPermissions, discussionsPath } from '../utils';
+import { ContentSelectors } from './constants';
import {
selectAreThreadsFiltered,
selectEnableInContext,
@@ -284,3 +286,10 @@ export const useDebounce = (value, delay) => {
);
return debouncedValue;
};
+
+export const useHasLikePermission = (contentType, id) => {
+ const { postType } = useContext(PostCommentsContext);
+ const content = { ...useSelector(ContentSelectors[contentType](id)), postType };
+
+ return checkPermissions(content, ContentActions.VOTE);
+};