Something went wrong. Try again.
Bluesky app fork with some witchin' additions 💫 forked from jollywhoppers.com/witchsky.app
Something went wrong. Try again.
548 B · 27 lines
TypeScript
at main
12345678910111213141516171819202122232425262728import {useCallback, useRef} from 'react'
type Cb = () => void
export function callOnce() { let ran = false return function runCallbackOnce(cb: Cb) { if (ran) return ran = true cb() }}
export function useCallOnce(cb: Cb): () => voidexport function useCallOnce(cb?: undefined): (cb: Cb) => voidexport function useCallOnce(cb?: Cb) { const ran = useRef(false) return useCallback( (icb: Cb) => { if (ran.current) return ran.current = true if (icb) icb() else if (cb) cb() }, [cb], )}