Skip to content

Releases: Merri/react-tabbordion

v2.0.0-beta.2

20 Sep 11:29
Compare
Choose a tag to compare
v2.0.0-beta.2 Pre-release
Pre-release

Added

  • React Testing Library and JSDOM
  • Lots of tests
  • useTabbordion: boolean hydrate option to allow App level control of hydrated state

Removed

  • Enzyme
  • useTabbordion: focusClick option, use CSS focus-visible instead

Fixed

  • <TabPanel />: no longer render hasContent into DOM

v2.0.0-beta.1

31 Aug 08:16
Compare
Choose a tag to compare
v2.0.0-beta.1 Pre-release
Pre-release
  • Publish with beta tag in npm

v1.0.6

31 Aug 08:13
Compare
Choose a tag to compare

This is a release to fix mistake in releasing beta with latest tag in npm.

  • Update dependencies
  • Update README to reflect upcoming v2
  • Release new version of v1 to fix missing beta tag in first v2 beta release

v2.0.0-beta.0b

30 Aug 17:10
Compare
Choose a tag to compare
v2.0.0-beta.0b Pre-release
Pre-release

This is an attempt to force GitHub Actions use the latest commit.

v2.0.0-beta.0

30 Aug 17:08
Compare
Choose a tag to compare
v2.0.0-beta.0 Pre-release
Pre-release

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
  • <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

v1.0.4

02 Feb 13:19
Compare
Choose a tag to compare
  • Add support for React.Fragment
  • Update React to 16.2
  • Update test tools

v1.0.3

01 Feb 17:31
Compare
Choose a tag to compare

Re-release 1.0.2 but with updated npm dependencies.

v1.0.2

02 Aug 12:07
Compare
Choose a tag to compare
  • Fix animateContent being rendered to element rendered by Tabbordion
  • Fix onPanels not being triggered when in stateful mode

v1.0.1

02 Aug 10:55
Compare
Choose a tag to compare
  • Fix crash if a Tabbordion child does not have type.

v1.0.0

02 Aug 10:35
Compare
Choose a tag to compare
  • You can now make Tabbordion stateless, thus place the state where you want!
  • Full state control: Tabbordion makes sure the state is correct for given mode.
  • Viewport resize support: when using animateContent elements are now updated when window is resized.
  • bemClassName is now exposed.
  • Performance optimizations for minimal renders. All Tabbordion components now extend PureComponent.
  • Expose bemClassName method
  • Remove support for extending BEM separator prefixed classes in className

<Tabbordion />

  • Allow controlling state via panels and onPanels
  • Force state to be correct for the selected mode
  • Optimize performance by minimal renders

Removes

  • contentTag and panelTag
  • initialIndex in favor of initialPanels
  • onAfterChange in favor of new state providing onPanels
  • onBeforeChange

Renames

  • classModifiers as bemModifiers
  • classNames as blockModifiers
  • classSeparator as bemSeparator
  • tag as component
  • Modifiers visibleBetween, visibleFirst and visibleLast renamed as between, first and last respectively

<Panel />

  • Separated to three new components: <TabPanel />, <TabLabel /> and <TabContent />
  • title is now TabLabel as a child of TabPanel
  • Other children needs to be wrapped as children of TabContent
  • TabPanel no longer "inherits" nothing; the way props work has changed dramatically
  • TabContent detects viewport resizes and transitions quickly accordingly

Known issues

  • TabPanels must be direct children of Tabbordion
  • TabLabels and TabContents must be direct children of TabPanel