UNPKG

@leancodepl/utils

Version:

Common utility functions and React hooks for web applications

31 lines (30 loc) 1.07 kB
type AnyFunction = (...args: any[]) => any; /** * React hook for bound task execution with loading state. * Creates a wrapped version of a function that automatically tracks loading state. * * @template T - The type of the function being wrapped * @param block - The function to wrap with task tracking * @returns A tuple containing [isLoading: boolean, wrappedFunction: T] * @example * ```typescript * function UserProfile({ userId }: { userId: string }) { * const [user, setUser] = useState<User | null>(null); * * const [isLoading, loadUser] = useBoundRunInTask(async () => { * const userData = await fetchUser(userId); * setUser(userData); * }); * * useEffect(() => { * loadUser(); * }, [userId, loadUser]); * * if (isLoading) return <div>Loading...</div>; * return <div>{user?.name}</div>; * } * ``` */ export declare function useBoundRunInTask<T extends AnyFunction>(block: T): [boolean, T]; export declare function useBoundRunInTask<T extends AnyFunction>(block: T | undefined): [boolean, T | undefined]; export {};