react-use-toggle-hook
TypeScript icon, indicating that this package has built-in type declarations

1.0.8 • Public • Published

React useToggle

useToggle is just a useState dedicated for boolean type.

It comes with toggle method as well as direct on / off and open / close

Getting started

yarn add react-use-toggle-hook

Usage

useToggle hook returns

interface UseToggleResponse {
  value: boolean
  toggle: () => void
  on: () => void
  off: () => void
  open: () => void
  close: () => void
  doAndClose: (callback: () => void | Promise<void>) => void
}
import React, { useState, useEffect } from 'react'
import { useToggle } from 'react-use-toggle-hook'

export const CollapsableSection: React.FC = () => {
    const { value, toggle, close } = useToggle();
        
    return (<section className={value ? 'collapse' : 'expand'}>
        <h1 onClick={toggle}>Title</h1>
        <button type="button" onClick={close}>x</button>
        <div className="content">
          <p>Lorem ipsum ..</p>
        </div>
    </section>)
}

Multiple instance at ones

import React, { useState, useEffect } from 'react'
import { useToggle } from 'react-use-toggle-hook'

export const CollapsableSection: React.FC = () => {
    const { value: isDisabled, toggle: toggleDisabled, close: disable } = useToggle();
    const { value: isReadonly, on: setReadonly, off: setWritable } = useToggle();
        
    return (<section>
      <input disabled={isDisabled} readOnly={isReadonly} />
    </section>)
}

Do And Close

This method will call passed callback either its simple function or async function and after its done will set toggle value to false

import React, { useState, useEffect } from 'react'
import { useToggle } from 'react-use-toggle-hook'

export const Modal: React.FC = ({ onClose }) => {
    const { value, doAndClose } = useToggle(false);
    
    const save = useCallback(() => fetch('/my-api/save'), [])
    
    return (<div>
      <button onClick={doAndClose(save)}>Save</button>
    </div>)
}

Readme

Keywords

Package Sidebar

Install

npm i react-use-toggle-hook

Weekly Downloads

36

Version

1.0.8

License

MIT

Unpacked Size

4.49 kB

Total Files

11

Last publish

Collaborators

  • fookoo