chore: worklog enhancements (#5982)

This commit is contained in:
Anmol Singh Bhatia 2024-11-11 19:27:07 +05:30 committed by GitHub
parent 0428ea06f6
commit a6cc2c93f8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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) => {