UNPKG

react-bfm

Version:

A basic field / form manager for React using hooks

47 lines 2.27 kB
import { getNamespaceState } from '../state'; import { FIELD_KEY_INITIAL_VALUE, FIELD_KEY_DIRTY, FIELD_KEY_ERROR, FIELD_KEY_FOCUS, FIELD_KEY_TOUCHED, FIELD_KEY_VALID, FIELD_KEY_VALUE, FIELD_KEY_VALUE_ON_FOCUS } from '../constants/field-keys'; export var getNamespaceKeyValues = function getNamespaceKeyValues(namespace, key) { var namespaceState = getNamespaceState(namespace); return namespaceState && Object.entries(namespaceState).reduce(function (values, _ref) { var fieldName = _ref[0], fieldState = _ref[1]; values[fieldName] = fieldState[key]; return values; }, {}); }; export var getNamespaceKeyIsEvery = function getNamespaceKeyIsEvery(namespace, key) { var namespaceState = getNamespaceState(namespace); return namespaceState && Object.values(namespaceState).every(function (fieldState) { return fieldState[key] || false; }); }; export var getNamespaceKeyIsSome = function getNamespaceKeyIsSome(namespace, key) { var namespaceState = getNamespaceState(namespace); return namespaceState && Object.values(namespaceState).some(function (fieldState) { return fieldState[key] || false; }); }; export var getNamespaceInitialValues = function getNamespaceInitialValues(namespace) { return getNamespaceKeyValues(namespace, FIELD_KEY_INITIAL_VALUE); }; export var getNamespaceErrors = function getNamespaceErrors(namespace) { return getNamespaceKeyValues(namespace, FIELD_KEY_ERROR); }; export var getNamespaceValues = function getNamespaceValues(namespace) { return getNamespaceKeyValues(namespace, FIELD_KEY_VALUE); }; export var getNamespaceValuesOnFocus = function getNamespaceValuesOnFocus(namespace) { return getNamespaceKeyValues(namespace, FIELD_KEY_VALUE_ON_FOCUS); }; export var hasNamespaceFocus = function hasNamespaceFocus(namespace) { return getNamespaceKeyIsSome(namespace, FIELD_KEY_FOCUS); }; export var isNamespaceDirty = function isNamespaceDirty(namespace) { return getNamespaceKeyIsSome(namespace, FIELD_KEY_DIRTY); }; export var isNamespaceTouched = function isNamespaceTouched(namespace) { return getNamespaceKeyIsSome(namespace, FIELD_KEY_TOUCHED); }; export var isNamespaceValid = function isNamespaceValid(namespace) { return getNamespaceKeyIsEvery(namespace, FIELD_KEY_VALID); };