import { DependencyList, useLayoutEffect, useRef } from 'react' /** * A custom useEffect hook that only triggers on updates, not on initial mount * Idea stolen from: https://stackoverflow.com/a/55075818/1526448 * @param {()=>void} effect the function to call * @param {DependencyList} dependencies the state(s) that fires the update */ export function useUpdateLayoutEffect( effect: () => void, dependencies: DependencyList = [], ) { const isInitialMount = useRef(true) useLayoutEffect(() => { if (isInitialMount.current) { isInitialMount.current = false } else { effect() } }, dependencies) }