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: prevent PanelStack2 from opening in the wrong direction #6847

Merged

Conversation

stropitek
Copy link
Contributor

Fixes #6723

As additional context that was not described in the original issue, I realized that the problem only exists when using react 18, not with react 16.

I did an example of the issue in an application running with react 18 in stackblitz, one without the fix, the other with the fix. By testing the example as described in #6723, you can verify the fix.

Before the fix: https://stackblitz.com/edit/vitejs-vite-4d5jhz
After the fix: https://stackblitz.com/edit/vitejs-vite-txizds

Checklist

  • Includes tests
  • Update documentation

Changes proposed in this pull request:

The changes removes one of the state that can be derived from other values directly, preventing unnecessary re-renders.

Reviewers should focus on:

Making sure the change does not break any existing behaviour.

@palantirtech
Copy link
Member

Thanks for your interest in palantir/blueprint, @stropitek! Before we can accept your pull request, you need to sign our contributor license agreement - just visit https://cla.palantir.com/ and follow the instructions. Once you sign, I'll automatically update this pull request.

evansjohnson
evansjohnson previously approved these changes Jun 22, 2024
Copy link
Contributor

@evansjohnson evansjohnson left a comment

Choose a reason for hiding this comment

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

Thank you for the fix! Agreed regarding deriving from props/previous props rather than stored as separate state.

Feel free to merge as is and I can open a cleanup PR since my comments aren't needed for the fix, otherwise I can re-approve if you push changes.

packages/core/src/components/panel-stack2/panelStack2.tsx Outdated Show resolved Hide resolved
packages/core/src/components/panel-stack2/panelStack2.tsx Outdated Show resolved Hide resolved
@policy-bot policy-bot bot dismissed evansjohnson’s stale review June 25, 2024 15:06

Invalidated by push of 0b4d5cb

@stropitek stropitek force-pushed the dk/panstack2-open-close-animation branch from 0b4d5cb to cbf3061 Compare June 25, 2024 15:08
@stropitek
Copy link
Contributor Author

Thank you for the review @evansjohnson!

I updated the PR based on it.

Copy link
Contributor

@evansjohnson evansjohnson left a comment

Choose a reason for hiding this comment

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

LGTM

}
stackLength.current = stack.length;
}, [stack]);
const prevStackLength = usePrevious(stack.length) ?? stack.length;
Copy link
Contributor

Choose a reason for hiding this comment

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

leaving comment for posterity - technically stack.length is not the previous stack length, but it lets us not worry about handling the undefined case, and there is no animation on the initial render anyways

@evansjohnson evansjohnson self-assigned this Jun 26, 2024
@evansjohnson evansjohnson merged commit 605d318 into palantir:develop Jun 26, 2024
12 of 14 checks passed
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.

PanelStack2's animation when opening a new panel happens in the wrong direction
3 participants