import { useState } from 'react' export default (apiFunc) => { const [data, setData] = useState(null) const [error, setError] = useState(null) const [loading, setLoading] = useState(false) const request = async (...args) => { setLoading(true) try { const result = await apiFunc(...args) setData(result.data) } catch (err) { setError(err || 'Unexpected Error!') } finally { setLoading(false) } } return { data, error, loading, request } }