src/views/Event/useEventDetail.js (19 lines of code) (raw):

import { useEffect, useState } from "react"; import { getEventDetail } from "../../api/getEventDetail"; export const useEventDetail = (locale, name) => { const [detail, setDetail] = useState({ __html: "", time: "" }); const [loading, setLoading] = useState(false); const handleDetail = async () => { if (loading) return; setLoading(true); const result = await getEventDetail(locale, name); setDetail(result); setLoading(false); }; useEffect(() => { if (locale && name) { handleDetail(); } // eslint-disable-next-line }, []); return { detail, loading }; };