React Consent API
Hooks
Read only the state you need
Every hook reads the runtime from the nearest ConsentProvider, so call them
from components rendered inside that provider and import them from
c15t/react.
Call hooks inside the consent provider. useConsent reads effective permission,
which can be true under an opt-out policy without a recorded grant.
| Need | Hook |
|---|---|
| One category's current permission | useConsent(category) |
| All current permissions | useConsents() |
| Recorded per-category choices | useExplicitChoice() |
| Whether one declared vendor may run | useVendorAllowed(id) |
| Whether a prompt is required | usePromptRequirement() |
| Active policy and resolution | usePolicyRule(), usePolicyResolution() |
| Save an explicit choice | useSaveConsents() |
| Open or close a consent surface | useSetActiveUI() |
| Acknowledge a notice | useDismissNotice() |
Save from a visitor action
Render this component inside your existing ConsentProvider.
This is an isolated action example, not a complete policy-aware banner. Use the stock UI or headless surface actions for a complete prompt. Do not call save on mount to persist a state derived from permissions.
Use focused hooks for feature gates. For a complete custom prompt or preference
center, use useHeadlessConsentUI() for surface actions and useConsentDraft()
for staged choices, inside one ConsentDraftProvider so the save commits the
same draft. v3 has no useConsentManager(); the
use-consent-manager-to-hooks codemod
rewrites most of its calls to hooks. Read how consent works before
treating a callback as evidence of a choice.