Product
Socket Now Supports uv.lock Files
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
@vgs/collect-js-react
Advanced tools
React wrapper for VGS Collect.js fields
Explore the docs »
Report Bug
·
Request Feature
VGS Collect.js is a JavaScript library that allows you to securely collect data via any form. Instantly create custom forms that adhere to PCI, HIPAA, GDPR, or CCPA security requirements. VGS intercepts sensitive data before it hits your servers and replaces it with aliased versions while securing the original data in our vault. The form fields behave like traditional forms while preventing access to unsecured data by injecting secure iframe components.
This package provides a convenient way to use VGS secure frames in the React environment by exposing field components.
Install the package using npm
:
npm install @vgs/collect-js-react
To stay PCI Compliant it's a mandatory to load js from our js.verygoodvault.com
domain as a consequence you need to find the most suitable way to download it.
There are couple of options here:
import { VGSCollectForm } from '@vgs/collect-js-react';
const App = () => {
const onSubmitCallback = (status, data) => {};
const onUpdateCallback = (state) => {};
return (
<VGSCollectForm
vaultId='<vault_id>'
environment='<environment>'
action='/post'
submitParameters={{}}
onUpdateCallback={onUpdateCallback}
onSubmitCallback={onSubmitCallback}
>
// Add secure fields here
</VGSCollectForm>
);
};
export default App;
Property | Description | Documentation |
---|---|---|
vaultId | A string value beginning with the prefix tnt . | Parameters.vaultId |
environment | Vault environment: sanbdox | live or region specific. | Parameters.environment |
action | Endpoint for the HTTP request. | Parameters.path |
submitParamethers? | HTTP request configuration. | Parameters.options |
onUpdateCallback? | Returns the form state in the callback. | Parameters.stateCallback |
onSubmitCallback? | Returns status and response data in the callback. | Parameters.responseCallback |
cname? | String represents CNAME the request will be submitted to. | .useCNAME() |
routeId? | Inbound Route ID. | .setRouteId() |
Collect.js input type | Collect.js React Component | Default Prop Values |
---|---|---|
text | <VGSCollectForm.TextField/> | {type: 'text', placeholder: 'Cardholder Name'} |
card-number | <VGSCollectForm.CardNumberField/> | {type: 'card-number', placeholder: 'Credit Card Number'} |
card-expiration-date | <VGSCollectForm.CardExpirationDateField/> | {type: 'card-expiration-date', placeholder: 'MM/YY'} |
card-security-code | <VGSCollectForm.CardSecurityCodeField/> | {type: 'card-security-code', placeholder: 'CVC/CVV'} |
password | <VGSCollectForm.PasswordField/> | {type: 'password', placeholder: 'Enter Password'} |
ssn | <VGSCollectForm.SSNField/> | {type: 'ssn', placeholder: 'SSN'} |
zip-code | <VGSCollectForm.ZipCodeField/> | {type: 'zip-code', placeholder: 'Zip Code'} |
number | <VGSCollectForm.NumberField/> | {type: 'number', placeholder: 'Number'} |
textarea | <VGSCollectForm/TextareaField/> | {type: 'textarea', placeholder: 'Comment'} |
file | <VGSCollectForm/FileField/> | {type: 'file', placeholder: ''} |
date | <VGSCollectForm/DateField/> | {type: 'date', placeholder: ''} |
The complete list of supported properties you can find here: https://www.verygoodsecurity.com/docs/api/collect/#api-formfield. All configuration properties available in the Reference Documentation can be passed in the component props using the same name.
Example:
import { VGSCollectForm } from '@vgs/collect-js-react';
const { CardNumberField, CardExpirationDateField, CardSecurityCodeField } =
VGSCollectForm;
const myApp = () => {
const onSubmitCallback = (status, data) => {};
const onUpdateCallback = (state) => {};
return (
<VGSCollectForm
vaultId='<vault_id>'
environment='<environment>'
action='/post'
submitParamethers={{
headers: {
myHeader: 'MyHeader'
}
}}
onUpdateCallback={onUpdateCallback}
onSubmitCallback={onSubmitCallback}
>
<CardNumberField
name='card-number'
validations={['required', 'validCardNumber']}
placeholder='XXXX XXXX XXXX XXXX'
showCardIcon={true}
css={{}}
/>
<CardExpirationDateField
name='exp-date'
validations={['required', 'validCardExpirationDate']}
placeholder='MM / YY'
yearLength={2}
css={{}}
/>
<CardSecurityCodeField
name='cvv'
validations={['required', 'validCardSecurityCode']}
placeholder='CVV'
css={{}}
/>
</VGSCollectForm>
);
};
VGS Collect.js allows listening to input changes.
The library exposes the following handlers: onFocus
, onBlur
, onUpdate
, onDelete
, onKeyUp
, onKeyDown
, onKeyPress
.
<TextField
name='text'
validations={['required']}
onFocus={(info: VGSCollectFocusEventData) => {}}
onBlur={(info: VGSCollectFocusEventData) => {}}
onUpdate={(info: VGSCollectStateParams) => {}}
onKeyUp={(info: VGSCollectKeyboardEventData) => {}}
onKeyDown={(info: VGSCollectKeyboardEventData) => {}}
onKeyPress={(info: VGSCollectKeyboardEventData) => {}}
/>
In order to access the form state and response from the hook, wrap consumer component with the form in VGSCollectProvider
context provider.
import {
VGSCollectProvider,
useVGSCollectState,
useVGSCollectResponse,
VGSCollectForm
} from '@vgs/collect-js-react';
const { TextField } = VGSCollectForm;
const App = () => {
return (
<VGSCollectProvider>
<VGSCollectSecureForm />
</VGSCollectProvider>
);
};
const VGSCollectSecureForm = () => {
const [state] = useVGSCollectState();
const [response] = useVGSCollectResponse();
useEffect(() => {
if (state) {
// do something
}
}, [state]);
return (
<VGSCollectForm
vaultId='<vault_id>'
environment='<environment>'
action='/post'
>
<TextField
name='cardholder-name'
validations={['required']}
placeholder='Cardholder name'
/>
</VGSCollectForm>
);
};
To run exmaples locally, in the core folder run:
yarn install
yarn start
Switch the folder to example
and configure .env
file, simply rename .env.example
and replace values
REACT_APP_VAULT_ID=<vault_id>
REACT_APP_ENVIRONMENT=<env>
REACT_APP_COLLECT_VERSION=<collect_version>
From example
folder run:
yarn install
yarn start
If you have any questions please reach out to support or open issue here.
This project is licensed under the MIT license. See the LICENSE file for details.
FAQs
VGS Collect.js React wrapper
The npm package @vgs/collect-js-react receives a total of 2,621 weekly downloads. As such, @vgs/collect-js-react popularity was classified as popular.
We found that @vgs/collect-js-react demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.