diff --git a/src/components/ApplicationGroup/Details/EnvironmentOverview/EnvironmentOverview.tsx b/src/components/ApplicationGroup/Details/EnvironmentOverview/EnvironmentOverview.tsx index a500050938..3008e3b7d5 100644 --- a/src/components/ApplicationGroup/Details/EnvironmentOverview/EnvironmentOverview.tsx +++ b/src/components/ApplicationGroup/Details/EnvironmentOverview/EnvironmentOverview.tsx @@ -323,15 +323,18 @@ export default function EnvironmentOverview({
Created by
-
-
- {appGroupListData.createdBy[0]} -
- {appGroupListData.createdBy} -
+ {appGroupListData.createdBy + ? ( +
+
+ {appGroupListData.createdBy[0]} +
+ {appGroupListData.createdBy} +
+ ) : '-'}
diff --git a/src/components/ApplicationGroup/Details/TriggerView/EnvTriggerView.tsx b/src/components/ApplicationGroup/Details/TriggerView/EnvTriggerView.tsx index 804959d2d9..83f231f394 100644 --- a/src/components/ApplicationGroup/Details/TriggerView/EnvTriggerView.tsx +++ b/src/components/ApplicationGroup/Details/TriggerView/EnvTriggerView.tsx @@ -223,6 +223,7 @@ export default function EnvTriggerView({ filteredAppIds, isVirtualEnv }: AppGrou setDefaultConfig(_isDefaultConfig) setConfigPresent(isConfigPresent) }) + .catch() } const preserveSelection = (_workflows: WorkflowType[]) => { diff --git a/src/components/EnvironmentOverride/DeploymentTemplateOverrideForm.tsx b/src/components/EnvironmentOverride/DeploymentTemplateOverrideForm.tsx index 3df7a0025a..68be475508 100644 --- a/src/components/EnvironmentOverride/DeploymentTemplateOverrideForm.tsx +++ b/src/components/EnvironmentOverride/DeploymentTemplateOverrideForm.tsx @@ -228,10 +228,10 @@ export default function DeploymentTemplateOverrideForm({ const deploymentTemplateResp = isConfigProtectionEnabled ? await checkForProtectedLockedChanges() : await api(+appId, +envId, payload) - if (deploymentTemplateResp.result.isLockConfigError && !saveEligibleChanges) { + if (deploymentTemplateResp.result?.isLockConfigError && !saveEligibleChanges) { // checking if any locked changes and opening drawer to show eligible and locked ones - setLockedOverride(deploymentTemplateResp.result?.lockedOverride) - setDisableSaveEligibleChanges(deploymentTemplateResp.result?.disableSaveEligibleChanges) + setLockedOverride(deploymentTemplateResp.result.lockedOverride) + setDisableSaveEligibleChanges(deploymentTemplateResp.result.disableSaveEligibleChanges) handleLockedDiffDrawer(true) return } @@ -242,7 +242,7 @@ export default function DeploymentTemplateOverrideForm({ if (envOverrideValuesWithBasic) { editorOnChange(YAML.stringify(envOverrideValuesWithBasic, { indent: 2 }), true) - } else { + } else if (deploymentTemplateResp.result?.envOverrideValues) { dispatch({ type: DeploymentConfigStateActionTypes.tempFormData, payload: YAML.stringify(deploymentTemplateResp.result.envOverrideValues), diff --git a/src/components/app/details/appDetails/AppDetails.tsx b/src/components/app/details/appDetails/AppDetails.tsx index ced3f1a2db..3dc83ce753 100644 --- a/src/components/app/details/appDetails/AppDetails.tsx +++ b/src/components/app/details/appDetails/AppDetails.tsx @@ -334,6 +334,7 @@ export const Details: React.FC = ({ } }, ) + .catch() }, [ params.appId, diff --git a/src/components/app/details/main.tsx b/src/components/app/details/main.tsx index 9e432d147c..4c2287c0f2 100644 --- a/src/components/app/details/main.tsx +++ b/src/components/app/details/main.tsx @@ -73,10 +73,12 @@ export default function AppDetailsPage({ isV2 }: AppDetailsProps) { const getSavedFilterData = async (groupId?: number): Promise => { setSelectedAppList([]) + setSelectedGroupFilter([]) setAppListLoading(true) setGroupFilterOptions([]) - const { result } = await getEnvGroupList(+appId, FilterParentType.app) - if (result) { + try { + const { result } = await getEnvGroupList(+appId, FilterParentType.app) + if (result) { const _groupFilterOption = [] let _selectedGroup for (const group of result) { @@ -106,26 +108,29 @@ export default function AppDetailsPage({ isV2 }: AppDetailsProps) { } _groupFilterOption.sort(sortOptionsByLabel) setGroupFilterOptions(_groupFilterOption) - } + } + } catch {} setAppListLoading(false) } const getAppListData = async (): Promise => { setSelectedAppList([]) setAppListLoading(true) - const { result } = await getAppOtherEnvironmentMin(appId) - if (result?.length) { + try { + const { result } = await getAppOtherEnvironmentMin(appId) + if (result?.length) { setAppListOptions( - result - .map((app): OptionType => { - return { - value: `${app.environmentId}`, - label: app.environmentName, - } - }) - .sort(sortOptionsByLabel), + result + .map((app): OptionType => { + return { + value: `${app.environmentId}`, + label: app.environmentName, + } + }) + .sort(sortOptionsByLabel), ) - } + } + } catch {} setAppListLoading(false) } diff --git a/src/components/app/details/triggerView/TriggerView.tsx b/src/components/app/details/triggerView/TriggerView.tsx index 12614ea877..6b13ec3f25 100644 --- a/src/components/app/details/triggerView/TriggerView.tsx +++ b/src/components/app/details/triggerView/TriggerView.tsx @@ -176,6 +176,7 @@ class TriggerView extends Component { const _isDefaultConfig = response.result.is_default_configured this.setState({ configs: isConfigPresent, isDefaultConfigPresent: _isDefaultConfig }) }) + .catch() } getWorkflows = (isFromOnMount?: boolean) => { diff --git a/src/components/common/helpers/Helpers.tsx b/src/components/common/helpers/Helpers.tsx index e12215f364..9462973744 100644 --- a/src/components/common/helpers/Helpers.tsx +++ b/src/components/common/helpers/Helpers.tsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect, useCallback, useRef, useMemo, RefObject, useLayoutEffect } from 'react' +import React, { useState, useEffect, useCallback, useRef, useMemo } from 'react' import { showError, useThrottledEffect, @@ -1104,32 +1104,6 @@ export const reloadToastBody = () => { ) } -export function useHeightObserver(callback): [RefObject] { - const ref = useRef(null) - const callbackRef = useRef(callback) - - useLayoutEffect(() => { - callbackRef.current = callback - }, [callback]) - - const handleHeightChange = useCallback(() => { - callbackRef.current?.(ref.current.clientHeight) - }, [callbackRef]) - - useLayoutEffect(() => { - if (!ref.current) { - return - } - const observer = new ResizeObserver(handleHeightChange) - observer.observe(ref.current) - return () => { - observer.disconnect() - } - }, [handleHeightChange, ref]) - - return [ref] -} - export const getDeploymentAppType = ( allowedDeploymentTypes: DeploymentAppTypes[], selectedDeploymentAppType: string, diff --git a/src/components/deploymentConfig/DeploymentConfig.tsx b/src/components/deploymentConfig/DeploymentConfig.tsx index fc9a5fe484..20d22ef86b 100644 --- a/src/components/deploymentConfig/DeploymentConfig.tsx +++ b/src/components/deploymentConfig/DeploymentConfig.tsx @@ -518,9 +518,9 @@ export default function DeploymentConfig({ const deploymentTemplateResp = isProtected ? await checkForProtectedLockedChanges() : await getIfLockedConfigNonProtected(requestBody) - if (deploymentTemplateResp.result.isLockConfigError) { - setDisableSaveEligibleChanges(deploymentTemplateResp.result?.disableSaveEligibleChanges) - setLockedOverride(deploymentTemplateResp.result?.lockedOverride) + if (deploymentTemplateResp.result?.isLockConfigError) { + setDisableSaveEligibleChanges(deploymentTemplateResp.result.disableSaveEligibleChanges) + setLockedOverride(deploymentTemplateResp.result.lockedOverride) handleLockedDiffDrawer(true) return } @@ -566,9 +566,9 @@ export default function DeploymentConfig({ const requestBody = prepareDataToSave(true) const api = state.chartConfig.id ? updateDeploymentTemplate : saveDeploymentTemplate const deploymentTemplateResp = await api(requestBody, baseDeploymentAbortController.signal) - if (deploymentTemplateResp.result.isLockConfigError) { - setDisableSaveEligibleChanges(deploymentTemplateResp.result?.disableSaveEligibleChanges) - setLockedOverride(deploymentTemplateResp.result?.lockedOverride) + if (deploymentTemplateResp.result?.isLockConfigError) { + setDisableSaveEligibleChanges(deploymentTemplateResp.result.disableSaveEligibleChanges) + setLockedOverride(deploymentTemplateResp.result.lockedOverride) handleLockedDiffDrawer(true) return } diff --git a/src/components/deploymentConfig/DeploymentTemplateView/DeploymentConfigFormCTA.tsx b/src/components/deploymentConfig/DeploymentTemplateView/DeploymentConfigFormCTA.tsx index 69ce9b0638..40d992f873 100644 --- a/src/components/deploymentConfig/DeploymentTemplateView/DeploymentConfigFormCTA.tsx +++ b/src/components/deploymentConfig/DeploymentTemplateView/DeploymentConfigFormCTA.tsx @@ -72,7 +72,7 @@ export default function DeploymentConfigFormCTA({ payload: true, }) const deploymentTemplateResp = await checkForProtectedLockedChanges() - if (deploymentTemplateResp.result.isLockConfigError) { + if (deploymentTemplateResp.result?.isLockConfigError) { setShowLockedDiffForApproval(true) setLockedOverride(deploymentTemplateResp.result.lockedOverride) handleLockedDiffDrawer(true) diff --git a/src/components/login/Login.tsx b/src/components/login/Login.tsx index 4d88cf692a..369d393020 100644 --- a/src/components/login/Login.tsx +++ b/src/components/login/Login.tsx @@ -61,6 +61,7 @@ export default class Login extends Component { loginList: list, }) }) + .catch() if (typeof Storage !== 'undefined') { if (localStorage.isDashboardAccessed) { return diff --git a/src/components/v2/appDetails/AppDetails.component.tsx b/src/components/v2/appDetails/AppDetails.component.tsx index ac3d29fdbb..6c9fe3b2a7 100644 --- a/src/components/v2/appDetails/AppDetails.component.tsx +++ b/src/components/v2/appDetails/AppDetails.component.tsx @@ -105,6 +105,7 @@ const AppDetailsComponent = ({ } }, ) + .catch() } const processDeploymentStatusData = (deploymentStatusDetailRes: DeploymentStatusDetailsType): void => { diff --git a/src/components/v2/appDetails/k8Resource/nodeDetail/NodeDetailTabs/terminal/Terminal.tsx b/src/components/v2/appDetails/k8Resource/nodeDetail/NodeDetailTabs/terminal/Terminal.tsx index 90f816ad40..22d3b8e577 100644 --- a/src/components/v2/appDetails/k8Resource/nodeDetail/NodeDetailTabs/terminal/Terminal.tsx +++ b/src/components/v2/appDetails/k8Resource/nodeDetail/NodeDetailTabs/terminal/Terminal.tsx @@ -5,7 +5,7 @@ import * as XtermWebfont from 'xterm-webfont' import SockJS from 'sockjs-client' import moment from 'moment' import CopyToast, { handleSelectionChange } from '../CopyToast' -import { elementDidMount, useHeightObserver } from '../../../../../../common/helpers/Helpers' +import { elementDidMount } from '../../../../../../common/helpers/Helpers' import { CLUSTER_STATUS, SocketConnectionType } from '../../../../../../ClusterNodes/constants' import { TERMINAL_STATUS } from './constants' import './terminal.scss' @@ -27,6 +27,7 @@ export default function TerminalView({ dataTestId, }: TerminalViewType) { const socket = useRef(null) + const termDiv = useRef(null) const [firstMessageReceived, setFirstMessageReceived] = useState(false) const [isReconnection, setIsReconnection] = useState(false) const [popupText, setPopupText] = useState(false) @@ -42,7 +43,13 @@ export default function TerminalView({ } } - const [myDivRef] = useHeightObserver(resizeSocket) + useEffect(() => { + /* requestAnimationFrame: will defer the resizeSocket callback to the next repaint; + * sparing us from - ResizeObserver loop completed with undelivered notifications */ + const observer = new ResizeObserver(() => window.requestAnimationFrame(resizeSocket)) + observer.observe(termDiv.current) + return () => observer.disconnect() + }, []) useEffect(() => { if (!terminalRef.current) { @@ -240,7 +247,7 @@ export default function TerminalView({
{renderConnectionStrip()}