UNPKG

react-native-ui-lib

Version:

<p align="center"> <img src="https://user-images.githubusercontent.com/1780255/105469025-56759000-5ca0-11eb-993d-3568c1fd54f4.png" height="250px" style="display:block"/> </p> <p align="center">UI Toolset & Components Library for React Native</p> <p a

76 lines (65 loc) 1.82 kB
import _ from 'lodash'; import { Colors } from "./../../style"; import formValidators from "./validators"; export function getColorByState(color, context) { let finalColor; if (_.isString(color)) { finalColor = color; } else if (_.isPlainObject(color)) { if (context?.disabled) { finalColor = color?.disabled; } else if (!context?.isValid) { finalColor = color?.error; } else if (context?.isFocused) { finalColor = color?.focus; } finalColor = finalColor || color?.default || Colors.grey10; } return finalColor; } export function validate(value, validator) { if (_.isUndefined(validator)) { return [true, undefined]; } let _isValid = true; let _failingValidatorIndex; const _validators = _.isArray(validator) ? validator : [validator]; _.forEach(_validators, (validator, index) => { if (_.isFunction(validator)) { _isValid = validator(value); } else if (_.isString(validator)) { _isValid = formValidators[validator]?.(value || ''); } if (!_isValid) { _failingValidatorIndex = index; return false; } }); return [_isValid, _failingValidatorIndex]; } export function getRelevantValidationMessage(validationMessage, failingValidatorIndex) { if (_.isUndefined(failingValidatorIndex)) { return validationMessage; } else if (_.isUndefined(validationMessage)) { return; } if (_.isString(validationMessage)) { return validationMessage; } else if (_.isArray(validationMessage)) { return validationMessage[failingValidatorIndex]; } } export function shouldHidePlaceholder({ floatingPlaceholder, hint, floatOnFocus }, isFocused) { if (floatingPlaceholder) { if (hint && isFocused) { return !floatOnFocus; } return true; } else { return false; } }