Skip to content

Commit 9789204

Browse files
committed
fix: review comments
1 parent abf75d2 commit 9789204

17 files changed

+94
-109
lines changed

src/components/ClusterNodes/NodeDetails.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,7 @@ const NodeDetails = ({ addTab, lowercaseKindToResourceGroupMap, updateTabUrl }:
771771
{sortedPodList.map((pod) => (
772772
<div className="row-wrapper" key={`${pod.name}-${pod.namespace}`}>
773773
<span className="dc__ellipsis-right">{pod.namespace}</span>
774-
<div className="dc__visible-hover dc__visible-hover--parent hover-trigger dc__position-rel flexbox dc__align-items-center">
774+
<div className="dc__visible-hover dc__visible-hover--parent hover-trigger dc__position-rel flexbox dc__align-items-center dc__content-space">
775775
<Tooltip content={pod.name} interactive>
776776
<span
777777
className="dc__inline-block dc__ellipsis-right cb-5 cursor"
@@ -942,7 +942,7 @@ const NodeDetails = ({ addTab, lowercaseKindToResourceGroupMap, updateTabUrl }:
942942
const parsedManifest = YAML.parse(modifiedManifest)
943943
const requestData: UpdateNodeRequestBody = {
944944
clusterId: +clusterId,
945-
name: name,
945+
name,
946946
manifestPatch: JSON.stringify(parsedManifest),
947947
version: nodeDetail.version,
948948
kind: nodeDetail.kind,

src/components/ResourceBrowser/ResourceList/ClusterUpgradeCompatibilityInfoTableCellComponent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,14 @@ const ClusterUpgradeCompatibilityInfoTableCellComponent = ({
115115
>
116116
<div className="flex left dc__gap-4">
117117
<Tooltip content={resourceData.name}>
118+
{/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}
118119
<button
119120
type="button"
120121
className="dc__unset-button-styles dc__align-left dc__truncate"
121122
data-name={resourceData.name}
122123
data-namespace={resourceData.namespace || ALL_NAMESPACE_OPTION.value}
123124
data-kind={resourceData.kind}
124125
onClick={!shouldHideContextMenu ? handleResourceClick : noop}
125-
aria-label={`Select ${resourceData.name}`}
126126
ref={nameButtonRef}
127127
>
128128
<span

src/components/ResourceBrowser/ResourceList/K8SResourceList.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,6 @@ export const K8SResourceList = ({
236236

237237
return (
238238
<Table
239-
// key={JSON.stringify(selectedResource)}
240239
loading={resourceListLoader || !resourceList}
241240
columns={columns}
242241
rows={rows}

src/components/ResourceBrowser/ResourceList/K8sResourceListTableCellComponent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ const K8sResourceListTableCellComponent = ({
182182
>
183183
<div className="flex left dc__gap-4">
184184
<Tooltip content={resourceData.name}>
185+
{/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}
185186
<button
186187
type="button"
187188
className="dc__unset-button-styles dc__align-left dc__truncate"
@@ -190,7 +191,6 @@ const K8sResourceListTableCellComponent = ({
190191
data-kind={selectedResource.gvk.Kind}
191192
data-group={selectedResource.gvk.Group || K8S_EMPTY_GROUP}
192193
onClick={isNodeListing ? handleNodeClick : handleResourceClick}
193-
aria-label={`Select ${resourceData.name}`}
194194
ref={nameButtonRef}
195195
>
196196
<span

src/components/ResourceBrowser/ResourceList/NodeActionsMenu.tsx

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import { generatePath, useHistory, useLocation, useParams } from 'react-router-d
2020
import {
2121
ActionMenu,
2222
ActionMenuProps,
23-
Button,
2423
ButtonStyleType,
2524
ButtonVariantType,
2625
ComponentSizeType,
@@ -37,7 +36,7 @@ import EditTaintsModal from '../../ClusterNodes/NodeActions/EditTaintsModal'
3736
import { K8S_EMPTY_GROUP, RESOURCE_BROWSER_ROUTES } from '../Constants'
3837
import { NodeActionsMenuProps } from '../Types'
3938
import { getNodeActions } from './constants'
40-
import { K8sResourceListURLParams } from './types'
39+
import { K8sResourceListURLParams, NodeActionMenuOptionIdEnum } from './types'
4140

4241
// TODO: This should be commoned out with ResourceBrowserActionMenu to have consistent styling
4342
const NodeActionsMenu = forwardRef<HTMLButtonElement, NodeActionsMenuProps>(
@@ -154,25 +153,25 @@ const NodeActionsMenu = forwardRef<HTMLButtonElement, NodeActionsMenuProps>(
154153

155154
const onActionMenuClick: ActionMenuProps['onClick'] = (item) => {
156155
switch (item.id) {
157-
case 'terminal':
156+
case NodeActionMenuOptionIdEnum.terminal:
158157
handleOpenTerminalAction()
159158
break
160-
case 'cordon':
159+
case NodeActionMenuOptionIdEnum.cordon:
161160
showCordonNodeModal()
162161
break
163-
case 'uncordon':
162+
case NodeActionMenuOptionIdEnum.uncordon:
164163
showCordonNodeModal()
165164
break
166-
case 'drain':
165+
case NodeActionMenuOptionIdEnum.drain:
167166
showDrainNodeModal()
168167
break
169-
case 'edit-taints':
168+
case NodeActionMenuOptionIdEnum['edit-taints']:
170169
showEditTaintsModal()
171170
break
172-
case 'edit-yaml':
171+
case NodeActionMenuOptionIdEnum['edit-yaml']:
173172
handleEditYamlAction()
174173
break
175-
case 'delete':
174+
case NodeActionMenuOptionIdEnum.delete:
176175
showDeleteNodeModal()
177176
break
178177
default:
@@ -182,23 +181,22 @@ const NodeActionsMenu = forwardRef<HTMLButtonElement, NodeActionsMenuProps>(
182181

183182
return (
184183
<>
185-
<ActionMenu
184+
<ActionMenu<NodeActionMenuOptionIdEnum>
186185
id={nodeData.name as string}
187186
onClick={onActionMenuClick}
188187
options={[{ items: getNodeActions(!!nodeData.unschedulable) }]}
189188
position="right"
190-
>
191-
<Button
192-
ref={forwardedRef}
193-
dataTestId={`node-actions-button-${nodeData.name}`}
194-
icon={<MenuDots className="fcn-7" />}
195-
variant={ButtonVariantType.borderLess}
196-
ariaLabel="Open action menu"
197-
style={ButtonStyleType.neutral}
198-
size={ComponentSizeType.xxs}
199-
showAriaLabelInTippy={false}
200-
/>
201-
</ActionMenu>
189+
buttonProps={{
190+
ref: forwardedRef,
191+
dataTestId: `node-actions-button-${nodeData.name}`,
192+
icon: <MenuDots className="fcn-7" />,
193+
variant: ButtonVariantType.borderLess,
194+
ariaLabel: 'Open action menu',
195+
style: ButtonStyleType.neutral,
196+
size: ComponentSizeType.xxs,
197+
showAriaLabelInTippy: false,
198+
}}
199+
/>
202200
{renderModal()}
203201
</>
204202
)

src/components/ResourceBrowser/ResourceList/ResourceBrowserActionMenu.tsx

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ import { ReactComponent as MenuDots } from '@Icons/ic-more-vertical.svg'
3838

3939
import { getShowResourceScanModal, importComponentFromFELibrary } from '../../common'
4040
import { NodeType } from '../../v2/appDetails/appDetails.type'
41-
import { RESOURCE_ACTION_MENU } from '../Constants'
4241
import { ResourceBrowserActionMenuType } from '../Types'
4342
import DeleteResourcePopup from './DeleteResourcePopup'
4443

@@ -59,6 +58,15 @@ const getResourceScanDetails: ({
5958
'function',
6059
)
6160

61+
enum ResourceBrowserActionMenuEnum {
62+
manifest = 'manifest',
63+
events = 'events',
64+
logs = 'logs',
65+
terminal = 'terminal',
66+
delete = 'delete',
67+
vulnerability = 'vulnerability',
68+
}
69+
6270
const ResourceBrowserActionMenu = forwardRef(
6371
(
6472
{
@@ -109,12 +117,12 @@ const ResourceBrowserActionMenu = forwardRef(
109117
installedModuleMap.current?.[ModuleNameMap.SECURITY_TRIVY],
110118
)
111119

112-
const onActionMenuClick: ActionMenuProps['onClick'] = (item) => {
120+
const onActionMenuClick: ActionMenuProps<ResourceBrowserActionMenuEnum>['onClick'] = (item) => {
113121
switch (item.id) {
114-
case RESOURCE_ACTION_MENU.manifest:
115-
case RESOURCE_ACTION_MENU.Events:
116-
case RESOURCE_ACTION_MENU.logs:
117-
case RESOURCE_ACTION_MENU.terminal:
122+
case ResourceBrowserActionMenuEnum.manifest:
123+
case ResourceBrowserActionMenuEnum.events:
124+
case ResourceBrowserActionMenuEnum.logs:
125+
case ResourceBrowserActionMenuEnum.terminal:
118126
handleResourceClick({
119127
currentTarget: {
120128
dataset: {
@@ -126,10 +134,10 @@ const ResourceBrowserActionMenu = forwardRef(
126134
},
127135
})
128136
return
129-
case RESOURCE_ACTION_MENU.delete:
137+
case ResourceBrowserActionMenuEnum.delete:
130138
toggleDeleteDialog()
131139
return
132-
case 'vulnerability':
140+
case ResourceBrowserActionMenuEnum.vulnerability:
133141
handleShowVulnerabilityModal()
134142
return
135143
default:
@@ -142,54 +150,54 @@ const ResourceBrowserActionMenu = forwardRef(
142150

143151
return (
144152
<>
145-
<ActionMenu
153+
<ActionMenu<ResourceBrowserActionMenuEnum>
146154
id={id}
147155
onClick={onActionMenuClick}
148156
position="right"
149157
options={[
150158
{
151159
items: [
152160
{
153-
id: RESOURCE_ACTION_MENU.manifest,
161+
id: ResourceBrowserActionMenuEnum.manifest,
154162
label: 'Manifest',
155163
startIcon: { name: 'ic-file-code' },
156164
},
157165
{
158-
id: RESOURCE_ACTION_MENU.Events,
166+
id: ResourceBrowserActionMenuEnum.events,
159167
label: 'Events',
160168
startIcon: { name: 'ic-calendar' },
161169
},
162170
...(selectedResource?.gvk?.Kind === Nodes.Pod
163171
? [
164172
{
165-
id: RESOURCE_ACTION_MENU.logs,
173+
id: ResourceBrowserActionMenuEnum.logs,
166174
label: 'Logs',
167175
startIcon: { name: 'ic-logs' },
168-
} as ActionMenuItemType,
176+
} as ActionMenuItemType<ResourceBrowserActionMenuEnum>,
169177
{
170-
id: RESOURCE_ACTION_MENU.terminal,
178+
id: ResourceBrowserActionMenuEnum.terminal,
171179
label: 'Terminal',
172180
startIcon: { name: 'ic-terminal-fill' },
173-
} as ActionMenuItemType,
181+
} as ActionMenuItemType<ResourceBrowserActionMenuEnum>,
174182
]
175183
: []),
176184
...(showResourceScanModal && SecurityModal
177185
? [
178186
{
179-
id: 'vulnerability',
187+
id: ResourceBrowserActionMenuEnum.vulnerability,
180188
label: 'Check vulnerabilities',
181189
startIcon: { name: 'ic-bug' },
182-
} as ActionMenuItemType,
190+
} as ActionMenuItemType<ResourceBrowserActionMenuEnum>,
183191
]
184192
: []),
185193
...(!hideDeleteResource
186194
? [
187195
{
188-
id: RESOURCE_ACTION_MENU.delete,
196+
id: ResourceBrowserActionMenuEnum.delete,
189197
label: 'Delete',
190198
type: 'negative',
191199
startIcon: { name: 'ic-delete' },
192-
} as ActionMenuItemType,
200+
} as ActionMenuItemType<ResourceBrowserActionMenuEnum>,
193201
]
194202
: []),
195203
],

src/components/ResourceBrowser/ResourceList/ResourceFilterOptions.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ const ResourceFilterOptions = ({
7676
resourceRecommenderConfig,
7777
selectedAPIVersionGVKFilter,
7878
selectedKindGVKFilter,
79-
resourceLastScannedOnDetails,
8079
}: ResourceFilterOptionsProps) => {
8180
const { registerShortcut, unregisterShortcut } = useRegisterShortcut()
8281
const { clusterId } = useParams<K8sResourceListURLParams>()
@@ -92,8 +91,11 @@ const ResourceFilterOptions = ({
9291
const showShortcutKey = !isInputFocused && !searchText
9392
const isResourceRecommender = selectedResource?.gvk?.Kind === Nodes.ResourceRecommender
9493

95-
const { showAbsoluteValuesInResourceRecommender = false, setShowAbsoluteValuesInResourceRecommender = noop } =
96-
resourceRecommenderConfig ?? {}
94+
const {
95+
showAbsoluteValuesInResourceRecommender = false,
96+
setShowAbsoluteValuesInResourceRecommender = noop,
97+
resourceLastScannedOnDetails,
98+
} = resourceRecommenderConfig ?? {}
9799

98100
const [, namespaceByClusterIdList] = useAsync(() => namespaceListByClusterId(clusterId), [clusterId])
99101

src/components/ResourceBrowser/ResourceList/ResourceList.tsx

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import {
2121
DevtronProgressing,
2222
ErrorScreenManager,
2323
getResourceGroupListRaw,
24-
GetResourceRecommenderResourceListPropsType,
2524
handleAnalyticsEvent,
2625
Icon,
2726
useAsync,
@@ -280,32 +279,6 @@ const ResourceList = () => {
280279
({ url: _url, dynamicTitle, retainSearchParams }: Omit<UpdateTabUrlParamsType, 'id'>) =>
281280
updateTabUrl({ id, url: _url, dynamicTitle, retainSearchParams })
282281

283-
const getResourceRecommenderBaseResourceListProps = ({
284-
setShowAbsoluteValuesInResourceRecommender,
285-
showAbsoluteValuesInResourceRecommender,
286-
gvkOptions,
287-
areGVKOptionsLoading,
288-
reloadGVKOptions,
289-
gvkOptionsError,
290-
}: GetResourceRecommenderResourceListPropsType) => ({
291-
selectedCluster,
292-
selectedResource: {
293-
gvk: SIDEBAR_KEYS.resourceRecommenderGVK,
294-
namespaced: true,
295-
},
296-
lowercaseKindToResourceGroupMap,
297-
resourceRecommenderConfig: {
298-
setShowAbsoluteValuesInResourceRecommender,
299-
showAbsoluteValuesInResourceRecommender,
300-
},
301-
gvkFilterConfig: {
302-
gvkOptions,
303-
areGVKOptionsLoading,
304-
reloadGVKOptions,
305-
gvkOptionsError,
306-
},
307-
})
308-
309282
const renderPageHeaderActionButtons = () => {
310283
const clusterConnectionFailed = !!clusterList?.find(({ id }) => clusterId === String(id))?.errorInNodeListing
311284

@@ -396,7 +369,7 @@ const ResourceList = () => {
396369
<Route path={RESOURCE_BROWSER_ROUTES.RESOURCE_RECOMMENDER} exact>
397370
<DynamicTabComponentWrapper type="fixed" {...DynamicTabComponentWrapperBaseProps}>
398371
<ResourceRecommender
399-
getBaseResourceListProps={getResourceRecommenderBaseResourceListProps}
372+
selectedCluster={selectedCluster}
400373
ResourceRecommenderTableCellComponent={ResourceRecommenderTableCellComponent}
401374
ResourceRecommenderTableViewWrapper={ResourceRecommenderTableViewWrapper}
402375
dynamicSort={dynamicSort}

src/components/ResourceBrowser/ResourceList/ResourceRecommenderTableCellComponent.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,15 @@ const ResourceRecommenderTableCellComponent = ({
119119
<div className="flexbox dc__align-start dc__content-space dc__gap-8 flex-grow-1">
120120
<div className="flexbox dc__align-start dc__gap-4 flex-grow-1">
121121
<Tooltip content={resourceData.name}>
122+
{/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}
122123
<button
123124
type="button"
124-
className={`dc__unset-button-styles dc__align-left dc__truncate ${'cursor-default'}`}
125+
className="dc__unset-button-styles dc__align-left dc__truncate cursor-default"
125126
data-name={resourceData.name}
126127
data-namespace={resourceData.namespace}
127128
data-kind={resourceData.kind}
128129
data-api-version={resourceData.apiVersion}
129130
onClick={handleResourceClick}
130-
aria-label={`Select ${resourceData.name}`}
131131
>
132132
<span
133133
className="dc__link cursor"
@@ -150,7 +150,6 @@ const ResourceRecommenderTableCellComponent = ({
150150
/>
151151
</div>
152152

153-
{/* Maybe move to separate */}
154153
<div className="dc__visible-hover--child">
155154
<Button
156155
dataTestId={`apply-recommendation-${resourceData.id as string}`}

src/components/ResourceBrowser/ResourceList/ResourceRecommenderTableViewWrapper.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export const ResourceRecommenderTableViewWrapper = ({
2424
resourceRecommenderConfig,
2525
selectedKindGVKFilter,
2626
selectedAPIVersionGVKFilter,
27-
resourceLastScannedOnDetails,
2827
}: ResourceRecommenderTableViewWrapperProps) => (
2928
<div className="resource-list-container flexbox-col flex-grow-1 border__primary--left dc__overflow-hidden">
3029
<ResourceFilterOptions
@@ -41,7 +40,6 @@ export const ResourceRecommenderTableViewWrapper = ({
4140
resourceRecommenderConfig={resourceRecommenderConfig}
4241
selectedKindGVKFilter={selectedKindGVKFilter}
4342
selectedAPIVersionGVKFilter={selectedAPIVersionGVKFilter}
44-
resourceLastScannedOnDetails={resourceLastScannedOnDetails}
4543
/>
4644

4745
{resourceListError ? (

0 commit comments

Comments
 (0)