import { useState, useEffect, useCallback } from "react"; import axios from "axios"; interface Network { id?: number; name: string; ipv4Subnet?: string; ipv6Subnet?: string; gateway?: string; } interface Site { id: number; name: string; description: string; networks: Network[]; } const useSite = () => { const [site, setSite] = useState({ id: 0, name: "", description: "", networks: [] }); const [siteId, setSiteId] = useState(""); const loadSite = useCallback(() => { if (!siteId) return; axios.get('/api/sites/get', { params: { siteId } }).then((response) => { setSite(response.data.site); }); }, [siteId]); useEffect(() => { loadSite(); }, [loadSite]); return { site, loadSite, setSiteId, }; }; export default useSite;