diff --git a/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx b/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx index 4ba0269891..0761fdb9c1 100644 --- a/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx +++ b/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx @@ -120,7 +120,9 @@ export const HeaderGroupByCard = observer((props: IHeaderGroupByCard) => { >
{title}
{count || 0}
- +
+ +
{!disableIssueCreation && diff --git a/web/ee/components/workflow/state/transitions/state-item-content.tsx b/web/ee/components/workflow/state/transitions/state-item-content.tsx index 34700ab436..bb2211bc31 100644 --- a/web/ee/components/workflow/state/transitions/state-item-content.tsx +++ b/web/ee/components/workflow/state/transitions/state-item-content.tsx @@ -20,7 +20,7 @@ export const StateItemContent = observer((props: StateItemContentProps) => { return (
-
0 && "py-2")}> +
0 && "py-2")}> {transitionIds.map((transitionId) => ( { return ( <> -
-
+
+
{t("workflows.workflow_states.state_changes.movers.label")} @@ -38,7 +38,7 @@ export const StateTransitionApprovers = observer((props: Props) => { -
+
diff --git a/web/ee/components/workflow/state/transitions/state-transition-item.tsx b/web/ee/components/workflow/state/transitions/state-transition-item.tsx index 39497635c5..8c2fd48fa2 100644 --- a/web/ee/components/workflow/state/transitions/state-transition-item.tsx +++ b/web/ee/components/workflow/state/transitions/state-transition-item.tsx @@ -38,6 +38,7 @@ export const StateTransitionItem = observer((props: StateTransitionItemProps) => } = useProjectState(); // derived state const stateTransition = getTransitionById(parentStateId, transitionId); + const areApproversAvailable = stateTransition.approvers && stateTransition.approvers.length > 0; if (!stateTransition) return <>; @@ -47,6 +48,11 @@ export const StateTransitionItem = observer((props: StateTransitionItemProps) => stateTransition.transition_state_id ); + const handleToggle = () => { + if (!areApproversAvailable) return; + setIsOpen((prevState) => !prevState); + }; + const handleTransitionStateChange = async (val: string) => { try { await changeStateTransition(workspaceSlug, projectId, parentStateId, transitionId, val); @@ -101,9 +107,11 @@ export const StateTransitionItem = observer((props: StateTransitionItemProps) => /> setIsOpen((prevState) => !prevState)} + onToggle={handleToggle} className="w-full" - buttonClassName="flex w-full items-center justify-between" + buttonClassName={cn("flex w-full items-center justify-between", { + "cursor-not-allowed": !areApproversAvailable, + })} title={
@@ -126,7 +134,7 @@ export const StateTransitionItem = observer((props: StateTransitionItemProps) => dropdownArrow />
- {stateTransition.approvers && stateTransition.approvers.length > 0 && ( + {areApproversAvailable && (
@@ -167,7 +175,8 @@ export const StateTransitionItem = observer((props: StateTransitionItemProps) =>
@@ -176,11 +185,13 @@ export const StateTransitionItem = observer((props: StateTransitionItemProps) =>
} > - + {areApproversAvailable && ( + + )}
); diff --git a/web/ee/components/workflow/workflow-tree/workflow-enabled-message.tsx b/web/ee/components/workflow/workflow-tree/workflow-enabled-message.tsx index df79d15ba3..01127c4f19 100644 --- a/web/ee/components/workflow/workflow-tree/workflow-enabled-message.tsx +++ b/web/ee/components/workflow/workflow-tree/workflow-enabled-message.tsx @@ -29,7 +29,7 @@ export const WorkFlowEnabledMessage = observer((props: Props) => { {t("workflows.workflow_enabled.label")}
- +
); diff --git a/web/ee/components/workflow/workflow-tree/workflow-group-tree.tsx b/web/ee/components/workflow/workflow-tree/workflow-group-tree.tsx index a070b1fa65..1ecfacdc1c 100644 --- a/web/ee/components/workflow/workflow-tree/workflow-group-tree.tsx +++ b/web/ee/components/workflow/workflow-tree/workflow-group-tree.tsx @@ -45,14 +45,14 @@ export const WorkFlowGroupTree = observer((props: Props) => { "flex h-[20px] w-[20px] flex-shrink-0 items-center justify-center overflow-hidden rounded transition-all", { "bg-[#00A0CC]/15": isTransitionEnabledForUser, - "hover:bg-custom-background-80": !isTransitionEnabledForUser, + "bg-custom-background-80 hover:bg-custom-background-80": !isTransitionEnabledForUser, } )} > {isTransitionEnabledForUser ? ( ) : ( - + )}
diff --git a/web/ee/components/workflow/workflow-tree/workflow-tree.tsx b/web/ee/components/workflow/workflow-tree/workflow-tree.tsx index c36e6daeed..eb413f27fb 100644 --- a/web/ee/components/workflow/workflow-tree/workflow-tree.tsx +++ b/web/ee/components/workflow/workflow-tree/workflow-tree.tsx @@ -9,11 +9,10 @@ import { StatePill } from "./state-pill"; type Props = { parentStateId: string; - showCurrentUserName?: boolean; }; export const WorkflowTree = observer((props: Props) => { - const { parentStateId, showCurrentUserName = true } = props; + const { parentStateId } = props; // plane hooks const { t } = useTranslation(); // store hooks @@ -24,7 +23,7 @@ export const WorkflowTree = observer((props: Props) => { const currentStateTransitionMap = stateTransitionMap[parentStateId]; const getUserName = (moverId: string) => { - if (!showCurrentUserName && moverId === user?.id) return t("common.you"); + if (moverId === user?.id) return t("common.you"); return getUserDetails(moverId)?.display_name; }; @@ -46,15 +45,15 @@ export const WorkflowTree = observer((props: Props) => { return 0; }); - // Order approvers such that current user is first, followed by other approvers + // Order approvers such that current user is last const getOrderedApprovers = useCallback( (approvers: string[]) => { const currentUserIndex = approvers.indexOf(user?.id ?? ""); if (currentUserIndex !== -1) { return [ - approvers[currentUserIndex], ...approvers.slice(0, currentUserIndex), ...approvers.slice(currentUserIndex + 1), + approvers[currentUserIndex], ]; } return approvers;