I found the issue with alike code I added as a test where while we used single global state we get different values in different components setting state as a ref.
So there is a tiny time period when we already initialised both states with default state values (undefined), then added one setter, call global setter (with all setters added) and only then added another setter, forever remembering the initial state for that particular instance of global state.
So I added additional state update to the place we adding the setter to update it with actual global state.
Type of change
[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change(fix or feature that would cause existing functionality to not work as before)
Description
I found the issue with alike code I added as a test where while we used single global state we get different values in different components setting state as a ref. So there is a tiny time period when we already initialised both states with default state values (undefined), then added one setter, call global setter (with all setters added) and only then added another setter, forever remembering the initial state for that particular instance of global state. So I added additional state update to the place we adding the setter to update it with actual global state.
Type of change
Checklist
yarn test
)yarn lint
). Fix it withyarn lint:fix
in case of failure.yarn lint:types
).