PrimerTheme and required CompositionLocal providers. Renders SDK components inline rather than in a modal bottom sheet. Overlay sheets for 3DS and redirect flows are handled automatically.
Signature
There is no
onEvent callback. With the inline host you build your own result UI —
observe checkout.state
for PrimerCheckoutState.Success / PrimerCheckoutState.Failure and render accordingly.Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
checkout | PrimerCheckoutController | Required | Checkout controller providing session state to child components |
modifier | Modifier | Modifier | Modifier applied to the host container |
theme | PrimerTheme | PrimerTheme() | Design tokens applied to all SDK components within the host |
beforePaymentCreate | (@Composable (PrimerPaymentCreationDecisionHandler) -> Unit)? | null | Optional gate shown right before payment creation — run last-minute checks or set an idempotency key, then call handler.continuePaymentCreation(idempotencyKey) or handler.abortPaymentCreation(message). Omit to let the SDK proceed automatically. |
content | @Composable () -> Unit | Required | Your custom layout containing SDK components (trailing lambda) |
What it provides
- PrimerTheme — applies design tokens so child components inherit your styling
- CompositionLocal providers — injects checkout context so
remember*Controller()functions work - Overlay management — renders overlays for 3DS challenges and redirect flows automatically
PrimerCheckoutHost, SDK components like PrimerCardForm and PrimerPaymentMethods will not function.