Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@sushiswap/hooks / src / useFundSourceToggler.ts
Size: Mime:
import { useCallback, useMemo, useState } from 'react'

export enum FundSource {
  WALLET = 'WALLET',
  BENTOBOX = 'BENTOBOX',
}

export const useFundSourceToggler = (initialValue?: FundSource) => {
  const [fundSource, setFundSource] = useState<FundSource | undefined>(initialValue)

  const toggle = useCallback(() => {
    setFundSource((prevState) => (prevState === FundSource.BENTOBOX ? FundSource.WALLET : FundSource.BENTOBOX))
  }, [])

  return useMemo(
    () => ({
      value: fundSource,
      fromWallet: fundSource === FundSource.WALLET,
      fromBentobox: fundSource === FundSource.BENTOBOX,
      toggle,
      setValue: setFundSource,
    }),
    [fundSource, toggle]
  )
}