Hook principal para acessar e manipular o estado de consentimento de cookies LGPD.
Um objeto contendo o estado completo e as ações de consentimento
Este é o hook mais importante da biblioteca para interagir com o sistema de consentimento. Ele provê acesso completo ao estado atual do consentimento e às funções para modificar esse estado.
consented
: boolean
- Indica se o usuário já deu alguma resposta (aceitar/rejeitar)preferences
: CategoryPreferences
- Objeto com estado de cada categoria de cookieisModalOpen
: boolean
- Indica se o modal de preferências está abertoacceptAll()
: Aceita todas as categorias configuradasrejectAll()
: Rejeita todas as categorias (exceto necessary)setPreference(category, enabled)
: Define uma categoria específicasetPreferences(preferences)
: Define múltiplas categorias de uma vezopenPreferences()
: Abre o modal de preferênciasclosePreferences()
: Fecha o modal de preferênciasresetConsent()
: Limpa all consentimento (volta ao estado inicial)useMemo
interno para evitar re-renders desnecessários{ consented: false }
no servidor para evitar hydration mismatchesConsentScriptLoader
para carregamento condicional de scriptspreferences
pode ser usado para ativar/desativar recursos condicionalmentefunction MyComponent() {
const { consented, preferences, acceptAll, rejectAll } = useConsent();
if (!consented) {
return <p>Aguardando decisão do usuário...</p>;
}
return (
<div>
<p>Analytics: {preferences.analytics ? 'Ativo' : 'Inativo'}</p>
<button onClick={rejectAll}>Rejeitar Todos</button>
</div>
);
}
function AdvancedSettings() {
const { preferences, setPreference } = useConsent();
return (
<div>
<label>
<input
type="checkbox"
checked={preferences.marketing}
onChange={(e) => setPreference('marketing', e.target.checked)}
/>
Cookies de Marketing
</label>
</div>
);
}
function AnalyticsComponent() {
const { consented, preferences } = useConsent();
React.useEffect(() => {
if (consented && preferences.analytics) {
// Inicializar Google Analytics
gtag('config', 'GA_MEASUREMENT_ID');
gtag('event', 'consent_granted', {
ad_storage: preferences.marketing ? 'granted' : 'denied',
analytics_storage: 'granted'
});
}
}, [consented, preferences]);
return null; // Componente só para lógica
}
function BulkPreferencesControl() {
const { setPreferences, preferences, consented } = useConsent();
const handleSavePreferences = () => {
setPreferences({
necessary: true, // Sempre true
analytics: true,
marketing: false,
functional: true,
performance: false
});
};
return (
<button onClick={handleSavePreferences} disabled={!consented}>
Salvar Minhas Preferências
</button>
);
}
function ConsentAwareFeature() {
const { consented, preferences } = useConsent();
const canShowFeature = consented && preferences.functional;
if (!consented) {
return <div>⏳ Aguardando decisão sobre cookies...</div>;
}
if (!preferences.functional) {
return (
<div>
❌ Este recurso requer cookies funcionais.
<button onClick={() => window.openPreferencesModal?.()}>
Alterar Preferências
</button>
</div>
);
}
return <div>✅ Recurso ativo com consentimento!</div>;
}
Hook para acessar e manipular o estado de consentimento do usuário.
Returns
Estado e métodos para consentimento.