react-tabbordion v2.0.0-beta.0 Release Notes

Release Date: 2020-08-30 // over 3 years ago
  • A beta for v2!

    ๐Ÿ—„ Rewrite to use modern React class syntax and Context API thus removing use of deprecated React APIs and legacy browser support. Compatible with v1, but your code may break if it has relied on undocumented edge cases or internal behavior.

    โž• Added

    • useTabbordion hook as an alternate option for creating your own components
    • ๐Ÿ‘ Tabbordion.resetSSR() for server side render support when not using external unique ID generator
    • <Tabbordion />, <TabPanel />, <TabLabel />, <TabContent />: forwardedRef can be used to get reference to the actual DOM element
    • <Tabbordion />: onChange now receives future panels (only a suggestion if in controlled state)
    • โšก๏ธ updatePanelsByToggle() is exposed

    ๐Ÿ”„ Changed

    • <Tabbordion />: onChange is no longer required for controlled state
    • <Tabbordion />: onChange will now trigger in uncontrolled state
    • 0๏ธโƒฃ <TabLabel />: onClick prop will now do the default behavior, use event.preventDefault() to prevent it
    • bemClassName() now ignores blockElements and modifiers that are not strings
    • Components no longer need to be direct children of their parent component
    • null and undefined are no longer considered equal in state equality checks
    • ๐Ÿ‘‰ Use Microbundle for bundling (had custom Webpack setup)
    • โœ… Use RITEway for tests (had react-test-renderer, Mocha, Sinon, Enzyme, Chai)
    • โœ… Use Sucrase for faster tests/development (had Babel)
    • ๐Ÿ‘‰ Use [fast-deep-equal](https://github.com/epoberezkin/fast-deep-equal) over custom implementation
    • ๐Ÿ‘‰ Use ResizeObserver over unnecessarily backwards compatible legacy DOM tricks

    ๐Ÿ›  Fixed

    • component props use PropTypes.elementType as they should
    • <TabPanel />: prefer given prop for disabled and visible over state from context
    • <TabLabel />: has now ID and <TabPanel /> refers to it via aria-labelledby instead of the input element