JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 9778
  • Score
    100M100P100Q128086F
  • License MIT

An extreme light-weight react transition animation hook which is simpler and easier to use than react-transition-group

Package Exports

  • transition-hook
  • transition-hook/dist/cjs/index.js
  • transition-hook/dist/esm/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (transition-hook) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

โ˜„๏ธ transition-hook

๐Ÿงช Run Tests ๐Ÿš€ Release The Package transition hook

An extreme light-weight(0.4kb) react transition animation hook which is simpler and easier to use than react-transition-group


example
See Example | See Example in Codesandbox


Installation

Install with yarn

yarn add transition-hook

Or install with npm

npm install transition-hook --save

Usage

useTransition

This hook transform a boolean state into transition stage('from' | 'enter' | 'leave'), and unmount the component after timeout.

const [onOff, setOnOff] = useState(true)
const {stage, shouldMount} = useTransition(onOff, 300) // (state, timeout)

return <div>
  <button onClick={()=>setOnOff(!onOff)}>toggle</button>
  {shouldMount && (
    <p style={{
      transition: '.3s',
      opacity: stage === 'enter' ? 1 : 0
    }}>
      Hey guys, I'm fading
    </p>
  )}
</div>

Transition

If you prefer FaCC pattern usage, there it is!

const [onOff, setOnOff] = useState(true)

return <div>
  <button onClick={()=>setOnOff(!onOff)}>toggle</button>
  <Transition state={onOff} timeout={300}>
    {(stage, shouldMount)=>shouldMount &&(
      <p style={{
        transition: '.3s',
        opacity: stage === 'enter' ? 1 : 0
      }}>
        Hey guys, I'm fading
      </p>
    )}
  </Transition>
</div>

API Reference

useTransition(state, timeout)

  const {stage, shouldMount} = useTransition(onOff, 300)
Parameters Type Description
state boolean Required. Your boolean state, which controls animation in and out
timeout number Required. How long before the animation ends and unmounts

Returns Type Description
stage Stage: from | enter | leave Use three different stage to perform your animation
shouldMount boolean Whether the component should be mounted

Transition

  <Transition state={onOff} timeout={300}>
    {(stage, shouldMount) => shouldMount && <div style={...}>hello</div>}
  </Transition>
Props Type Description
state boolean Required. Your boolean state, which controls animation in and out
timeout number Required. How long before the animation ends and unmounts
children (stage: Stage, shouldMount: boolean)=>React.ReactNode Required. FaCC pattern.

License

MIT