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

    Function ConsentProvider

    • Provider de consentimento com componentes Material-UI integrados ("batteries included").

      Parameters

      Returns Element

      Elemento React contendo o provider de contexto e componentes UI integrados

      Components

      0.5.0

      Este componente é um wrapper sobre o ConsentProvider do core que automaticamente injeta PreferencesModal, CookieBanner e FloatingPreferencesButton com estilos MUI, tornando o setup extremamente simples e rápido.

      • Injeção Automática: Renderiza modal, banner e botão flutuante sem configuração
      • Tema Material-UI: Aceita theme prop para customização de cores e tipografia
      • Override Flexível: Permite substituir componentes padrão via props *Component
      • Desabilitar Seletivo: Props disable* para controle granular de UI
      • SSR-Safe: Compatível com NextJS e outros frameworks SSR
      • Tree-shakeable: Apenas o que você usa é incluído no bundle
      Recurso MUI Provider Core Provider
      Modal padrão ✅ Automático ❌ Manual
      Banner padrão ✅ Automático ❌ Manual
      Botão flutuante ✅ Automático ❌ Manual
      Suporte a tema MUI ✅ Sim ❌ Não
      Tamanho bundle ~104KB ~86KB
      Headless Via disable* ✅ Nativo
      • ✅ Você está usando Material-UI no projeto
      • ✅ Quer começar rápido sem configurar UI
      • ✅ Prefere defaults sensatos com possibilidade de override
      • ✅ Precisa de acessibilidade pronta (ARIA labels, keyboard nav)
      • ❌ Você quer controle total sobre a UI
      • ❌ Está usando outra biblioteca (Chakra, Ant Design, Tailwind)
      • ❌ Precisa de bundle mínimo (~18KB a menos)
      • ❌ Quer implementação 100% headless
      ConsentProviderCore
      └─ ThemeProvider (se theme fornecido)
      ├─ children (sua aplicação)
      ├─ CookieBanner (se não desabilitado e sem consentimento)
      ├─ PreferencesModal (se não desabilitado e preferências abertas)
      └─ FloatingPreferencesButton (se não desabilitado)

      Se categories.enabledCategories não for fornecido (validação do core)

      import { ConsentProvider } from '@react-lgpd-consent/mui'

      function App() {
      return (
      <ConsentProvider
      categories={{
      enabledCategories: ['analytics', 'marketing']
      }}
      >
      <YourApp />
      </ConsentProvider>
      )
      }
      import { createTheme } from '@mui/material/styles'
      import { ConsentProvider } from '@react-lgpd-consent/mui'

      const theme = createTheme({
      palette: {
      primary: { main: '#2e7d32' },
      background: { paper: '#fafafa' }
      }
      })

      function App() {
      return (
      <ConsentProvider
      theme={theme}
      categories={{ enabledCategories: ['analytics'] }}
      >
      <YourApp />
      </ConsentProvider>
      )
      }
      import { ConsentProvider, PreferencesModal } from '@react-lgpd-consent/mui'

      function App() {
      return (
      <ConsentProvider
      categories={{ enabledCategories: ['analytics'] }}
      PreferencesModalComponent={(props) => (
      <PreferencesModal {...props} hideBranding={true} />
      )}
      CookieBannerComponent={() => <div>Meu banner customizado</div>}
      >
      <YourApp />
      </ConsentProvider>
      )
      }
      import { ConsentProvider } from '@react-lgpd-consent/mui'
      import { useConsent } from '@react-lgpd-consent/core'

      function CustomUI() {
      const { acceptAll, rejectAll } = useConsent()
      return <div>Minha UI totalmente customizada</div>
      }

      function App() {
      return (
      <ConsentProvider
      categories={{ enabledCategories: ['analytics'] }}
      disableDefaultModal={true}
      disableDefaultBanner={true}
      disableDefaultFloatingButton={true}
      >
      <CustomUI />
      <YourApp />
      </ConsentProvider>
      )
      }
      function App() {
      return (
      <ConsentProvider
      categories={{ enabledCategories: ['analytics', 'marketing'] }}
      onConsentChange={(newState) => {
      console.log('Novo estado:', newState)
      // Enviar evento para analytics
      }}
      onPreferencesOpen={() => console.log('Modal aberto')}
      onPreferencesClose={() => console.log('Modal fechado')}
      >
      <YourApp />
      </ConsentProvider>
      )
      }
    Index

    Properties

    Properties

    displayName: string