1.1.3 • Published 8 months ago

react-cardify v1.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

Cardify

A flexible and highly customizable React component for credit card input, capable of masking, formatting, and detecting card types.

Features

  • 🎨 Render prop pattern for ultimate customization
  • 🔒 Masking for security
  • 📋 Automatically formats as you type
  • 🎴 Detects card type (e.g., Visa, MasterCard, Amex)
  • 🌐 ARIA accessible

Installation

npm install --save react-cardify
yarn add react-cardify
pnpm add react-cardify
bun install react-cardify

Usage

Uncontrolled

import { Cardify } from "react-cardify";

export default function Home() {
  return (
    <Cardify
      render={({
        value,
        onChange,
        onFocus,
        onBlur,
        placeholder,
        unmaskedValue,
        cardType,
      }) => {
        console.log("value", value);
        console.log("unmaskedValue", unmaskedValue);
        console.log("cardType", cardType);
        return (
          <input
            value={value}
            onChange={onChange}
            onFocus={onFocus}
            onBlur={onBlur}
            placeholder={placeholder}
          />
        );
      }}
    />
  );
}

Controlled

import { useState } from "react";
import { Cardify } from "react-cardify";

export default function Home() {
  const defaultValue = "95827712367284";
  const [controlledValue, setControlledValue] = useState(defaultValue);

  return (
    <_Cardify
      value={controlledValue}
      onChange={({ event, value }: { event: any, value: string }) =>
        setControlledValue(value)
      }
      defaultValue={defaultValue}
      render={({
        value,
        onChange,
        onFocus,
        onBlur,
        unmaskedValue,
        cardType,
      }) => {
        return (
          <div>
            <input
              value={value}
              onChange={onChange}
              onFocus={onFocus}
              onBlur={onBlur}
            />
          </div>
        );
      }}
    />
  );
}

Props

Prop nameTypeDescriptionDefault value
render({ value, onChange, onFocus, onBlur, placeholder, unmaskedValue, cardType }) => React.ReactNodeRender prop for ultimate customization.undefined
maskCharacterstringThe character to use for masking."•"
maskboolWhether to mask the input.true
valuestringThe value of the input.""
defaultValue{ cardNumber: string, cardType: string }The default value of the input.undefined
onChange({ event, value }: { event: any, value: { cardNumber: string, cardType: string } }) => voidThe function to call when the value changes.undefined

Render prop arguments

Argument nameTypeDescriptionDefault value
valuestringValue of the input is unmasked when focused and masked when blurred""
onChangefuncThe function to call when the value changes.handleChange
onFocusfuncThe function to call when the input is focused.undefined
onBlurfuncThe function to call when the input is blurred.undefined
placeholderstringThe placeholder to display when the input is empty.Enter card number
unmaskedValuestringThe unmasked value.""
cardTypestringThe card type.""
ariaLabelstringThe aria label for the input.""

License

This project is licensed under the MIT License - see the LICENSE file for details.

Dependencies

  • react: React is a JavaScript library for building user interfaces.
  • react-dom: React package for working with the DOM.
1.1.3

8 months ago

1.1.2

8 months ago

1.1.1

8 months ago

1.1.0

8 months ago

1.0.7

8 months ago

1.0.6

8 months ago

1.0.5

8 months ago

1.0.4

8 months ago

1.0.3

8 months ago

1.0.2

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago