diff --git a/ui/components/Icon.tsx b/ui/components/Icon.tsx index d1c194e4cd..6132f47584 100644 --- a/ui/components/Icon.tsx +++ b/ui/components/Icon.tsx @@ -97,6 +97,7 @@ export enum IconType { TemplatesIcon, ClustersIcon, ExploreIcon, + PendingActionIcon, } type Props = { @@ -179,6 +180,9 @@ function getIcon(i: IconType) { case IconType.ReconcileIcon: return () => ; + case IconType.PendingActionIcon: + return () => ; + case IconType.ArrowDropDownIcon: return ArrowDropDownIcon; diff --git a/ui/components/KubeStatusIndicator.tsx b/ui/components/KubeStatusIndicator.tsx index cdd450842c..845f3ea777 100644 --- a/ui/components/KubeStatusIndicator.tsx +++ b/ui/components/KubeStatusIndicator.tsx @@ -18,6 +18,7 @@ export enum ReadyType { Ready = "Ready", NotReady = "Not Ready", Reconciling = "Reconciling", + PendingAction = "PendingAction", Suspended = "Suspended", None = "None", } @@ -40,11 +41,10 @@ export function computeReady(conditions: Condition[]): ReadyType { return ReadyType.Ready; } - if ( - readyCondition.status === ReadyStatusValue.Unknown && - readyCondition.reason === "Progressing" - ) { - return ReadyType.Reconciling; + if (readyCondition.status === ReadyStatusValue.Unknown) { + if (readyCondition.reason === "Progressing") return ReadyType.Reconciling; + if (readyCondition.reason === "TerraformPlannedWithChanges") + return ReadyType.PendingAction; } if (readyCondition.status === ReadyStatusValue.None) return ReadyType.None; @@ -107,6 +107,12 @@ export const getIndicatorInfo = ( icon: IconType.ReconcileIcon, color: "primary", }; + if (ready === ReadyType.PendingAction) + return { + type: ReadyType.PendingAction, + icon: IconType.PendingActionIcon, + color: "feedbackOriginal", + }; if (ready === ReadyType.Ready) return { type: ReadyType.Ready, diff --git a/ui/images/pending-action.svg b/ui/images/pending-action.svg new file mode 100644 index 0000000000..e095e291ea --- /dev/null +++ b/ui/images/pending-action.svg @@ -0,0 +1 @@ + diff --git a/ui/lib/images.ts b/ui/lib/images.ts index 566e43e956..f77cf167a1 100644 --- a/ui/lib/images.ts +++ b/ui/lib/images.ts @@ -1,15 +1,16 @@ /* eslint-disable */ // @ts-nocheck +import signInWheel from "data-url:../images/SignInWheel.svg"; +import weaveLogo from "data-url:../images/WeaveLogo.svg"; import bg from "data-url:../images/bg-circles.png"; import failedSrc from "data-url:../images/failed.svg"; import logotype from "data-url:../images/logotype.svg"; +import pendingAction from "data-url:../images/pending-action.svg"; import reconcileSrc from "data-url:../images/reconcile.svg"; -import signInWheel from "data-url:../images/SignInWheel.svg"; import successSrc from "data-url:../images/success.svg"; import suspendedSrc from "data-url:../images/suspended.svg"; import weaveG from "data-url:../images/weaveG.svg"; -import weaveLogo from "data-url:../images/WeaveLogo.svg"; export default { bg, @@ -21,4 +22,5 @@ export default { suspendedSrc, weaveLogo, reconcileSrc, + pendingAction, };