Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 4x 4x 9x 4x 4x | import { useCallback } from "react"; import { SubscriptionManager, useSubscription } from "../useSubscription"; import { usePollingIf } from "./usePollingIf"; /** * This is a conditional polling hook that allows a subscription that gets called when the poll completes. * */ export function useNotifiedPollingIf<T = unknown>( predicate: () => boolean | PromiseLike<boolean>, asyncFunction: () => T | PromiseLike<T>, intervalMs = 60000, immediate = true ): SubscriptionManager<T> { const { subscribe, notify, useSubscribeEffect } = useSubscription<T>(); const notifyingAsyncFunction = useCallback(async () => { notify(await asyncFunction()); }, [notify, asyncFunction]); usePollingIf(predicate, notifyingAsyncFunction, { intervalMs, immediate }); return { subscribe, notify, useSubscribeEffect }; } |