-
-
Notifications
You must be signed in to change notification settings - Fork 9.4k
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
Core: Refactor preview and deprecate story store #24926
Conversation
I'm left with these errors:
|
Update on this PR: because we don't create the story store immediately any more, the This is a breaking change to an undocumented API that is fairly widely used, including by the We could set the global when the store is created but this will likely be just as breaking as folks likely read it immediately in many cases. The path forward here is to create a proxy object for the global that passes function calls through to the store when it's ready as well as advertising deprecation, and properly removing in 9.0. |
Co-authored-by: Yann Braga <[email protected]>
And warn if accessed
9d3e2b1
to
bc1e4cd
Compare
Relates to #24926
Telescoping on #24658
What I did
Got rid of StoryStore initialization -- now we just create it when we have everything we need. The only reason we didn't before was for SSv6.
We can't get rid of the "initialization promise" concept entirely, because we still need to cope with receiving messages (like
setCurrentStory
) while the index is still loading. However, now it is isolated (and private) to the preview classes, leading to a simpler store and less code overall.This breaks
__STORYBOOK_STORY_STORE__
and we will need to remove that API also. In the meantime we've created a proxy object that recreates the old behaviour with a deprecation warning.Checklist for Contributors
Testing
The changes in this PR are covered in the following automated tests:
Manual testing
This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!
Documentation
MIGRATION.MD
Checklist for Maintainers
When this PR is ready for testing, make sure to add
ci:normal
,ci:merged
orci:daily
GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found incode/lib/cli/src/sandbox-templates.ts
Make sure this PR contains one of the labels below:
Available labels
bug
: Internal changes that fixes incorrect behavior.maintenance
: User-facing maintenance tasks.dependencies
: Upgrading (sometimes downgrading) dependencies.build
: Internal-facing build tooling & test updates. Will not show up in release changelog.cleanup
: Minor cleanup style change. Will not show up in release changelog.documentation
: Documentation only changes. Will not show up in release changelog.feature request
: Introducing a new feature.BREAKING CHANGE
: Changes that break compatibility in some way with current major version.other
: Changes that don't fit in the above categories.🦋 Canary release
This PR does not have a canary release associated. You can request a canary release of this pull request by mentioning the
@storybookjs/core
team here.core team members can create a canary release here or locally with
gh workflow run --repo storybookjs/storybook canary-release-pr.yml --field pr=<PR_NUMBER>