Skip to content

Instantly share code, notes, and snippets.

@jhavenz
Created April 3, 2023 04:02
Show Gist options
  • Save jhavenz/9c37fb71dc1b5e683d0c34819898ecbe to your computer and use it in GitHub Desktop.
Save jhavenz/9c37fb71dc1b5e683d0c34819898ecbe to your computer and use it in GitHub Desktop.
useToggle React Hook
import React, { useState } from 'react'
export default function useToggle(defaultValue = false) {
const [value, setValue] = useState(defaultValue)
function toggleValue(value) {
setValue((currentValue) =>
typeof value === 'boolean' ? value : !currentValue
)
}
return [value, toggleValue]
}
import useToggle from '@/hooks/useToggle/useToggle'
import React from 'react'
export default function UseToggleExampleComponent() {
const [value, toggleValue] = useToggle(false)
return (
<div>
<div>{value.toString()}</div>
<button onClick={toggleValue}>Toggle</button>
<button onClick={() => toggleValue(true)}>Set to true</button>
<button onClick={() => toggleValue(false)}>Set to false</button>
</div>
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment