react-lgpd-consent v0.9.1
    Preparing search index...

    react-lgpd-consent 🍪

    Gerenciamento de consentimento de cookies em conformidade com a LGPD — pacote agregador que re-exporta os componentes MUI por conveniência. Se você precisa só da lógica headless ou de um bundle menor, prefira @react-lgpd-consent/core ou @react-lgpd-consent/mui conforme o seu caso.

    NPM Version Downloads License Coverage


    react-lgpd-consent é o pacote agregador compatível com versões anteriores (v0.4.x → v0.5.x). Ele re-exporta os componentes prontos em MUI e facilita a migração. Para projetos mais otimizados, considere importar diretamente @react-lgpd-consent/core (headless) ou @react-lgpd-consent/mui/ui (apenas UI, sem re-export do core).

    Principais características:

    • Banner de cookies, modal de preferências e botão flutuante prontos (MUI)
    • Carregamento condicional de scripts com base no consentimento
    • SSR-safe (compatível com Next.js / Remix)
    • Eventos auditáveis (consent_initialized, consent_updated)

    Instale o pacote e as peer-dependencies se necessário:

    npm install react-lgpd-consent
    npm install react react-dom @mui/material @emotion/react @emotion/styled js-cookie --save-peer

    Observação: react-lgpd-consent é o agregador (re-exporta @react-lgpd-consent/mui). Para otimizar bundle, importe apenas o pacote que você precisa.


    Exemplo mínimo (mantém compatibilidade com v0.4.x):

    import React from 'react'
    import { ConsentProvider, useConsent } from 'react-lgpd-consent'

    export default function App() {
    return (
    <ConsentProvider categories={{ enabledCategories: ['analytics', 'marketing'] }}>
    <YourApp />
    </ConsentProvider>
    )
    }

    function YourApp() {
    const { preferences, setPreference } = useConsent()

    return (
    <div>
    <button onClick={() => setPreference('marketing', true)}>Aceitar Marketing</button>
    </div>
    )
    }

    Para carregar scripts condicionados ao consentimento:

    import { ConsentScriptLoader, COMMON_INTEGRATIONS } from 'react-lgpd-consent'

    function Analytics() {
    return (
    <ConsentScriptLoader
    integrations={[
    COMMON_INTEGRATIONS.googleAnalytics({ measurementId: 'GA_MEASUREMENT_ID' }),
    ]}
    />
    )
    }

    <ConsentProvider
    onConsentInit={(state) => console.log('Init:', state)}
    onConsentChange={(current, prev) => console.log('Changed:', current)}
    onAuditLog={(entry) => fetch('/api/audit', {
    method: 'POST',
    body: JSON.stringify(entry)
    })}
    >
    import { createAnpdCategoriesConfig } from 'react-lgpd-consent'

    const categories = createAnpdCategoriesConfig({
    include: ['analytics', 'marketing']
    })
    import { createConsentAuditEntry } from 'react-lgpd-consent'

    const audit = createConsentAuditEntry(state, {
    action: 'update',
    consentVersion: '1'
    })

    📖 Documentação completa: API.md | TROUBLESHOOTING.md


    Pacote Descrição
    @react-lgpd-consent/core Lógica headless (sem UI) — recomendado para UI customizada
    @react-lgpd-consent/mui Componentes prontos em MUI
    react-lgpd-consent Agregador (re-exporta MUI) — compatibilidade retroativa


    Leia DEVELOPMENT.md no repositório principal. Fluxo sugerido:

    1. Fork
    2. Branch: git checkout -b feat/minha-feature
    3. Commit: git commit -m "feat: descrição"
    4. Push e abra PR

    Antes de criar PR execute a pipeline local sugerida:

    npm run type-check
    npm test
    npm run lint
    npm run build
    npm run docs:generate

    MIT © Luciano Edipo — veja o arquivo LICENSE.


    If you prefer the English version of the README, consult README.en.md in the same package.