Skip to content

Commit cef0cc0

Browse files
Fix infinite re-render (#194)
1 parent ea1d0b7 commit cef0cc0

2 files changed

Lines changed: 17 additions & 14 deletions

File tree

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"changes": [
3+
{
4+
"packageName": "@itwin/manage-versions-react",
5+
"comment": "Fix infinite rerender edge case",
6+
"type": "patch"
7+
}
8+
],
9+
"packageName": "@itwin/manage-versions-react"
10+
}

packages/modules/manage-versions/src/components/ManageVersions/ManageVersions.tsx

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -455,26 +455,19 @@ const ManageVersionsComponent = (props: ManageVersionsProps) => {
455455

456456
React.useEffect(() => {
457457
const loadUsers = async () => {
458-
if (!hasMoreUsersRef.current) {
459-
return;
460-
}
461-
458+
hasMoreUsersRef.current = false;
462459
if (!usersRef.current) {
463-
hasMoreUsersRef.current = false;
464460
await getUsers();
465461
} else {
466-
const hasMissingUsers =
467-
versionsTableData?.some((td) => !td.version.createdBy) ||
468-
changesets?.some((cs) => !cs.createdBy);
469-
470-
if (hasMissingUsers) {
471-
hasMoreUsersRef.current = false;
472-
await getUsers(Object.keys(usersRef.current).length);
473-
}
462+
await getUsers(Object.keys(usersRef.current).length);
474463
}
475464
};
476465

477-
if (!usersRef.current || versionsTableData || changesets) {
466+
const hasMissingUsers =
467+
versionsTableData?.some((td) => !td.version.createdBy) ||
468+
changesets?.some((cs) => !cs.createdBy);
469+
470+
if (!usersRef.current || (hasMissingUsers && hasMoreUsersRef.current)) {
478471
loadUsers()
479472
.then(() => {
480473
const updatedVersionsTableData = versionsTableData?.map((td) => {

0 commit comments

Comments
 (0)