react-native-moyasar-sdk
Version:
Official React Native Moyasar SDK - Integrate Credit Cards, Apple Pay, Samsung Pay, and STC Pay with simple interfaces for a seamless payment experience in your React Native app
25 lines (20 loc) • 842 B
text/typescript
import { FieldValidator } from './field_validator';
import { ExpiryDateUtil } from '../../helpers/expiry_date_util';
import { getConfiguredLocalizations } from '../../localizations/i18n';
export class CreditCardExpiryValidator extends FieldValidator {
constructor() {
super();
const { t } = getConfiguredLocalizations();
this.addRule(t('moyasarTranslation:expiryRequired'), (value: string) => {
return value.length === 0;
});
this.addRule(t('moyasarTranslation:invalidExpiry'), (value: string) => {
const expiryDate = ExpiryDateUtil.fromPattern(value);
return !(expiryDate?.isValid() ?? false);
});
this.addRule(t('moyasarTranslation:expiredCard'), (value: string) => {
const expiryDate = ExpiryDateUtil.fromPattern(value);
return expiryDate?.isExpired() ?? true;
});
}
}