UI Components

VGSTextInput

The VGSTextInput component is a secure text input field designed for collecting sensitive data using the VGS Collect SDK. This component provides various features such as masking, validation, and tokenization to ensure the secure handling of sensitive information like payment card details, social security numbers, and more.

VGSTextInput props

VGSTextInput has similar props to native iOS/Android TextField attributes.

The VGSTextInput class provides built-in support for input text validation and formatting. You can set pre-defined configuration to each VGSTextInput by setting the type field.

Props

Description

collector

The VGSCollect instance used to register the field.

fieldName

The string name of the field. Should be same as in your Valut Route settings.

type

The VGSInputType type of the input field (e.g., 'card', 'cvc', 'expDate', 'text'). Default is 'text'.

mask

The string mask pattern for the input field (e.g., '#### #### #### ####' for card number).

divider

The string divider to use when replacing non-mask characters on form submission.

serializers

An VGSSerializer[] array of serializers for the input field.

validationRules

An ValidationRule[] array of rules for the input field. Based on type will have predefined values.

placeholder

The string placeholder text for the input field.

keyboardType

The keyboard type for the input field(e.g., 'default'

secureTextEntry

The boolean value whether the input field should have secure text entry (e.g., for passwords). Default is false.

autoCorrect

The boolean value whether the input field should enable auto-correction. Default is false.

containerStyle

The object style for the container view.

textStyle

The object style for the text input.

tokenization

The false or TokenizationConfig tokenization configuration for the input field.

onStateChange

A callback function that is invoked when the input field's state changes.

Methods

Methods

Description

focus()

Focuses the text input field.

blur()

Unfocuses the text input field.

Code example

import React from 'react';
import { View } from 'react-native';
import { VGSTextInput, VGSCollect } from '@vgs/collect-react-native';
import type { VGSTextInputState } from '@vgs/collect-react-native';

const MyComponent = () => {
  const collector = new VGSCollect('your-vault-id', 'your-environment');

  const handleStateChange = (state) => {
    console.log('Input state changed:', state);
  };

  return (
    <View>
      <VGSTextInput
        collector={collector}
        fieldName="ssn"
        type="ssn"
        mask="###-##-####"
        placeholder="Enter your SSN"
        onStateChange={handleStateChange}
        secureTextEntry={true}
        autoCorrect={false}
        containerStyle={{ margin: 10 }}
        textStyle={{ fontSize: 18 }}
      />
    </View>
  );
};

export default MyComponent;

VGSTextInputState

The VGSTextInput component manages its state internally and provides updates via the onStateChange callback. The state includes information such as:

Props

Description

isValid

boolean: Whether the current input is valid based on the validation rules.

isDirty

boolean: Whether the input field has been modified.

isEmpty

boolean: Whether the input field is empty.

isFocused

boolean: Whether the input field is focused.

inputLength

number: The length of the current input.

validationErrors

string[]: An array of validation errors.

fieldName

string: The name of the field.

cardBrand

string: The detected card brand (for card type). Available only for valid card numbers.

cardBin

string: The BIN (Bank Identification Number) of the card (for card type). Available only for valid card numbers.

last4

string: The last 4 digits of the card or SSN (for card or SSN type). Available only for valid card numbers or SSN.

VGSCardInput

The VGSCardInput component is a version of the VGSTextInput component, specifically designed for collecting and handling payment card information. It inherits all the functionality of VGSTextInput and provides additional features tailored for card input fields.

VGSCardInput props

VGSCardInput has similar props to VGSTextInput. In addition, it detects the credit card brand while the user is typing data and displays the card brand image in the card input. All card brand images are included in the SDK, however you still can set your custom images.

Props

Description

iconWidth

The number width of the card brand icon.

iconHeight

The number height of the card brand icon.

iconPadding

The number padding around the card brand icon.

iconPosition

The left or right or none position of the card brand icon.

iconStyle

The object style for the card brand icon.

VGSCVCInput

The VGSCVCInput component is another specialized version of the VGSTextInput component, designed for collecting and handling payment card security code information (CVC/CVV). It inherits all the functionality of VGSTextInput and provides additional features tailored for card security code input fields.

VGSCVCInput props

VGSCVCInput has similar props to VGSTextInput. In addition, it displays a CVC image. The CVC image can change dynamically for a specific card brand (e.g. the CVC image for Amex contains 4 digits).

Props

Description

iconWidth

The number width of the card brand icon.

iconHeight

The number height of the card brand icon.

iconPadding

The number padding around the card brand icon.

iconPosition

The left or right or none position of the card brand icon.

iconStyle

The object style for the card brand icon.

Last updated