Skip to content

Commit ca461db

Browse files
committed
fix: action menu placement & more
1 parent d7d9b71 commit ca461db

8 files changed

+38
-25
lines changed

src/components/ResourceBrowser/ResourceList/K8SResourceList.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {
2121
abortPreviousRequests,
2222
FiltersTypeEnum,
2323
getAIAnalyticsEvents,
24+
getIsRequestAborted,
2425
LARGE_PAGE_SIZE_OPTIONS,
2526
Nodes,
2627
PaginationEnum,
@@ -139,7 +140,7 @@ export const K8SResourceList = ({
139140
}, {})
140141
: null
141142

142-
const [resourceListLoader, resourceList, , reloadResourceList] = useAsync(
143+
const [resourceListLoader, resourceList, resourceListError, reloadResourceList] = useAsync(
143144
() =>
144145
abortPreviousRequests(async () => {
145146
if (selectedResource) {
@@ -155,10 +156,10 @@ export const K8SResourceList = ({
155156
return null
156157
}, abortControllerRef),
157158
[selectedResource, clusterId, selectedNamespace, JSON.stringify(resourceFilters)],
158-
true,
159-
{ resetOnChange: false },
160159
)
161160

161+
const isResourceListLoading = !resourceList || resourceListLoader || getIsRequestAborted(resourceListError)
162+
162163
useEffect(
163164
() => () => {
164165
abortControllerRef.current?.abort()
@@ -241,7 +242,7 @@ export const K8SResourceList = ({
241242
<>
242243
<Table
243244
// key={JSON.stringify(selectedResource)}
244-
loading={resourceListLoader || !resourceList}
245+
loading={isResourceListLoading}
245246
columns={columns}
246247
rows={rows}
247248
{...(RBBulkSelectionActions && !isEventListing

src/components/ResourceBrowser/ResourceList/K8sResourceListTableCellComponent.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,12 @@ const K8sResourceListTableCellComponent = ({
162162
)
163163
}
164164

165+
const onAddEnvironmentKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {
166+
if (e.key === 'Enter') {
167+
e.stopPropagation()
168+
}
169+
}
170+
165171
if (columnName === 'type' && isEventListing) {
166172
const iconName: IconName =
167173
(resourceData.type as string).toLowerCase() === 'normal' ? 'ic-info-filled-color' : 'ic-warning'
@@ -284,6 +290,9 @@ const K8sResourceListTableCellComponent = ({
284290
dataTestId="add-environment"
285291
variant={ButtonVariantType.text}
286292
onClick={getAddEnvironmentClickHandler(resourceData.name as string)}
293+
buttonProps={{
294+
onKeyDown: onAddEnvironmentKeyDown,
295+
}}
287296
/>
288297
)}
289298
{columnName === 'status' && isNodeUnschedulable && (

src/components/ResourceBrowser/ResourceList/NodeActionsMenu.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ const NodeActionsMenu = forwardRef<HTMLButtonElement, NodeActionsMenuProps>(
186186
id={nodeData.name as string}
187187
onClick={onActionMenuClick}
188188
options={[{ items: getNodeActions(!!nodeData.unschedulable) }]}
189-
position="right"
189+
position="bottom"
190190
>
191191
<Button
192192
ref={forwardedRef}

src/components/ResourceBrowser/ResourceList/ResourceBrowserActionMenu.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ const ResourceBrowserActionMenu = forwardRef(
145145
<ActionMenu
146146
id={id}
147147
onClick={onActionMenuClick}
148-
position="right"
148+
position="bottom"
149149
options={[
150150
{
151151
items: [

src/components/ResourceBrowser/ResourceList/ResourceFilterOptions.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,7 @@ const ResourceFilterOptions = ({
302302

303303
<div className="dc__mxw-200">
304304
<SelectPicker
305+
selectRef={namespaceFilterRef}
305306
inputId="resource-filter-select"
306307
placeholder="Select Namespace"
307308
options={namespaceOptions}

src/components/ResourceBrowser/ResourceList/ResourceRecommenderTableCellComponent.tsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@ import {
88
ButtonVariantType,
99
ClipboardButton,
1010
ComponentSizeType,
11-
FiltersTypeEnum,
11+
getGroupVersionFromApiVersion,
1212
highlightSearchText,
1313
Icon,
1414
ResourceRecommenderHeaderWithRecommendation,
15-
TableCellComponentProps,
1615
TableSignalEnum,
1716
Tooltip,
1817
} from '@devtron-labs/devtron-fe-common-lib'
@@ -25,7 +24,8 @@ import {
2524
RESOURCE_ACTION_MENU,
2625
RESOURCE_BROWSER_ROUTES,
2726
} from '../Constants'
28-
import { ClusterDetailBaseParams, ResourceFilterOptionsProps } from '../Types'
27+
import { ClusterDetailBaseParams } from '../Types'
28+
import { ResourceRecommenderTableCellComponentProps } from './types'
2929

3030
const ApplyResourceRecommendationModal = importComponentFromFELibrary(
3131
'ApplyResourceRecommendationModal',
@@ -34,12 +34,6 @@ const ApplyResourceRecommendationModal = importComponentFromFELibrary(
3434
)
3535
const ResourceRecommendationChip = importComponentFromFELibrary('ResourceRecommendationChip', null, 'function')
3636

37-
interface ResourceRecommenderTableCellComponentProps
38-
extends TableCellComponentProps<FiltersTypeEnum.URL>,
39-
Pick<ResourceFilterOptionsProps, 'resourceRecommenderConfig'> {
40-
handleReloadDataAfterBulkOperation: () => void
41-
}
42-
4337
const ResourceRecommenderTableCellComponent = ({
4438
field: columnName,
4539
row: { id, data: resourceData },
@@ -57,16 +51,18 @@ const ResourceRecommenderTableCellComponent = ({
5751
name,
5852
namespace = ALL_NAMESPACE_OPTION.value,
5953
kind,
60-
group: _group,
6154
tab = RESOURCE_ACTION_MENU.manifest,
55+
apiVersion,
6256
} = e.currentTarget.dataset
6357

58+
const group = getGroupVersionFromApiVersion(apiVersion).group.toLowerCase() || K8S_EMPTY_GROUP
59+
6460
const url = generatePath(RESOURCE_BROWSER_ROUTES.K8S_RESOURCE_DETAIL, {
6561
clusterId,
6662
namespace,
6763
name,
6864
kind: kind.toLowerCase(),
69-
group: _group || K8S_EMPTY_GROUP,
65+
group,
7066
version: DUMMY_RESOURCE_GVK_VERSION,
7167
})
7268

src/components/ResourceBrowser/ResourceList/ResourceRecommenderTableViewWrapper.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
1-
import { ErrorScreenManager, TableViewWrapperProps, URLS } from '@devtron-labs/devtron-fe-common-lib'
1+
import { ErrorScreenManager, URLS } from '@devtron-labs/devtron-fe-common-lib'
22

3-
import { ResourceFilterOptionsProps } from '../Types'
43
import ResourceFilterOptions from './ResourceFilterOptions'
5-
6-
interface ResourceRecommenderTableViewWrapperProps extends ResourceFilterOptionsProps, TableViewWrapperProps {
7-
resourceListError: any
8-
reloadResourceListData: () => void
9-
}
4+
import { ResourceRecommenderTableViewWrapperProps } from './types'
105

116
export const ResourceRecommenderTableViewWrapper = ({
127
children,

src/components/ResourceBrowser/ResourceList/types.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import { UseTabsReturnType } from '@Components/common/DynamicTabs/types'
2626
import { NodeDetailPropsType } from '@Components/v2/appDetails/appDetails.type'
2727

2828
import { NODE_K8S_VERSION_FILTER_KEY } from '../Constants'
29-
import { ClusterDetailBaseParams, K8SResourceListType, NODE_SEARCH_KEYS } from '../Types'
29+
import { ClusterDetailBaseParams, K8SResourceListType, NODE_SEARCH_KEYS, ResourceFilterOptionsProps } from '../Types'
3030

3131
export interface ClusterUpgradeCompatibilityInfoProps
3232
extends Pick<ClusterListType, 'updateTabUrl'>,
@@ -104,3 +104,14 @@ export type DynamicTabComponentWrapperProps = Pick<
104104
({ type: 'fixed'; addTab?: never } | { type: 'dynamic'; addTab: UseTabsReturnType['addTab'] }) & {
105105
children: React.ReactElement
106106
}
107+
108+
export interface ResourceRecommenderTableCellComponentProps
109+
extends TableCellComponentProps<FiltersTypeEnum.URL>,
110+
Pick<ResourceFilterOptionsProps, 'resourceRecommenderConfig'> {
111+
handleReloadDataAfterBulkOperation: () => void
112+
}
113+
114+
export interface ResourceRecommenderTableViewWrapperProps extends ResourceFilterOptionsProps, TableViewWrapperProps {
115+
resourceListError: any
116+
reloadResourceListData: () => void
117+
}

0 commit comments

Comments
 (0)