Skip to content

Commit c12415c

Browse files
authored
Virtualize download/upload object list (#2889)
1 parent 1f481e6 commit c12415c

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

portal-ui/src/screens/Console/Common/ObjectManager/ObjectManager.tsx

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import {
2828
deleteFromList,
2929
} from "../../ObjectBrowser/objectBrowserSlice";
3030
import clsx from "clsx";
31+
import VirtualizedList from "../VirtualizedList/VirtualizedList";
3132

3233
const styles = (theme: Theme) =>
3334
createStyles({
@@ -66,6 +67,7 @@ const styles = (theme: Theme) =>
6667
overflowX: "hidden",
6768
minHeight: 250,
6869
maxHeight: 335,
70+
height: "100%",
6971
width: "100%",
7072
display: "flex",
7173
flexDirection: "column",
@@ -98,6 +100,16 @@ const ObjectManager = ({ classes }: IObjectManager) => {
98100
const anonymousMode = useSelector(
99101
(state: AppState) => state.system.anonymousMode
100102
);
103+
104+
function renderObject(index: number) {
105+
return (
106+
<ObjectHandled
107+
objectToDisplay={objects[index]}
108+
deleteFromList={(instanceID) => dispatch(deleteFromList(instanceID))}
109+
/>
110+
);
111+
}
112+
101113
return (
102114
<Fragment>
103115
{managerOpen && (
@@ -123,15 +135,11 @@ const ObjectManager = ({ classes }: IObjectManager) => {
123135
</div>
124136
<div className={classes.title}>Downloads / Uploads</div>
125137
<div className={classes.actionsContainer}>
126-
{objects.map((object, key) => (
127-
<ObjectHandled
128-
objectToDisplay={object}
129-
key={`object-handled-${object.instanceID}`}
130-
deleteFromList={(instanceID) =>
131-
dispatch(deleteFromList(instanceID))
132-
}
133-
/>
134-
))}
138+
<VirtualizedList
139+
rowRenderFunction={renderObject}
140+
totalItems={objects.length}
141+
defaultHeight={110}
142+
/>
135143
</div>
136144
</Box>
137145
)}

0 commit comments

Comments
 (0)