useCookie

Simple hook to manage browser cookies.

🍪

Cookie Manager

Current Value
No cookie found

Usage

import { useCookie } from 'usehooks-ts'
 
export default function Component() {
  const [value, updateCookie, deleteCookie] = useCookie('token')
 
  const login = () => {
    updateCookie('123456')
  }
 
  const logout = () => {
    deleteCookie()
  }
 
  return (
    <div>
      <p>Value: {value}</p>
      <button onClick={login}>Login</button>
      <button onClick={logout}>Logout</button>
    </div>
  )
}

API

const [value, updateCookie, deleteCookie] = useCookie(name, defaultValue?)

Parameters

NameTypeDefaultDescription
namestring-The name of the cookie key
defaultValuestring''Default value if cookie doesn't exist

Return Values

NameTypeDescription
valuestring | undefinedCurrent cookie value
updateCookie(newValue: string, options?: CookieAttributes) => voidFunction to set the cookie value
deleteCookie() => voidFunction to remove the cookie

Hook

import { useState, useCallback } from 'react'
import Cookies from 'js-cookie'
 
export function useCookie(
  name: string,
  defaultValue: string = '',
) {
  const [value, setValue] = useState<string | undefined>(() => {
    const cookie = Cookies.get(name)
    if (cookie) return cookie
    Cookies.set(name, defaultValue)
    return defaultValue
  })
 
  const updateCookie = useCallback(
    (newValue: string, options?: Cookies.CookieAttributes) => {
      Cookies.set(name, newValue, options)
      setValue(newValue)
    },
    [name],
  )
 
  const deleteCookie = useCallback(() => {
    Cookies.remove(name)
    setValue(undefined)
  }, [name])
 
  return [value, updateCookie, deleteCookie] as const
}