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

fix case where we set SCU multiple times #3670

Merged
merged 3 commits into from Aug 15, 2022
Merged

Conversation

JoviDeCroock
Copy link
Member

@JoviDeCroock JoviDeCroock commented Aug 15, 2022

Fixes #3669

We were setting hookState._component.__hooks._hasScuFromHooks = true; rather than hookState._component._hasScuFromHooks which becomes problematic as we start setting as many SCU's as there are stateful hooks in a component.

On the bright side found a golfing opportunity

@coveralls
Copy link

coveralls commented Aug 15, 2022

Coverage Status

Coverage remained the same at 99.29% when pulling 8d7bada on fix-double-scu into b9f6446 on master.

@github-actions
Copy link

github-actions bot commented Aug 15, 2022

Size Change: -5 B (0%)

Total Size: 43.9 kB

Filename Size Change
hooks/dist/hooks.js 1.38 kB -2 B (0%)
hooks/dist/hooks.module.js 1.4 kB -1 B
hooks/dist/hooks.umd.js 1.47 kB -2 B (0%)
ℹ️ View Unchanged
Filename Size Change
compat/dist/compat.js 3.72 kB 0 B
compat/dist/compat.module.js 3.7 kB 0 B
compat/dist/compat.umd.js 3.78 kB 0 B
debug/dist/debug.js 3 kB 0 B
debug/dist/debug.module.js 3 kB 0 B
debug/dist/debug.umd.js 3.08 kB 0 B
devtools/dist/devtools.js 230 B 0 B
devtools/dist/devtools.module.js 239 B 0 B
devtools/dist/devtools.umd.js 306 B 0 B
dist/preact.js 4 kB 0 B
dist/preact.min.js 4.03 kB 0 B
dist/preact.module.js 4.02 kB 0 B
dist/preact.umd.js 4.06 kB 0 B
jsx-runtime/dist/jsxRuntime.js 317 B 0 B
jsx-runtime/dist/jsxRuntime.module.js 327 B 0 B
jsx-runtime/dist/jsxRuntime.umd.js 395 B 0 B
test-utils/dist/testUtils.js 444 B 0 B
test-utils/dist/testUtils.module.js 444 B 0 B
test-utils/dist/testUtils.umd.js 521 B 0 B

compressed-size-action

Copy link
Member

@marvinhagemeister marvinhagemeister left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch 👍

Copy link
Member

@robertknight robertknight left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code change looks straightforward. I confirm this fixes the test failures encountered in our app when going from Preact 10.10.0 => 10.10.1: hypothesis/lms#4335.

@@ -234,6 +234,31 @@ describe('useState', () => {
expect(scratch.textContent).to.equal('hi');
});

it('correctly updates with multiple state updates', () => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd suggest to add a comment mentioning the original issue, since the sequence of updates needed to trigger the problem is quite specific, rather than this being just a general test for multiple states in one component.

@JoviDeCroock JoviDeCroock merged commit c9ad4f3 into master Aug 15, 2022
@JoviDeCroock JoviDeCroock deleted the fix-double-scu branch August 15, 2022 16:00
@JoviDeCroock JoviDeCroock mentioned this pull request Aug 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Component not re-rendered after sequence of state updates which leave some states unchanged
4 participants