20 lines
446 B
TypeScript
20 lines
446 B
TypeScript
import { useLayoutEffect } from 'react'
|
|
import fetchMock from 'fetch-mock'
|
|
|
|
/**
|
|
* Run callback to mock fetch routes, call removeRoutes() and unmockGlobal() when unmounted
|
|
*/
|
|
export default function useFetchMock(
|
|
callback: (value: typeof fetchMock) => void
|
|
) {
|
|
fetchMock.mockGlobal()
|
|
|
|
useLayoutEffect(() => {
|
|
callback(fetchMock)
|
|
return () => {
|
|
fetchMock.removeRoutes()
|
|
fetchMock.unmockGlobal()
|
|
}
|
|
}, [callback])
|
|
}
|