Skip to content

Commit 5949314

Browse files
authored
Merge pull request #2841 from devtron-labs/rc-merge/v0.40.0
chore: merge rc-v0.40.0
2 parents 311bebd + 6b922ef commit 5949314

15 files changed

+256
-278
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"private": true,
55
"homepage": "/dashboard",
66
"dependencies": {
7-
"@devtron-labs/devtron-fe-common-lib": "1.17.0-pre-13",
7+
"@devtron-labs/devtron-fe-common-lib": "1.18.0",
88
"@esbuild-plugins/node-globals-polyfill": "0.2.3",
99
"@rjsf/core": "^5.13.3",
1010
"@rjsf/utils": "^5.13.3",

src/components/ClusterNodes/ClusterTerminal.tsx

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616

1717
import { useEffect, useRef, useState } from 'react'
18-
import { useHistory, useLocation, useParams } from 'react-router-dom'
18+
import { generatePath, useHistory, useLocation } from 'react-router-dom'
1919

2020
import {
2121
Checkbox,
@@ -27,6 +27,7 @@ import {
2727
NodeTaintType,
2828
noop,
2929
OptionType,
30+
RESOURCE_BROWSER_ROUTES,
3031
ResponseType,
3132
SelectPickerOptionType,
3233
ServerErrors,
@@ -35,12 +36,11 @@ import {
3536
TabProps,
3637
} from '@devtron-labs/devtron-fe-common-lib'
3738

38-
import { K8sResourceListURLParams } from '@Components/ResourceBrowser/ResourceList/types'
39+
import { ResourceBrowserTabsId } from '@Components/ResourceBrowser/Constants'
3940
import { getClusterTerminalParamsData } from '@Pages/GlobalConfigurations/ClustersAndEnvironments/cluster.util'
4041

4142
import { BUSYBOX_LINK, DEFAULT_CONTAINER_NAME, NETSHOOT_LINK, shellTypes } from '../../config/constants'
4243
import { clusterImageDescription, convertToOptionsList } from '../common'
43-
import { AppDetailsTabs } from '../v2/appDetails/appDetails.store'
4444
import {
4545
EditModeType,
4646
TERMINAL_STATUS,
@@ -84,11 +84,15 @@ const ClusterTerminal = ({
8484
clusterImageList,
8585
namespaceList = [],
8686
taints,
87-
updateTerminalTabUrl,
87+
updateTabUrl,
8888
}: ClusterTerminalType) => {
89-
const { kind } = useParams<K8sResourceListURLParams>()
9089
const { replace } = useHistory()
9190
const location = useLocation()
91+
const isAdminTerminalVisible =
92+
location.pathname ===
93+
generatePath(RESOURCE_BROWSER_ROUTES.TERMINAL, {
94+
clusterId,
95+
})
9296
const queryParams = new URLSearchParams(location.search)
9397
const terminalAccessIdRef = useRef()
9498
const clusterShellTypes = shellTypes.filter((types) => types.label === 'sh' || types.label === 'bash')
@@ -157,7 +161,7 @@ const ClusterTerminal = ({
157161
}
158162

159163
useEffect(() => {
160-
if (kind !== 'terminal' || queryParamsData.selectedNode.value === selectedNodeName.value || !update) {
164+
if (!isAdminTerminalVisible || queryParamsData.selectedNode.value === selectedNodeName.value || !update) {
161165
return
162166
}
163167
/* NOTE: update selectedNodeName */
@@ -182,8 +186,11 @@ const ClusterTerminal = ({
182186
queryParams.set('namespace', selectedNamespace.value)
183187
queryParams.set('shell', selectedTerminalType.value)
184188
queryParams.set('node', selectedNodeName.value)
185-
updateTerminalTabUrl(queryParams.toString())
186-
if (kind === AppDetailsTabs.terminal) {
189+
updateTabUrl({
190+
id: ResourceBrowserTabsId.terminal,
191+
url: `${generatePath(RESOURCE_BROWSER_ROUTES.TERMINAL, { clusterId })}?${queryParams.toString()}`,
192+
})
193+
if (isAdminTerminalVisible) {
187194
replace({ search: queryParams.toString() })
188195
}
189196
}, [selectedNodeName.value, selectedNamespace.value, selectedImage.value, selectedTerminalType.value])
@@ -1031,7 +1038,7 @@ const ClusterTerminal = ({
10311038
renderConnectionStrip: renderStripMessage(),
10321039
setSocketConnection,
10331040
socketConnection,
1034-
isTerminalTab: selectedTabIndex === 0 && kind === 'terminal',
1041+
isTerminalTab: selectedTabIndex === 0 && isAdminTerminalVisible,
10351042
sessionId,
10361043
registerLinkMatcher: renderRegisterLinkMatcher,
10371044
},

src/components/ClusterNodes/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ export interface ClusterTerminalType {
155155
namespaceList: string[]
156156
nodeGroups: SelectGroupType[]
157157
taints: Map<string, NodeTaintType[]>
158-
updateTerminalTabUrl: (queryParams: string) => void
158+
updateTabUrl: UseTabsReturnType['updateTabUrl']
159159
}
160160

161161
export const TEXT_COLOR_CLASS = {

src/components/ResourceBrowser/PageHeader.buttons.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ export const CreateResourceButton: React.FC<CreateResourceButtonType> = ({ clust
4747
})
4848
}
4949

50-
const handleModalClose = () => {
50+
const handleModalClose = (shouldUpdate: boolean) => {
5151
setShowModal(false)
52-
closeModal(true)
52+
closeModal(shouldUpdate)
5353
}
5454

5555
return (

src/components/ResourceBrowser/ResourceList/AdminTerminal.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import ClusterTerminal from '../../ClusterNodes/ClusterTerminal'
2727
import { createGroupSelectList, filterImageList } from '../../common'
2828
import { AdminTerminalProps, ClusterDetailBaseParams } from '../Types'
2929

30-
const AdminTerminal: React.FC<AdminTerminalProps> = ({ updateTerminalTabUrl }: AdminTerminalProps) => {
30+
const AdminTerminal: React.FC<AdminTerminalProps> = ({ updateTabUrl }: AdminTerminalProps) => {
3131
const { clusterId } = useParams<ClusterDetailBaseParams>()
3232

3333
const [loading, data, error] = useAsync(
@@ -72,7 +72,7 @@ const AdminTerminal: React.FC<AdminTerminalProps> = ({ updateTerminalTabUrl }: A
7272
taints={details.taints}
7373
clusterImageList={details.clusterImageList}
7474
namespaceList={details.namespaceList}
75-
updateTerminalTabUrl={updateTerminalTabUrl}
75+
updateTabUrl={updateTabUrl}
7676
/>
7777
)
7878
}

src/components/ResourceBrowser/ResourceList/AdminTerminalDummy.tsx

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/components/ResourceBrowser/ResourceList/CreateResource.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,13 @@ export const CreateResource: React.FC<CreateResourceType> = ({ closePopup, clust
4646
const [loader, setLoader] = useState(false)
4747
const [resourceYAML, setResourceYAML] = useState('')
4848
const [resourceResponse, setResourceResponse] = useState<CreateResourceDTO[]>(null)
49+
const [needsUpdate, setNeedsUpdate] = useState(false)
4950

5051
const onClose = (): void => {
5152
if (loader) {
5253
return
5354
}
54-
closePopup(true)
55+
closePopup(needsUpdate)
5556
}
5657

5758
useEffect(() => {
@@ -85,6 +86,7 @@ export const CreateResource: React.FC<CreateResourceType> = ({ closePopup, clust
8586
if (result) {
8687
setResourceResponse(result)
8788
toggleCodeEditorView(false)
89+
setNeedsUpdate(true)
8890
}
8991
} catch (err) {
9092
showError(err)
@@ -96,7 +98,7 @@ export const CreateResource: React.FC<CreateResourceType> = ({ closePopup, clust
9698
const renderFooter = (): JSX.Element => {
9799
if (showCodeEditorView) {
98100
return (
99-
<div className="dc__border-top flex right p-16">
101+
<div className="dc__border-top flex right p-16 dc__gap-8">
100102
<Button
101103
dataTestId="cancel-create-resource"
102104
text={CREATE_RESOURCE_MODAL_MESSAGING.actionButtonText.cancel}

src/components/ResourceBrowser/ResourceList/DynamicTabComponentWrapper.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,7 @@ export const DynamicTabComponentWrapper = ({
6161
updateTabUrl({ id: tabId, url: `${pathname}${search}` })
6262
}, [pathname, search])
6363

64-
return cloneElement(children, { ...children.props, key: getTabById(tabId)?.componentKey }) as ReactElement
64+
return children
65+
? (cloneElement(children, { ...children.props, key: getTabById(tabId)?.componentKey }) as ReactElement)
66+
: null
6567
}

src/components/ResourceBrowser/ResourceList/K8sResourceListTableCellComponent.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import { AddEnvironmentFormPrefilledInfoType } from '@Pages/GlobalConfigurations
2626
import { ClusterEnvironmentDrawer } from '@Pages/GlobalConfigurations/ClustersAndEnvironments/ClusterEnvironmentDrawer'
2727
import { ADD_ENVIRONMENT_FORM_LOCAL_STORAGE_KEY } from '@Pages/GlobalConfigurations/ClustersAndEnvironments/constants'
2828

29-
import { AI_BUTTON_CONFIG_MAP, EVENT_LIST, K8S_EMPTY_GROUP } from '../Constants'
29+
import { AI_BUTTON_CONFIG_MAP, EVENT_LIST, K8S_EMPTY_GROUP, NODE_LIST_HEADERS_TO_KEY_MAP } from '../Constants'
3030
import { ClusterDetailBaseParams } from '../Types'
3131
import { getRenderInvolvedObjectButton, getRenderNodeButton, renderResourceValue } from '../Utils'
3232
import NodeActionsMenu from './NodeActionsMenu'
@@ -52,8 +52,8 @@ const K8sResourceListTableCellComponent = ({
5252
const { push } = useHistory()
5353
const { clusterId } = useParams<ClusterDetailBaseParams>()
5454
const isNodeListing = selectedResource?.gvk.Kind === Nodes.Node
55-
const isNodeListingAndNodeHasErrors = false
56-
const isNodeUnschedulable = false
55+
const isNodeListingAndNodeHasErrors = isNodeListing && !!resourceData[NODE_LIST_HEADERS_TO_KEY_MAP.errors]
56+
const isNodeUnschedulable = isNodeListing && !!resourceData.unschedulable
5757
const nameButtonRef = useRef<HTMLButtonElement>(null)
5858
const contextMenuRef = useRef<HTMLButtonElement>(null)
5959

src/components/ResourceBrowser/ResourceList/NodeActionsMenu.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,10 +167,10 @@ const NodeActionsMenu = forwardRef<HTMLButtonElement, NodeActionsMenuProps>(
167167
case NodeActionMenuOptionIdEnum.drain:
168168
showDrainNodeModal()
169169
break
170-
case NodeActionMenuOptionIdEnum['edit-taints']:
170+
case NodeActionMenuOptionIdEnum.editTaints:
171171
showEditTaintsModal()
172172
break
173-
case NodeActionMenuOptionIdEnum['edit-yaml']:
173+
case NodeActionMenuOptionIdEnum.editYaml:
174174
handleEditYamlAction()
175175
break
176176
case NodeActionMenuOptionIdEnum.delete:

0 commit comments

Comments
 (0)