decap-cms-lib-widgets
Version:
Shared utilities for Decap CMS.
21 lines • 730 B
JavaScript
import isNumber from 'lodash/isNumber';
export function validateMinMax(t, fieldLabel, value, min, max) {
function minMaxError(messageKey) {
return {
type: 'RANGE',
message: t(`editor.editorControlPane.widget.${messageKey}`, {
fieldLabel,
minCount: min,
maxCount: max,
count: min
})
};
}
if ([min, max, value?.size].every(isNumber) && (value.size < min || value.size > max)) {
return minMaxError(min === max ? 'rangeCountExact' : 'rangeCount');
} else if (isNumber(min) && min > 0 && value?.size && value.size < min) {
return minMaxError('rangeMin');
} else if (isNumber(max) && value?.size && value.size > max) {
return minMaxError('rangeMax');
}
}