+
IMAGEPULLBACKOFF:
{renderErrorHeaderMessage(appDetails, 'error-bar')}
diff --git a/src/Shared/Components/Error/types.tsx b/src/Shared/Components/Error/types.tsx
index ce1fd62a9..f80a98ebb 100644
--- a/src/Shared/Components/Error/types.tsx
+++ b/src/Shared/Components/Error/types.tsx
@@ -18,6 +18,10 @@ import { AppDetails } from '../../types'
export interface ErrorBarType {
appDetails: AppDetails
+ /**
+ * @default true
+ */
+ useParentMargin?: boolean
}
export enum AppDetailsErrorType {
diff --git a/src/Shared/Components/Error/utils.tsx b/src/Shared/Components/Error/utils.tsx
index aadaa48c3..55cb563f3 100644
--- a/src/Shared/Components/Error/utils.tsx
+++ b/src/Shared/Components/Error/utils.tsx
@@ -14,7 +14,24 @@
* limitations under the License.
*/
-import { AppDetails } from '../../types'
+import { AppDetails, AppType } from '../../types'
+import { AppDetailsErrorType } from './types'
+
+export const getIsImagePullBackOff = (appDetails: AppDetails): boolean => {
+ if (appDetails?.appType === AppType.DEVTRON_APP && appDetails.resourceTree?.nodes?.length) {
+ return appDetails.resourceTree.nodes.some((node) =>
+ (node.info || []).some((info) => {
+ const infoValueLowerCase = info.value?.toLowerCase()
+ return (
+ infoValueLowerCase === AppDetailsErrorType.ERRIMAGEPULL ||
+ infoValueLowerCase === AppDetailsErrorType.IMAGEPULLBACKOFF
+ )
+ }),
+ )
+ }
+
+ return false
+}
export const renderErrorHeaderMessage = (appDetails: AppDetails, key: string, onClickActionButton?): JSX.Element => (
diff --git a/src/Shared/Components/Icon/Icon.tsx b/src/Shared/Components/Icon/Icon.tsx
index 0ed7ebaeb..caf41168e 100644
--- a/src/Shared/Components/Icon/Icon.tsx
+++ b/src/Shared/Components/Icon/Icon.tsx
@@ -54,6 +54,7 @@ import { ReactComponent as ICEcr } from '@IconsV2/ic-ecr.svg'
import { ReactComponent as ICEnv } from '@IconsV2/ic-env.svg'
import { ReactComponent as ICError } from '@IconsV2/ic-error.svg'
import { ReactComponent as ICExpandRightSm } from '@IconsV2/ic-expand-right-sm.svg'
+import { ReactComponent as ICExpandSm } from '@IconsV2/ic-expand-sm.svg'
import { ReactComponent as ICFailure } from '@IconsV2/ic-failure.svg'
import { ReactComponent as ICFileKey } from '@IconsV2/ic-file-key.svg'
import { ReactComponent as ICFolderUser } from '@IconsV2/ic-folder-user.svg'
@@ -199,6 +200,7 @@ export const iconMap = {
'ic-env': ICEnv,
'ic-error': ICError,
'ic-expand-right-sm': ICExpandRightSm,
+ 'ic-expand-sm': ICExpandSm,
'ic-failure': ICFailure,
'ic-file-key': ICFileKey,
'ic-folder-user': ICFolderUser,
diff --git a/src/Shared/Components/InfoIconTippy/InfoIconTippy.tsx b/src/Shared/Components/InfoIconTippy/InfoIconTippy.tsx
index 437b05def..eb79c7339 100644
--- a/src/Shared/Components/InfoIconTippy/InfoIconTippy.tsx
+++ b/src/Shared/Components/InfoIconTippy/InfoIconTippy.tsx
@@ -31,6 +31,7 @@ const InfoIconTippy = ({
dataTestid = 'info-tippy-button',
children,
headingInfo,
+ buttonPadding = 'p-0',
}: InfoIconTippyProps) => (
diff --git a/src/Shared/Components/index.ts b/src/Shared/Components/index.ts
index 897056ef4..3747ac491 100644
--- a/src/Shared/Components/index.ts
+++ b/src/Shared/Components/index.ts
@@ -20,6 +20,7 @@ export * from './ActivityIndicator'
export * from './AnimatedDeployButton'
export * from './AnimatedTimer'
export * from './APIResponseHandler'
+export * from './AppStatusModal'
export * from './ArtifactInfoModal'
export * from './Backdrop'
export * from './BulkOperations'
diff --git a/src/Shared/Store/IndexStore.tsx b/src/Shared/Store/IndexStore.tsx
index baa1e38b0..376344a78 100644
--- a/src/Shared/Store/IndexStore.tsx
+++ b/src/Shared/Store/IndexStore.tsx
@@ -245,6 +245,7 @@ export const IndexStore = {
const podMetadata = data.resourceTree?.podMetadata || []
+ // Not brave enough to remove this method but seems like its not doing anything
getiNodesByRootNodeWithChildNodes(
_nodes,
_nodes.filter((_n) => (_n.parentRefs ?? []).length == 0).map((_n) => _n as iNode),
diff --git a/src/Shared/types.ts b/src/Shared/types.ts
index 869bd4357..e266bdee0 100644
--- a/src/Shared/types.ts
+++ b/src/Shared/types.ts
@@ -153,6 +153,7 @@ export interface Node {
canBeHibernated: boolean
isHibernated: boolean
hasDrift?: boolean
+ status?: string
}
// eslint-disable-next-line no-use-before-define
@@ -246,6 +247,11 @@ export interface AppDetails {
FluxAppStatusDetail?: FluxAppStatusDetail
}
+export interface ConfigDriftModalProps extends Required> {
+ envId: number
+ handleCloseModal?: () => void
+}
+
export enum RegistryType {
GIT = 'git',
GITHUB = 'github',