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

    Function PreferencesModal

    • Modal de preferências de consentimento LGPD que permite ao usuário ajustar suas escolhas.

      Parameters

      • props: Readonly<PreferencesModalProps>

        Propriedades para customizar o modal (tipado via PreferencesModalProps)

      Returns Element

      Elemento JSX do modal de preferências ou null se não deve ser exibido

      Components

      0.1.0

      O PreferencesModal é o componente de UI que apresenta uma interface detalhada para o usuário gerenciar suas preferências de consentimento categoria por categoria.

      • Toggles por categoria: Switch para cada categoria não-essencial configurada
      • Categoria necessária bloqueada: Sempre marcada e desabilitada (required by LGPD)
      • Detalhes de cookies: Accordion expansível mostrando cookies por categoria
      • Mudanças temporárias: Edições salvas localmente até confirmar com botão "Salvar"
      • Sincronização automática: Recarrega estado ao abrir o modal
      • Acessibilidade: ARIA labels, keyboard navigation, screen reader support

      Este modal é renderizado automaticamente pelo ConsentProvider quando o usuário clica para gerenciar preferências. Não é necessário renderizá-lo manualmente, a menos que deseje controle total sobre o comportamento.

      Você pode substituir este componente passando seu próprio para a prop PreferencesModalComponent no ConsentProvider:

      function MyCustomModal() {
      const { preferences, setPreferences, closePreferences } = useConsent()
      return <div>Meu modal customizado</div>
      }

      <ConsentProvider
      PreferencesModalComponent={MyCustomModal}
      categories={{ enabledCategories: ['analytics'] }}
      >
      <App />
      </ConsentProvider>

      O modal exibe automaticamente:

      • Nome do cookie: Identificador único
      • Finalidade: Para que serve (Analytics, Marketing, etc.)
      • Duração: Tempo de vida (sessão, 1 ano, etc.)
      • Fornecedor: Quem criou/gerencia (Google, Facebook, próprio site)

      Estas informações vêm das integrações ativas (via getCookiesInfoForCategory) e das categorias configuradas no Provider.

      Se usado fora do ConsentProvider (contexto não disponível)

      // ConsentProvider já renderiza PreferencesModal automaticamente
      function App() {
      return (
      <ConsentProvider categories={{ enabledCategories: ['analytics'] }}>
      <YourApp />
      </ConsentProvider>
      )
      }
      <ConsentProvider
      categories={{ enabledCategories: ['analytics', 'marketing'] }}
      preferencesModalProps={{
      hideBranding: true,
      DialogProps: {
      maxWidth: 'md',
      fullWidth: true
      }
      }}
      >
      <App />
      </ConsentProvider>
      function CustomApp() {
      const [open, setOpen] = useState(false)
      const { preferences, setPreferences } = useConsent()

      return (
      <>
      <button onClick={() => setOpen(true)}>Abrir Preferências</button>
      <PreferencesModal
      isModalOpen={open}
      preferences={preferences}
      setPreferences={setPreferences}
      closePreferences={() => setOpen(false)}
      DialogProps={{ maxWidth: 'lg' }}
      />
      </>
      )
      }