Multiplier unit for font sizes, not a base font size. Default "4px": labels render at fontSizeUnit * 3.75 (15px), inputs at * 4 (16px), the primary button at * 4.25 (17px). Passing a body size such as "14px" (the VerificationAppearance convention) yields ~52px labels.
Note: In React Native, when payment.crypto.enabled is true, you must provide a payment.crypto.payer object with the required callback handlers for signing transactions and switching chains.
Multiplier unit for font sizes, not a base font size. Default "4px": labels render at fontSizeUnit * 3.75 (15px), inputs at * 4 (16px), the primary button at * 4.25 (17px). Passing a body size such as "14px" (the VerificationAppearance convention) yields ~52px labels.
import { useRef, useState } from "react";import { CrossmintIdentityVerification, type IdentityVerificationAppearance, useIdentityVerificationCredentials,} from "@crossmint/client-sdk-react-native-ui";// Mount one step per order, for example with key={order.orderId}, so the next order starts open.function VerificationStep({ appearance }: { appearance?: IdentityVerificationAppearance }) { const credentials = useIdentityVerificationCredentials(); // The order moves on before the flow shows its result, so keep the last credentials // and close the step on onComplete or onCancel. const lastCredentials = useRef(credentials); lastCredentials.current = credentials ?? lastCredentials.current; const [closed, setClosed] = useState(false); if (closed || lastCredentials.current == null) { return null; } return ( <CrossmintIdentityVerification credentials={lastCredentials.current} appearance={appearance} onComplete={({ status }) => { console.log(status); setClosed(true); }} onCancel={() => setClosed(true)} /> );}
Note: Keep the component mounted until onComplete or onCancel: the order leaves requires-kyc, and the hook returns undefined, before the flow shows its result. Handle onCancel, or the Done button on blocked screens does nothing. Pass the appearance object you give embedded checkout, so both look the same. Document capture needs camera access granted by the host app. On Android the WebView requests android.permission.CAMERA at runtime, which only succeeds if your app declares it in AndroidManifest.xml; on iOS you must set NSCameraUsageDescription in Info.plist. Neither is added for you.
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.