Skip to content

Commit 0fa1923

Browse files
committed
4427 - specify project deployment workflow status in the UI
1 parent f26d711 commit 0fa1923

1 file changed

Lines changed: 25 additions & 21 deletions

File tree

client/src/pages/automation/project-deployments/components/project-deployment-workflow-list/ProjectDeploymentWorkflowListItem.tsx

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -47,25 +47,26 @@ const ProjectDeploymentWorkflowListItem = ({
4747
workflowTaskDispatcherDefinitions,
4848
}: ProjectDeploymentWorkflowListItemProps) => {
4949
const [showEditWorkflowDialog, setShowEditWorkflowDialog] = useState(false);
50-
5150
const {openReadOnlyWorkflowSheet} = useReadOnlyWorkflow();
5251

5352
/* eslint-disable @typescript-eslint/no-unused-vars */
5453
const [_, copyToClipboard] = useCopyToClipboard();
5554
const navigate = useNavigate();
5655
const queryClient = useQueryClient();
5756

57+
const {enabled, lastExecutionDate, lastExecutionStatus, staticWebhookUrl} = projectDeploymentWorkflow;
58+
5859
const formTrigger =
5960
workflow.triggers && workflow.triggers.findIndex((trigger) => trigger.type.includes('form/')) !== -1;
6061

61-
const formTriggerPageUrl = getPageUrl('form', environmentId, projectDeploymentWorkflow.staticWebhookUrl);
62+
const formTriggerPageUrl = getPageUrl('form', environmentId, staticWebhookUrl);
6263

6364
const hostedChatTrigger =
6465
workflow.triggers &&
6566
workflow.triggers.findIndex((trigger) => trigger.type.includes('chat/')) !== -1 &&
6667
(workflow.triggers?.[0]?.parameters?.mode ?? 1) === 1;
6768

68-
const hostedChatTriggerPageUrl = getPageUrl('chats', undefined, projectDeploymentWorkflow.staticWebhookUrl);
69+
const hostedChatTriggerPageUrl = getPageUrl('chats', undefined, staticWebhookUrl);
6970

7071
const enableProjectDeploymentWorkflowMutation = useEnableProjectDeploymentWorkflowMutation({
7172
onSuccess: () => {
@@ -120,12 +121,7 @@ const ProjectDeploymentWorkflowListItem = ({
120121
return (
121122
<li className="flex items-center justify-between rounded-md px-2 py-1 hover:bg-gray-50">
122123
<div className="flex flex-1 cursor-pointer items-center" onClick={handleWorkflowClick}>
123-
<span
124-
className={twMerge(
125-
'w-80 text-sm font-semibold',
126-
!projectDeploymentWorkflow.enabled && 'text-muted-foreground'
127-
)}
128-
>
124+
<span className={twMerge('w-80 text-sm font-semibold', !enabled && 'text-muted-foreground')}>
129125
{workflow.label}
130126
</span>
131127

@@ -141,9 +137,18 @@ const ProjectDeploymentWorkflowListItem = ({
141137
<div className="flex items-center gap-x-4">
142138
{projectDeploymentWorkflow?.lastExecutionDate ? (
143139
<Tooltip>
144-
<TooltipTrigger className="flex items-center text-sm text-gray-500">
140+
<TooltipTrigger
141+
className={twMerge(
142+
'flex items-center text-sm text-content-neutral-secondary',
143+
lastExecutionStatus === 'FAILED' && 'text-content-destructive-primary'
144+
)}
145+
>
146+
<span className="pr-1 text-xs capitalize">
147+
{lastExecutionStatus?.toLocaleLowerCase() || ''}
148+
</span>
149+
145150
<span className="text-xs">
146-
{`Executed at ${projectDeploymentWorkflow.lastExecutionDate?.toLocaleDateString()} ${projectDeploymentWorkflow.lastExecutionDate?.toLocaleTimeString()}`}
151+
{`at ${lastExecutionDate?.toLocaleDateString()} ${lastExecutionDate?.toLocaleTimeString()}`}
147152
</span>
148153
</TooltipTrigger>
149154

@@ -160,7 +165,7 @@ const ProjectDeploymentWorkflowListItem = ({
160165
<Tooltip>
161166
<TooltipTrigger asChild>
162167
<Button
163-
disabled={!projectDeploymentEnabled || !projectDeploymentWorkflow.enabled}
168+
disabled={!projectDeploymentEnabled || !enabled}
164169
icon={<PlayIcon className="text-success" />}
165170
onClick={handleRunWorkflowClick}
166171
size="icon"
@@ -172,16 +177,15 @@ const ProjectDeploymentWorkflowListItem = ({
172177
</Tooltip>
173178
)}
174179

175-
{!hostedChatTrigger && !formTrigger && projectDeploymentWorkflow.staticWebhookUrl && (
180+
{!hostedChatTrigger && !formTrigger && staticWebhookUrl && (
176181
<Tooltip>
177182
<TooltipTrigger asChild>
178183
<Button
179-
disabled={!projectDeploymentWorkflow.enabled}
184+
disabled={!enabled}
180185
icon={<ClipboardIcon />}
181186
onClick={() =>
182187
copyToClipboard(
183-
projectDeploymentWorkflow.staticWebhookUrl! +
184-
(workflow.sseStreamResponse ? '/sse' : '')
188+
staticWebhookUrl! + (workflow.sseStreamResponse ? '/sse' : '')
185189
)
186190
}
187191
size="icon"
@@ -193,11 +197,11 @@ const ProjectDeploymentWorkflowListItem = ({
193197
</Tooltip>
194198
)}
195199

196-
{formTrigger && projectDeploymentWorkflow.staticWebhookUrl && (
200+
{formTrigger && staticWebhookUrl && (
197201
<Tooltip>
198202
<TooltipTrigger asChild>
199203
<Button
200-
disabled={!projectDeploymentWorkflow.enabled}
204+
disabled={!enabled}
201205
icon={<FormIcon />}
202206
onClick={() => navigate(formTriggerPageUrl)}
203207
size="icon"
@@ -209,11 +213,11 @@ const ProjectDeploymentWorkflowListItem = ({
209213
</Tooltip>
210214
)}
211215

212-
{hostedChatTrigger && projectDeploymentWorkflow.staticWebhookUrl && (
216+
{hostedChatTrigger && staticWebhookUrl && (
213217
<Tooltip>
214218
<TooltipTrigger asChild>
215219
<Button
216-
disabled={!projectDeploymentWorkflow.enabled}
220+
disabled={!enabled}
217221
icon={<MessageCircleMoreIcon />}
218222
onClick={() => window.open(hostedChatTriggerPageUrl, '_self')}
219223
size="icon"
@@ -232,7 +236,7 @@ const ProjectDeploymentWorkflowListItem = ({
232236
)}
233237

234238
<Switch
235-
checked={projectDeploymentWorkflow.enabled}
239+
checked={enabled}
236240
className="mr-2"
237241
disabled={enableProjectDeploymentWorkflowMutation.isPending}
238242
onCheckedChange={(value) =>

0 commit comments

Comments
 (0)