import { DependencyList, useCallback, useEffect } from 'react'; import type { FunctionReturningPromise } from '../types'; import { useAsyncFn } from './useAsyncFn'; export function useAsyncRefresh( fn: T, deps: DependencyList = [] ) { const [state, callback] = useAsyncFn(fn, deps, { loading: true, }); useEffect(() => { callback(); }, [callback]); const refresh = useCallback(() => { return callback(); }, [callback]); return { ...state, refresh, }; }