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

Manager: Enable refs filtered via experimental_setFilter #24211

Merged
merged 15 commits into from
Nov 24, 2023

Conversation

ndelangen
Copy link
Member

@ndelangen ndelangen commented Sep 18, 2023

Closes https://linear.app/chromaui/issue/AP-3683/possible-to-filter-out-all-stories-with-no-way-to-disable

What I did

I've experimented with keeping the originally passed index/data from refs around in state, so that calling setRef with the previous data will cause it to re-run the filters

Checklist for Contributors

Testing

The changes in this PR are covered in the following automated tests:

  • stories
  • unit tests
  • integration tests
  • end-to-end tests

Manual testing

I ran the following manual test:

Add this to .storybook/main.ts:

  refs: {
    '@manager': {
      title: 'Angular',
      url: 'https://6322ce6af69825592bbb28fc-ltmgncxxqv.chromatic.com',
    },
  },

Then make a UI change.

Add the '@chromaui/addon-visual-tests'-addon.

Now make a UI change.

Now run a build.

And click on the filter button in the bottom left.

Documentation

  • Add or update documentation reflecting your changes
  • If you are deprecating/removing a feature, make sure to update
    MIGRATION.MD

Checklist for Maintainers

  • When this PR is ready for testing, make sure to add ci:normal, ci:merged or ci:daily GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found in code/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>

@ndelangen ndelangen self-assigned this Sep 18, 2023
@ndelangen ndelangen added bug patch:yes Bugfix & documentation PR that need to be picked to main branch ci:normal labels Sep 18, 2023
@ndelangen ndelangen changed the title experiment with enabling refs to be filtered by experimental_filter functions ManagerAPI: Enable refs filtered via experimental_setFilter Sep 18, 2023
@ndelangen ndelangen changed the title ManagerAPI: Enable refs filtered via experimental_setFilter Manager API: Enable refs filtered via experimental_setFilter Sep 19, 2023
@ndelangen ndelangen requested a review from tmeasday September 19, 2023 07:06
@ndelangen ndelangen changed the title Manager API: Enable refs filtered via experimental_setFilter Manager: Enable refs filtered via experimental_setFilter Sep 19, 2023
@storybookjs storybookjs deleted a comment from github-actions bot Sep 20, 2023
@ndelangen ndelangen changed the title Manager: Enable refs filtered via experimental_setFilter Manager: Enable refs filtered via experimental_setFilter Sep 20, 2023
@ndelangen ndelangen requested a review from tmeasday September 20, 2023 14:39
Copy link
Member

@tmeasday tmeasday left a comment

Choose a reason for hiding this comment

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

What does the whole sidebar look like when a ref is filtered away? Is it possible to get a story for this state?

code/lib/manager-api/src/tests/refs.test.ts Show resolved Hide resolved
@tmeasday
Copy link
Member

@ndelangen thanks for adding those.

Perhaps add a story where the main SB is filtered, but still has data, but the ref is empty. That is the likely scenario with the VT addon right? Do we really want to show "this ref is empty, bla bla" in that case? Should we check with @cdedreuille or @MichaelArestad about that?

@ndelangen
Copy link
Member Author

@tmeasday On the sidebar's component there is no filtering, there's only a pre-filtered index.
Either the index has items, or it does not.
Sure I can create a story that combines a main index, with items with an ref whom's index is empty..

I know it doesn't display quite like @MichaelArestad would want it to display, I don't think empty refs were ever designed, in fact I doubt empty main's were ever given a design eye.

It's a bit of a balancing act on how much risky changes we want to make on storybook's side, because do we want to make such changes in a patch version 🤔
As I eluded to here: #24211 (comment) I feel this PR is possibly making a bit too many changes for a patch release.

I was hoping to get this reviewed and merged in the patch release of yesterday.

@MichaelArestad
Copy link
Contributor

We do have a couple empty state designs to draw inspiration from:

image image

And maybe this one:

image

Seeing a story of this state would help me out.

@ndelangen ndelangen removed the patch:yes Bugfix & documentation PR that need to be picked to main branch label Nov 24, 2023
@ndelangen ndelangen changed the base branch from next to release-8-0 November 24, 2023 10:10
@ndelangen ndelangen merged commit f8a2b33 into release-8-0 Nov 24, 2023
@ndelangen ndelangen deleted the norbert/filterable-refs branch November 24, 2023 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants