analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
41 lines (40 loc) • 1.06 kB
JavaScript
// src/hooks/useCep.ts
import { useState, useCallback } from "react";
function useCep() {
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
const fetchCep = useCallback(async (cep) => {
const cleanCep = cep.replace(/\D/g, "");
if (cleanCep.length !== 8) {
setError("CEP deve conter 8 d\xEDgitos");
return null;
}
setLoading(true);
setError(null);
try {
const response = await fetch(
`https://viacep.com.br/ws/${cleanCep}/json/`
);
if (!response.ok) {
throw new Error("Erro ao buscar CEP");
}
const data = await response.json();
if (data.erro) {
setError("CEP n\xE3o encontrado");
return null;
}
return data;
} catch (err) {
console.error("Erro ao buscar CEP:", err);
setError("Erro ao buscar CEP");
return null;
} finally {
setLoading(false);
}
}, []);
return { loading, error, fetchCep };
}
export {
useCep
};
//# sourceMappingURL=chunk-IOOUFKTI.mjs.map