stories/Transition.js (57 lines of code) (raw):

import React, { useState } from 'react'; import { storiesOf } from '@storybook/react'; import StoryFixture from './StoryFixture'; import { Fade, Collapse, FadeForwardRef, FadeInnerRef, } from './transitions/Bootstrap'; function ToggleFixture({ defaultIn, description, children }) { const [show, setShow] = useState(defaultIn); return ( <StoryFixture description={description}> <div style={{ marginBottom: 10 }}> <button onClick={() => { setShow(!show); }} > Toggle </button> </div> {React.cloneElement(children, { in: show })} </StoryFixture> ); } storiesOf('Transition', module) .add('Bootstrap Fade', () => ( <ToggleFixture> <Fade>asaghasg asgasg</Fade> </ToggleFixture> )) .add('Bootstrap Collapse', () => ( <ToggleFixture> <Collapse> asaghasg asgasg <div>foo</div> <div>bar</div> </Collapse> </ToggleFixture> )) .add('Fade using React.forwardRef', () => { const nodeRef = React.createRef(); return ( <ToggleFixture> <FadeForwardRef ref={nodeRef}> Fade using React.forwardRef </FadeForwardRef> </ToggleFixture> ); }) .add('Fade using innerRef', () => { const nodeRef = React.createRef(); return ( <ToggleFixture> <FadeInnerRef innerRef={nodeRef}>Fade using innerRef</FadeInnerRef> </ToggleFixture> ); });