@adyen/kyc-components
Version:
This guide assumes that you have already an account with Adyen. A legalEntity needs to be created, and you need to have a `legalEntityId` to instatiate a Component.
71 lines (70 loc) • 3.32 kB
TypeScript
import type { ComponentChildren } from 'preact';
import type { CountryCode } from '../../types/datasets/country-code';
/**
* Settings are features that can be switched on or off by external users.
* This list is defined in the BE.
*/
export declare const SettingNames: {
readonly AcceptedCountries: "acceptedCountries";
readonly AllowBankAccountFormatSelection: "allowBankAccountFormatSelection";
readonly AllowDebugUi: "allowDebugUi";
readonly AllowIntraRegionCrossBorderPayout: "allowIntraRegionCrossBorderPayout";
readonly AllowLegalEntityTypeChange: "changeLegalEntityType";
readonly AllowPrefilledCountryEdit: "editPrefilledCountry";
readonly RequirePciSignEcommerce: "requirePciSignEcommerce";
readonly RequirePciSignPos: "requirePciSignPos";
readonly RequirePciSignEcomMoto: "requirePciSignEcomMoto";
readonly RequirePciSignPosMoto: "requirePciSignPosMoto";
readonly HideOnboardingIntroductionIndividual: "hideOnboardingIntroductionIndividual";
readonly HideOnboardingIntroductionOrganization: "hideOnboardingIntroductionOrganization";
readonly HideOnboardingIntroductionTrust: "hideOnboardingIntroductionTrust";
readonly HideOnboardingIntroductionSoleProprietor: "hideOnboardingIntroductionSoleProprietor";
readonly TransferInstrumentLimit: "transferInstrumentLimit";
readonly ViewOnboardingGuidance: "viewOnboardingGuidance";
readonly InstantBankVerification: "instantBankVerification";
readonly ShowServiceAgreementsFirst: "showServiceAgreementsFirst";
readonly ShowBusinessFinancingFirst: "showBusinessFinancingFirst";
readonly EnforceLegalAge: "enforceLegalAge";
readonly MerchantType: "merchantType";
readonly AllowBusinessLines: "allowBusinessLines";
readonly AllowCrossBorderPayout: "allowCrossBorderPayout";
};
export type SettingName = (typeof SettingNames)[keyof typeof SettingNames];
export interface Settings {
acceptedCountries: CountryCode[] | undefined;
allowBankAccountFormatSelection: boolean;
allowDebugUi: boolean;
allowIntraRegionCrossBorderPayout: boolean;
changeLegalEntityType: boolean;
editPrefilledCountry: boolean;
requirePciSignEcommerce: boolean;
requirePciSignPos: boolean;
requirePciSignEcomMoto: boolean;
requirePciSignPosMoto: boolean;
hideOnboardingIntroductionIndividual: boolean;
hideOnboardingIntroductionOrganization: boolean;
hideOnboardingIntroductionTrust: boolean;
hideOnboardingIntroductionSoleProprietor: boolean;
viewOnboardingGuidance: boolean;
transferInstrumentLimit: number;
instantBankVerification: boolean;
showServiceAgreementsFirst: boolean;
showBusinessFinancingFirst: boolean;
enforceLegalAge: boolean;
merchantType: string | undefined;
allowBusinessLines: boolean;
allowCrossBorderPayout: boolean;
}
export type ProvidedSettings = Partial<Settings>;
export type BooleanSettingName = {
[S in keyof Settings]: Settings[S] extends boolean ? S : never;
}[keyof Settings];
export interface SettingsProps {
children?: ComponentChildren;
settings: ProvidedSettings;
}
export interface SettingsContextValue {
isSettingEnabled(key: BooleanSettingName): boolean;
getSetting<S extends SettingName>(settingName: S): Settings[S];
settings: Readonly<Settings>;
}