-
-
Notifications
You must be signed in to change notification settings - Fork 5.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFR] List perf improvements #3572
Conversation
@@ -107,7 +126,6 @@ const DatagridRow = ({ | |||
className={classes.expandIconCell} | |||
> | |||
<ExpandRowButton | |||
className={classes.expandButton} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this was causing the expand button to be always shown expanded (recent regression)
resource, | ||
id: String(id), | ||
})} | ||
{isValidElement(expand) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is a temporary API. I'm not sure yet whether we should support components and elements everywhere, we'll see if profiling forces us to do that often.
loaded: data.length !== 0 && !data.includes(undefined), | ||
loading: ids.length !== 0, | ||
loaded: | ||
ids.length === 0 || |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
avoids showing the loader if there is nothing to load
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔥
239e815
to
c87f129
Compare
Various list perf improvements following a profiling sessions.
After an initial render of the datagrid from store, avoids a rerendering of each datagrid row once an unchanged response comes from the dataprovider.
Also, I believe we'll have to support Component injection in some places to avoid forced renders due to the fact that elements are always different.