UNPKG

@nevis-security/nevis-mobile-authentication-sdk-react

Version:

React Native plugin for Nevis Mobile Authentication SDK. Supports only mobile.

72 lines (61 loc) 1.92 kB
/** * Copyright © 2023 Nevis Security AG. All rights reserved. */ import { TypedData } from './TypedData'; import { BiometricPromptOptions } from '../../operations/userverification/BiometricPromptOptions'; import { DevicePasscodePromptOptions } from '../../operations/userverification/DevicePasscodePromptOptions'; import { FingerprintPromptOptions } from '../../operations/userverification/FingerprintPromptOptions'; class PromptOptionsData { title?: string; description?: string; cancelButtonText?: string; fallbackButtonText?: string; constructor( title?: string, description?: string, cancelButtonText?: string, fallbackButtonText?: string ) { this.title = title; this.description = description; this.cancelButtonText = cancelButtonText; this.fallbackButtonText = fallbackButtonText; } } export abstract class TypedPromptOptions extends TypedData<PromptOptionsData> { abstract data: PromptOptionsData; } export class TypedBiometricPromptOptions extends TypedPromptOptions { type = 'BiometricPromptOptions'; data: PromptOptionsData; constructor(wrapped?: BiometricPromptOptions) { super(); this.data = new PromptOptionsData( wrapped?.title, wrapped?.description, wrapped?.cancelButtonText, wrapped?.fallbackButtonText ); } } export class TypedDevicePasscodePromptOptions extends TypedPromptOptions { type = 'DevicePasscodePromptOptions'; data: PromptOptionsData; constructor(wrapped?: DevicePasscodePromptOptions) { super(); this.data = new PromptOptionsData(wrapped?.title, wrapped?.description); } } export class TypedFingerprintPromptOptions extends TypedPromptOptions { type = 'FingerprintPromptOptions'; data: PromptOptionsData; constructor(wrapped?: FingerprintPromptOptions) { super(); this.data = new PromptOptionsData( undefined, wrapped?.description, wrapped?.cancelButtonText, wrapped?.fallbackButtonText ); } }