This method allows you get a new instance of KlarnaComponent.

TYPESCRIPT
async provide(props: KlarnaManagerProps): Promise<KlarnaComponent>

Parameters

Returns

An instance of KlarnaComponent:

Example

TYPESCRIPT
// 👇 Add this
const klarnaManagerProps: KlarnaManagerProps = {
  primerSessionIntent: PrimerSessionIntent.CHECKOUT,
  onStep: (data: KlarnaPaymentStep) => {
    // Show loading indicator, render categories or finalize payment.
    switch (data.stepName) {
      case "paymentSessionCreated":
        // Render categories
        break;

      case "paymentViewLoaded":
        // Render payment view
        break;

      case "paymentSessionAuthorized":
        if (data.isFinalized) {
          // Finalize payment
        }
        break;
      case "paymentSessionFinalized":
        // ...
        break;
    }
  },
  onError: (error: PrimerError) => {
    // An error that occurred during the component's operation.
  },
  onInvalid: (
    data: PrimerInvalidComponentData<KlarnaPaymentValidatableData>
  ) => {
    // Data was considered invalid during validation.
    switch (data.data.validatableDataName) {
      case "klarnaPaymentOptions":
        // ...
        break;
      case "klarnaPaymentFinalization":
        // ...
        break;
    }
  },
  onValid: (data: PrimerValidComponentData<KlarnaPaymentValidatableData>) => {
    // Data was successfully validated.
    switch (data.data.validatableDataName) {
      case "klarnaPaymentOptions":
        // ...
        break;
      case "klarnaPaymentFinalization":
        // ...
        break;
    }
  },
  onValidating: (
    data: PrimerValidatingComponentData<KlarnaPaymentValidatableData>
  ) => {
    // Data is in the process of being validated.
    switch (data.data.validatableDataName) {
      case "klarnaPaymentOptions":
        // ...
        break;
      case "klarnaPaymentFinalization":
        // ...
        break;
    }
  },
  onValidationError: (
    data: PrimerComponentDataValidationError<KlarnaPaymentValidatableData>
  ) => {
    // Error occurred during data validation.
    switch (data.data.validatableDataName) {
      case "klarnaPaymentOptions":
        // ...
        break;
      case "klarnaPaymentFinalization":
        // ...
        break;
    }
  },
};
const klarnaManager = new KlarnaManager();
const klarnaComponent: KlarnaComponent = await klarnaManager.provide(
  klarnaManagerProps
);