UNPKG

@boneframework/native-components

Version:
32 lines (26 loc) 861 B
import {useState} from "react"; export default useApi = (apiFunc) => { const [error, setError] = useState(false); const [headers, setHeaders] = useState([]); const [data, setData] = useState([]); const [loading, setLoading] = useState(false); const request = async (...args) => { setLoading(true); const response = await apiFunc(...args) .then(result => { setError(!result.ok); return result; }, reason => { setError(true); return {headers: [], data: reason}; }) .catch(() => { setError(true); }); setLoading(false); setHeaders(response.headers); setData(response.data); return response; } return {data, error, headers, loading, request} }