Warning
This guide is specific to Web SDK 2.x. For Web SDK 1.x, you can find documentation here.
Do not attempt to upgrade or implement without support. Contact your Incode representative to check if you are a candidate for this upgrade.
The Consent module renders a consent form (terms text plus configurable checkboxes) and submits the user's selections. Used to capture optional or required user consents before downstream modules run.
This module follows the form-based pattern, with an additional display state for showing the consent text and checkboxes.
Tag
<incode-consent> is a standard Web Component. Importing the UI subpath registers the custom element; importing the CSS applies the module's styles.
import '@incodetech/web/consent';
import '@incodetech/web/consent/styles.css';
Properties
| Property | Type | Required | Description |
|---|---|---|---|
config |
ConsentConfig |
❌ | Configuration options |
onFinish |
() => void |
❌ | Called when consent is submitted |
onError |
(error: string) => void |
❌ | Called when an error occurs |
Configuration
type ConsentConfig = {
combinedConsents?: string;
consentId?: string;
language?: string;
};
| Option | Type | Required | Description |
|---|---|---|---|
combinedConsents |
string |
❌ | Identifier for a combined consents bundle from the dashboard. Backend-driven content. |
consentId |
string |
❌ | Specific consent ID to load. |
language |
string |
❌ | Language to fetch the consent text in. Defaults to the active SDK language from setup({ i18n }). Set it only to request consent copy in a different language than the rest of the flow. |
The actual consent text and checkbox definitions come from the backend (fetchCombinedConsent); the config just identifies which bundle to load.
State machine
ConsentState is a discriminated union over status:
| Status | Description |
|---|---|
idle |
Initial state. |
loading |
Fetching consent text + checkbox definitions from the backend. |
display |
Rendering consents; user can toggle checkboxes. |
submitting |
Sending the user's selections to the backend. |
finished |
Terminal. |
error |
Fatal error. |
State properties
| Property | Type | Available in | Description |
|---|---|---|---|
title, richText |
string |
display, submitting |
Consent heading and formatted terms. |
checkboxes |
ConsentCheckbox[] |
display, submitting |
Each checkbox has id, label, required, and checked. |
canSubmit |
boolean |
display, submitting |
Whether submission is available; always false during submission. |
error |
string? |
display |
Inline submission feedback, when present. |
Import ConsentState and ConsentCheckbox from @incodetech/core/consent. Render the supplied consent and required selections before enabling submission.
API methods
This module takes input through toggleCheckbox, not the setField shape the schema-driven form modules use.
| Method | Purpose | Callable when |
|---|---|---|
load() |
Fetch the consent text and checkbox definitions. | idle |
toggleCheckbox(checkboxId) |
Flip one checkbox. Pass the id from the checkbox definitions on the state. |
display |
submit() |
Send the user's selections. | display |
retry() |
Retry after a failed load or submit. | error |
reset() |
Return to idle after an error. |
error |
Plus the universal lifecycle: subscribe, getState, stop.