Skip to content
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

acmtable performance #446

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

acmtable performance #446

wants to merge 1 commit into from

Conversation

jeswanke
Copy link
Contributor

every time the items changed, a new selected object was created:

useLayoutEffect(() => {
    const newSelected: { [uid: string]: boolean } = {}
     :             :             :
    setSelected(newSelected)
}, [items])

which caused the memo used to calculate the rows to re-run:

const { rows, addedSubRowCount } = useMemo<{ rows: IRow[]; addedSubRowCount: number }>(() => {

     :             :             :

}, selected, paged, columns, expanded, openGroups, keyFn])

because react just uses === to determine if the dependency changes and it was always a new object:

so fix is to compare the json of the object:

}, [JSON.stringify(selected), paged, columns, expanded, openGroups, keyFn])

Signed-off-by: John Swanke [email protected]

Signed-off-by: John Swanke <[email protected]>
@jeswanke jeswanke requested a review from jamestalton April 25, 2022 14:42
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Apr 25, 2022

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jeswanke

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jamestalton
Copy link
Contributor

/hold

@jamestalton
Copy link
Contributor

I'd like to see if we can smartly update the selected vs using JSON.stringify

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants