diff --git a/apps/webservice/src/app/[workspaceSlug]/_components/JobTableStatusIcon.tsx b/apps/webservice/src/app/[workspaceSlug]/_components/JobTableStatusIcon.tsx index f75caf281..4436cfb08 100644 --- a/apps/webservice/src/app/[workspaceSlug]/_components/JobTableStatusIcon.tsx +++ b/apps/webservice/src/app/[workspaceSlug]/_components/JobTableStatusIcon.tsx @@ -3,6 +3,7 @@ import { IconCircleCheck, IconCircleX, IconClock, + IconExclamationCircle, IconLoader2, } from "@tabler/icons-react"; @@ -31,6 +32,12 @@ export const JobTableStatusIcon: React.FC<{ return ( ); + if (status === JobStatus.ActionRequired) + return ( + + ); return ; }; diff --git a/apps/webservice/src/app/[workspaceSlug]/systems/[systemSlug]/deployments/[deploymentSlug]/releases/[versionId]/PolicyApprovalRow.tsx b/apps/webservice/src/app/[workspaceSlug]/systems/[systemSlug]/deployments/[deploymentSlug]/releases/[versionId]/PolicyApprovalRow.tsx index 40634f6dd..0c57e361d 100644 --- a/apps/webservice/src/app/[workspaceSlug]/systems/[systemSlug]/deployments/[deploymentSlug]/releases/[versionId]/PolicyApprovalRow.tsx +++ b/apps/webservice/src/app/[workspaceSlug]/systems/[systemSlug]/deployments/[deploymentSlug]/releases/[versionId]/PolicyApprovalRow.tsx @@ -73,7 +73,7 @@ export const PolicyApprovalRow: React.FC = ({ {status === "pending" ? (
{environmentApprovals.map((approval) => ( @@ -93,7 +126,7 @@ const CollapsibleTableRow: React.FC = ({ {isExpanded && ( <> - {jobs?.map((job, idx) => { + {jobs.map((job, idx) => { const linksMetadata = job.job.metadata.find( (m) => m.key === String(ReservedMetadataKey.Links), )?.value; @@ -112,7 +145,7 @@ const CollapsibleTableRow: React.FC = ({ )} onClick={() => setJobId(job.job.id)} > - + e.stopPropagation()}> = ({ )} - + e.stopPropagation()}> {links != null && (
{Object.entries(links).map(([label, url]) => ( @@ -199,6 +232,14 @@ export const TargetReleaseTable: React.FC = ({ environments, }) => { const { filter, setFilter } = useJobFilter(); + const releaseJobTriggerQuery = api.job.config.byReleaseId.useQuery( + { releaseId: release.id, filter }, + { + refetchInterval: 5_000, + placeholderData: (prev) => prev, + initialData: [], + }, + ); return ( <> @@ -212,18 +253,35 @@ export const TargetReleaseTable: React.FC = ({
- - - {environments.map((environment) => ( - + {_.range(30).map((i) => ( + ))} - -
+ + )} + + {releaseJobTriggerQuery.data.length > 0 && ( + + + {environments.map((environment) => ( + + ))} + +
+ )} ); };