Skip to content

Commit 0df5296

Browse files
Fix inconsistent behaviour in useExpansionToggle (#964)
* Use Object.assign to create a copy of the previous state instead of mutating it directly * Also fixed: if-else nesting
1 parent 7819360 commit 0df5296

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

src/hooks/use-expansion-toggle/use-expansion-toggle.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,16 @@ export default function useExpansionToggle<T extends string>({
4646
},
4747
{} as Record<T, boolean>
4848
);
49+
} else if (prev[item] === true) {
50+
newState = Object.assign({}, prev);
51+
delete newState[item];
4952
} else {
50-
if (prev[item] === true) {
51-
newState = prev;
52-
delete newState[item];
53-
} else {
54-
newState = {
55-
...prev,
56-
[item]: true,
57-
};
58-
}
53+
newState = {
54+
...prev,
55+
[item]: true,
56+
};
5957
}
58+
6059
if (items.every((item) => newState[item])) {
6160
return true;
6261
}

0 commit comments

Comments
 (0)