Skip to content

Commit ec3957b

Browse files
committed
Fixes.
1 parent 3ac5c08 commit ec3957b

File tree

8 files changed

+87
-81
lines changed

8 files changed

+87
-81
lines changed

src/components/drops/menu/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ interface MenuProps {
1818
children?: any
1919
dropProps?: DropProps
2020
items?: Item[]
21-
renderItem?: RenderItemType
22-
renderDropdown?: (props: {
21+
Item?: RenderItemType
22+
Dropdown?: (props: {
2323
items: Item[]
2424
value: string | number
2525
onItemClick: Function
26-
renderItem: RenderItemType
26+
Item: RenderItemType
2727
}) => JSX.Element
2828

2929
[key: string]: any

src/components/drops/menu/dropdown.js

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@ const Dropdown = ({
1717
itemProps,
1818
items,
1919
onItemClick,
20-
renderItem,
20+
Item,
2121
value,
2222
hasSearch,
2323
searchMargin = [4],
2424
gap = 0,
25+
close,
2526
...rest
2627
}) => {
2728
const [searchParams, setSearchParams] = useState("")
@@ -44,7 +45,6 @@ const Dropdown = ({
4445
)
4546

4647
const ref = useRef()
47-
const measuresRef = useRef({})
4848

4949
const rowVirtualizer = useVirtualizer({
5050
count: filteredItems.length,
@@ -84,6 +84,7 @@ const Dropdown = ({
8484
minHeight: "100%",
8585
width: "100%",
8686
overflow: "auto",
87+
minWidth: "300px",
8788
}}
8889
>
8990
<div
@@ -93,30 +94,32 @@ const Dropdown = ({
9394
position: "relative",
9495
}}
9596
>
96-
{rowVirtualizer.getVirtualItems().map(virtualRow => (
97-
<div
98-
key={virtualRow.key}
99-
data-index={virtualRow.index}
100-
ref={rowVirtualizer.measureElement}
101-
style={{
102-
position: "absolute",
103-
top: 0,
104-
left: 0,
105-
width: "100%",
106-
transform: `translateY(${virtualRow.start}px)`,
107-
padding: gap * 2,
108-
overflow: "hidden",
109-
}}
110-
>
111-
{renderItem({
112-
item: filteredItems[virtualRow.index],
113-
index: virtualRow.index,
114-
itemProps,
115-
value,
116-
onItemClick,
117-
})}
118-
</div>
119-
))}
97+
{ref.current?.isConnected &&
98+
rowVirtualizer.getVirtualItems().map(virtualRow => (
99+
<div
100+
key={virtualRow.key}
101+
style={{
102+
position: "absolute",
103+
top: 0,
104+
left: 0,
105+
width: "100%",
106+
transform: `translateY(${virtualRow.start}px)`,
107+
padding: gap * 2,
108+
overflow: "hidden",
109+
}}
110+
data-index={virtualRow.index}
111+
ref={rowVirtualizer.measureElement}
112+
>
113+
<Item
114+
item={filteredItems[virtualRow.index]}
115+
index={virtualRow.index}
116+
itemProps={itemProps}
117+
value={value}
118+
onItemClick={onItemClick}
119+
close={close}
120+
/>
121+
</div>
122+
))}
120123
</div>
121124
</div>
122125
</Container>

src/components/drops/menu/index.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ export interface MenuProps {
3131
[key: string]: any
3232
}
3333
items?: Item[]
34-
renderItem?: RenderItemType
35-
renderDropdown?: (props: {
34+
Item?: RenderItemType
35+
Dropdown?: (props: {
3636
items: Item[]
3737
value: string | number
3838
onItemClick: Function
39-
renderItem: RenderItemType
39+
Item: RenderItemType
4040
}) => JSX.Element
4141

4242
[key: string]: any

src/components/drops/menu/index.js

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,9 @@ import getAncestors from "src/components/drops/mixins/getAncestors"
55
import useForwardRef from "src/hooks/use-forward-ref"
66
import useToggle from "src/hooks/use-toggle"
77
import MenuButton from "./menuButton"
8-
import Dropdown from "./dropdown"
8+
import DefaultDropdown from "./dropdown"
99
import DropdownItem from "./dropdownItem"
1010

11-
const defaultRenderDropdown = props => <Dropdown {...props} />
12-
13-
const defaultRenderItem = props => <DropdownItem {...props} />
14-
1511
const Menu = forwardRef(
1612
(
1713
{
@@ -29,8 +25,8 @@ const Menu = forwardRef(
2925
dropdownProps,
3026
itemProps,
3127
items,
32-
renderItem = defaultRenderItem,
33-
renderDropdown = defaultRenderDropdown,
28+
Item = DropdownItem,
29+
Dropdown = DefaultDropdown,
3430
animation,
3531
hasSearch = false,
3632
...rest
@@ -100,15 +96,16 @@ const Menu = forwardRef(
10096
target={ref.current}
10197
{...dropProps}
10298
>
103-
{renderDropdown({
104-
value,
105-
onItemClick,
106-
items,
107-
itemProps,
108-
renderItem,
109-
hasSearch,
110-
...dropdownProps,
111-
})}
99+
<Dropdown
100+
value={value}
101+
onItemClick={onItemClick}
102+
items={items}
103+
itemProps={itemProps}
104+
Item={Item}
105+
hasSearch={hasSearch}
106+
close={close}
107+
{...dropdownProps}
108+
/>
112109
</Drop>
113110
)}
114111
</Fragment>

src/components/drops/menu/index.stories.js

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,25 +53,20 @@ story.add(
5353
subData
5454
)
5555

56+
const ItemButton = ({ item, onItemClick }) => (
57+
<Button key={item.value} label={item.label} onClick={onItemClick} />
58+
)
5659
story.add(
5760
"Render item",
58-
() => (
59-
<Simple
60-
onOpen={action("open")}
61-
onClose={action("close")}
62-
renderItem={({ item, onItemClick }) => (
63-
<Button key={item.value} label={item.label} onClick={onItemClick} />
64-
)}
65-
/>
66-
),
61+
() => <Simple onOpen={action("open")} onClose={action("close")} Item={ItemButton} />,
6762
subData
6863
)
6964

7065
story.add(
7166
"Render dropdown",
7267
() => (
7368
<Simple
74-
renderDropdown={({ value, onItemClick, items, renderItem }) => (
69+
Dropdown={({ value, onItemClick, items, Item }) => (
7570
<Flex background="mainBackgroundDisabled" padding={[2]}>
7671
Characters are: {items.map(({ value }) => value).join(", ")}
7772
</Flex>

src/components/tableV2/core/fullTable.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const FullTable = ({
2222
width,
2323
scrollParentRef,
2424
virtualizeOptions = {},
25+
...rest
2526
}) => {
2627
return (
2728
<Table
@@ -30,6 +31,7 @@ const FullTable = ({
3031
ref={tableRef}
3132
testPrefix={testPrefix}
3233
width={width}
34+
{...rest}
3335
>
3436
<Table.Head data-testid={`netdata-table-head${testPrefix}`}>
3537
<Table.HeadRow data-testid={`netdata-table-headRow${testPrefix}`}>

src/components/tableV2/features/mainTable.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const MainTable = ({
1616
onHoverRow,
1717
enableResize,
1818
scrollParentRef,
19+
...rest
1920
}) => {
2021
const headers = enableColumnPinning ? table.getCenterFlatHeaders() : table.getFlatHeaders()
2122

@@ -36,6 +37,7 @@ const MainTable = ({
3637
disableClickRow={disableClickRow}
3738
flexRender={flexRender}
3839
tableRef={tableRef}
40+
{...rest}
3941
/>
4042
)
4143
}

src/components/tableV2/netdataTable.js

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import useInfiniteScroll from "./hooks/useInfiniteScroll"
3030
const noop = () => {}
3131

3232
const NetdataTable = ({
33-
bulkActions = {},
33+
bulkActions,
3434
columnPinningOptions = {},
3535
columnVisibility: initialColumnVisibility,
3636
data,
@@ -62,6 +62,7 @@ const NetdataTable = ({
6262
testPrefix = "",
6363
testPrefixCallback,
6464
virtualizeOptions = {},
65+
...rest
6566
}) => {
6667
const [isColumnDropdownVisible, setIsColumnDropdownVisible] = useState(false)
6768
const [columnVisibility, setColumnVisibility] = useState(initialColumnVisibility)
@@ -102,22 +103,25 @@ const NetdataTable = ({
102103

103104
const makeActionsColumn = useMemo(() => makeRowActions({ rowActions, testPrefix }), [rowActions])
104105

105-
const renderBulkActions = () => [
106-
makeBulkActions({
107-
bulkActions,
108-
columnPinning,
109-
columnVisibilityOptions: {
110-
handleAction: () => setIsColumnDropdownVisible(true),
111-
isOpen: isColumnDropdownVisible,
112-
onClose: () => setIsColumnDropdownVisible(false),
113-
visible: enableColumnVisibility,
114-
},
115-
enableColumnPinning,
116-
selectedRows: originalSelectedRows,
117-
table,
118-
testPrefix,
119-
}),
120-
]
106+
const renderBulkActions = () =>
107+
bulkActions
108+
? [
109+
makeBulkActions({
110+
bulkActions,
111+
columnPinning,
112+
columnVisibilityOptions: {
113+
handleAction: () => setIsColumnDropdownVisible(true),
114+
isOpen: isColumnDropdownVisible,
115+
onClose: () => setIsColumnDropdownVisible(false),
116+
visible: enableColumnVisibility,
117+
},
118+
enableColumnPinning,
119+
selectedRows: originalSelectedRows,
120+
table,
121+
testPrefix,
122+
}),
123+
]
124+
: null
121125

122126
const makeSelectionColumn = enableSelection ? [makeRowSelection({ testPrefix })] : []
123127

@@ -220,12 +224,14 @@ const NetdataTable = ({
220224
return (
221225
<SharedTableProvider>
222226
<Flex height="100%" overflow="hidden" width="100%" column>
223-
<GlobalControls
224-
bulkActions={renderBulkActions}
225-
dataGa={dataGa}
226-
handleSearch={onGlobalSearchChange ? handleGlobalSearch : null}
227-
searchValue={globalFilter}
228-
/>
227+
{onGlobalSearchChange || bulkActions ? (
228+
<GlobalControls
229+
bulkActions={renderBulkActions}
230+
dataGa={dataGa}
231+
handleSearch={onGlobalSearchChange ? handleGlobalSearch : null}
232+
searchValue={globalFilter}
233+
/>
234+
) : null}
229235
<Flex
230236
ref={scrollParentRef}
231237
overflow={{ vertical: "auto", horizontal: "auto" }}
@@ -264,6 +270,7 @@ const NetdataTable = ({
264270
flexRender={flexRender}
265271
onHoverRow={onHoverRow}
266272
virtualizeOptions={virtualizeOptions}
273+
{...rest}
267274
/>
268275
</Flex>
269276
{enablePagination && makePagination({ table })}

0 commit comments

Comments
 (0)