chore: worklog enhancements (#5982)
This commit is contained in:
parent
0428ea06f6
commit
a6cc2c93f8
1 changed files with 18 additions and 8 deletions
|
|
@ -11,7 +11,7 @@ import { TOAST_TYPE, setToast } from "@plane/ui";
|
||||||
import { IssueCommentCreate } from "@/components/issues";
|
import { IssueCommentCreate } from "@/components/issues";
|
||||||
import { IssueActivityCommentRoot } from "@/components/issues/issue-detail";
|
import { IssueActivityCommentRoot } from "@/components/issues/issue-detail";
|
||||||
// hooks
|
// hooks
|
||||||
import { useIssueDetail, useProject, useUserPermissions } from "@/hooks/store";
|
import { useIssueDetail, useProject, useUser, useUserPermissions } from "@/hooks/store";
|
||||||
// plane web components
|
// plane web components
|
||||||
import { ActivityFilterRoot, IssueActivityWorklogCreateButton } from "@/plane-web/components/issues/worklog";
|
import { ActivityFilterRoot, IssueActivityWorklogCreateButton } from "@/plane-web/components/issues/worklog";
|
||||||
// plane web constants
|
// plane web constants
|
||||||
|
|
@ -38,15 +38,25 @@ export type TActivityOperations = {
|
||||||
|
|
||||||
export const IssueActivity: FC<TIssueActivity> = observer((props) => {
|
export const IssueActivity: FC<TIssueActivity> = observer((props) => {
|
||||||
const { workspaceSlug, projectId, issueId, disabled = false, isIntakeIssue = false } = props;
|
const { workspaceSlug, projectId, issueId, disabled = false, isIntakeIssue = false } = props;
|
||||||
// hooks
|
|
||||||
const { createComment, updateComment, removeComment } = useIssueDetail();
|
|
||||||
const { projectPermissionsByWorkspaceSlugAndProjectId } = useUserPermissions();
|
|
||||||
const { getProjectById } = useProject();
|
|
||||||
//derived values
|
|
||||||
const isGuest = (projectPermissionsByWorkspaceSlugAndProjectId(workspaceSlug, projectId) ?? EUserPermissions.GUEST) === EUserPermissions.GUEST;
|
|
||||||
const isWorklogButtonEnabled = !isIntakeIssue && !isGuest;
|
|
||||||
// state
|
// state
|
||||||
const [selectedFilters, setSelectedFilters] = useState<TActivityFilters[]>(defaultActivityFilters);
|
const [selectedFilters, setSelectedFilters] = useState<TActivityFilters[]>(defaultActivityFilters);
|
||||||
|
// hooks
|
||||||
|
const {
|
||||||
|
issue: { getIssueById },
|
||||||
|
createComment,
|
||||||
|
updateComment,
|
||||||
|
removeComment,
|
||||||
|
} = useIssueDetail();
|
||||||
|
const { projectPermissionsByWorkspaceSlugAndProjectId } = useUserPermissions();
|
||||||
|
const { getProjectById } = useProject();
|
||||||
|
const { data: currentUser } = useUser();
|
||||||
|
//derived values
|
||||||
|
const issue = issueId ? getIssueById(issueId) : undefined;
|
||||||
|
const currentUserProjectRole = projectPermissionsByWorkspaceSlugAndProjectId(workspaceSlug, projectId);
|
||||||
|
const isAdmin = (currentUserProjectRole ?? EUserPermissions.GUEST) === EUserPermissions.ADMIN;
|
||||||
|
const isGuest = (currentUserProjectRole ?? EUserPermissions.GUEST) === EUserPermissions.GUEST;
|
||||||
|
const isAssigned = issue?.assignee_ids && currentUser?.id ? issue?.assignee_ids.includes(currentUser?.id) : false;
|
||||||
|
const isWorklogButtonEnabled = !isIntakeIssue && !isGuest && (isAdmin || isAssigned);
|
||||||
// toggle filter
|
// toggle filter
|
||||||
const toggleFilter = (filter: TActivityFilters) => {
|
const toggleFilter = (filter: TActivityFilters) => {
|
||||||
setSelectedFilters((prevFilters) => {
|
setSelectedFilters((prevFilters) => {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue