coject
Version:
React Library
31 lines • 1.64 kB
JavaScript
import React from "react";
// Coject
import { Input } from "../Input";
export const Iban = ({ name, label, helperText, required = true, errorMessages, onChange: externalOnChange, ...props }) => {
const ibanRegex = /^[A-Za-z]{2}[0-9]{20}$/;
const { value, ...restProps } = props;
return (React.createElement(React.Fragment, null,
React.createElement(Input, { name: name, label: label || "IBAN", helperText: helperText, required: errorMessages?.required ?? required, inputProps: { maxLength: 22 }, validation: {
pattern: {
value: ibanRegex,
message: errorMessages?.pattern ?? "IBAN Must Start With 2 Letters Followed by 20 Digits"
},
minLength: { value: 22, message: "IBAN Must be Exactly 22 Characters" },
maxLength: { value: 22, message: "IBAN Must be Exactly 22 Characters" }
}, onChange: (_, v, form) => {
let val = v.toUpperCase();
val = val.replace(/[^A-Za-z0-9]/g, "");
if (val.length <= 2)
val = val.replace(/[^A-Za-z]/g, "");
if (val.length > 2) {
const letters = val.substring(0, 2).replace(/[^A-Za-z]/g, "");
const numbers = val.substring(2).replace(/[^0-9]/g, "");
val = letters + numbers;
}
form.setValue(name, val);
if (externalOnChange) {
externalOnChange({ target: { name, value: val } });
}
}, ...restProps })));
};
//# sourceMappingURL=index.js.map