fix: project favorite permission validation (#5587)
This commit is contained in:
parent
fdcd9a376c
commit
87d6544b72
1 changed files with 22 additions and 15 deletions
|
|
@ -29,11 +29,11 @@ import { cn } from "@/helpers/common.helper";
|
||||||
import { renderFormattedDate } from "@/helpers/date-time.helper";
|
import { renderFormattedDate } from "@/helpers/date-time.helper";
|
||||||
import { copyUrlToClipboard } from "@/helpers/string.helper";
|
import { copyUrlToClipboard } from "@/helpers/string.helper";
|
||||||
// hooks
|
// hooks
|
||||||
import { useProject } from "@/hooks/store";
|
import { useProject, useUserPermissions } from "@/hooks/store";
|
||||||
import { useAppRouter } from "@/hooks/use-app-router";
|
import { useAppRouter } from "@/hooks/use-app-router";
|
||||||
import { usePlatformOS } from "@/hooks/use-platform-os";
|
import { usePlatformOS } from "@/hooks/use-platform-os";
|
||||||
// plane-web constants
|
// plane-web constants
|
||||||
import { EUserPermissions } from "@/plane-web/constants/user-permissions";
|
import { EUserPermissions, EUserPermissionsLevel } from "@/plane-web/constants/user-permissions";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
project: IProject;
|
project: IProject;
|
||||||
|
|
@ -52,11 +52,16 @@ export const ProjectCard: React.FC<Props> = observer((props) => {
|
||||||
const { workspaceSlug } = useParams();
|
const { workspaceSlug } = useParams();
|
||||||
// store hooks
|
// store hooks
|
||||||
const { addProjectToFavorites, removeProjectFromFavorites } = useProject();
|
const { addProjectToFavorites, removeProjectFromFavorites } = useProject();
|
||||||
|
const { allowPermissions } = useUserPermissions();
|
||||||
// hooks
|
// hooks
|
||||||
const { isMobile } = usePlatformOS();
|
const { isMobile } = usePlatformOS();
|
||||||
project.member_role;
|
project.member_role;
|
||||||
// derived values
|
// derived values
|
||||||
const projectMembersIds = project.members?.map((member) => member.member_id);
|
const projectMembersIds = project.members?.map((member) => member.member_id);
|
||||||
|
const shouldRenderFavorite = allowPermissions(
|
||||||
|
[EUserPermissions.ADMIN, EUserPermissions.MEMBER],
|
||||||
|
EUserPermissionsLevel.WORKSPACE
|
||||||
|
);
|
||||||
// auth
|
// auth
|
||||||
const isOwner = project.member_role === EUserPermissions.ADMIN;
|
const isOwner = project.member_role === EUserPermissions.ADMIN;
|
||||||
const isMember = project.member_role === EUserPermissions.MEMBER;
|
const isMember = project.member_role === EUserPermissions.MEMBER;
|
||||||
|
|
@ -233,6 +238,7 @@ export const ProjectCard: React.FC<Props> = observer((props) => {
|
||||||
>
|
>
|
||||||
<LinkIcon className="h-3 w-3 text-white" />
|
<LinkIcon className="h-3 w-3 text-white" />
|
||||||
</button>
|
</button>
|
||||||
|
{shouldRenderFavorite && (
|
||||||
<FavoriteStar
|
<FavoriteStar
|
||||||
buttonClassName="h-6 w-6 bg-white/10"
|
buttonClassName="h-6 w-6 bg-white/10"
|
||||||
iconClassName={cn("h-3 w-3", {
|
iconClassName={cn("h-3 w-3", {
|
||||||
|
|
@ -246,6 +252,7 @@ export const ProjectCard: React.FC<Props> = observer((props) => {
|
||||||
}}
|
}}
|
||||||
selected={project.is_favorite}
|
selected={project.is_favorite}
|
||||||
/>
|
/>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue