tinovisas/frontend/src/hooks/useCountries.ts

27 lines
716 B
TypeScript

"use client";
import { useState, useEffect, useCallback } from "react";
import { countryAPI } from "../lib/api";
export function useCountries(activeOnly = false) {
const [countries, setCountries] = useState<any[]>([]);
const [loading, setLoading] = useState(true);
const fetch = useCallback(async () => {
setLoading(true);
try {
const { data } = await countryAPI.getAll(activeOnly ? { active: "true" } : {});
setCountries(data.data || []);
} catch (error) {
console.error("Failed to fetch countries:", error);
} finally {
setLoading(false);
}
}, [activeOnly]);
useEffect(() => {
fetch();
}, [fetch]);
return { countries, loading, refetch: fetch };
}