UNPKG

fumadocs-openapi

Version:

Generate MDX docs for your OpenAPI spec

30 lines (29 loc) 829 B
import { useMemo, useRef, useState } from 'react'; export function useQuery(fn) { const [loading, setLoading] = useState(false); const [data, setData] = useState(); const [error, setError] = useState(); const fnRef = useRef(fn); fnRef.current = fn; return useMemo(() => ({ isLoading: loading, data, error, start(...input) { setLoading(true); void fnRef .current(...input) .then((res) => { setData(res); setError(undefined); }) .catch((err) => { setData(undefined); setError(err); }) .finally(() => { setLoading(false); }); }, }), [error, data, loading]); }