src/validator/rules/MaxDate.js
import { getDateSetting } from '../../utils/utils';
import moment from 'moment';
import _ from 'lodash';
import Rule from './Rule';
export default class MaxDate extends Rule {
defaultMessage = '{{field}} should not contain date after {{settings.dateLimit}}';
check(value) {
if (!value) {
return true;
}
// If they are the exact same string or object, then return true.
if (value === this.settings.dateLimit) {
return true;
}
const date = moment(value);
const maxDate = getDateSetting(this.settings.dateLimit);
if (_.isNull(maxDate)) {
return true;
}
else {
maxDate.setHours(0, 0, 0, 0);
}
return date.isBefore(maxDate) || date.isSame(maxDate);
}
}