UNPKG

mutoid

Version:

Reactive library for data fetching, caching, state management

16 lines (15 loc) 679 B
import { useCallback, useEffect, useRef } from 'react'; import * as MS from '../state'; import { useSubscriptionRef } from './useSubscriptionRef'; export function useMutation(s, mutationL, options) { const [subscriptionRef, subscriptionUnsubscribe] = useSubscriptionRef(); const optionsRef = useRef(options); useEffect(() => { optionsRef.current = options; }, [options]); return useCallback((...payload) => { subscriptionUnsubscribe(); subscriptionRef.current = MS.mutationRunner(s, mutationL, optionsRef.current)(...payload); return subscriptionRef.current; }, [s, mutationL, subscriptionRef, subscriptionUnsubscribe]); }