4
0
forked from crowetic/commerce
commerce/lib/commerce/utils/use-action.tsx
2020-10-22 17:29:01 -05:00

16 lines
402 B
TypeScript

import { useCallback } from 'react'
import type { HookFetcher, HookFetcherOptions } from './types'
import { useCommerce } from '..'
export default function useAction<T, Input = null>(
options: HookFetcherOptions,
fetcher: HookFetcher<T, Input>
) {
const { fetcherRef } = useCommerce()
return useCallback(
(input: Input) => fetcher(options, input, fetcherRef.current),
[fetcher]
)
}