mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-31 21:21:03 -04:00
18 lines
384 B
TypeScript
18 lines
384 B
TypeScript
|
import * as React from 'react'
|
||
|
import useIsMounted from './use-is-mounted'
|
||
|
|
||
|
function useSafeDispatch<T>(dispatch: React.Dispatch<T>) {
|
||
|
const mounted = useIsMounted()
|
||
|
|
||
|
return React.useCallback<(args: T) => void>(
|
||
|
action => {
|
||
|
if (mounted.current) {
|
||
|
dispatch(action)
|
||
|
}
|
||
|
},
|
||
|
[dispatch, mounted]
|
||
|
) as React.Dispatch<T>
|
||
|
}
|
||
|
|
||
|
export default useSafeDispatch
|