UNPKG

react-bfm

Version:

A basic field / form manager for React using hooks

59 lines (58 loc) 3.24 kB
"use strict"; exports.__esModule = true; exports.useFieldValueOnFocus = exports.useFieldValue = exports.useFieldState = exports.useFieldIsValid = exports.useFieldIsTouched = exports.useFieldIsDirty = exports.useFieldHasFocus = exports.useFieldError = void 0; var _react = require("react"); var _context = require("../context"); var _helpers = require("../helpers"); var _fieldKeys = require("../constants/field-keys"); var getServerSnapshot = function getServerSnapshot() { return undefined; }; var useFieldState = exports.useFieldState = function useFieldState(namespace, fieldName) { if (process.env.NODE_ENV !== 'production') { if (!(0, _helpers.validateNamespace)(namespace)) { throw new Error('Expected string with a minimal length of 1 for `namespace`'); } if (!(0, _helpers.validateFieldName)(fieldName)) { throw new Error('Expected string with a minimal length of 1 for `fieldName`'); } } var _useContext = (0, _react.useContext)(_context.BFMHooksContext), createSubscribeToField = _useContext.createSubscribeToField, createGetSnapshotFieldState = _useContext.createGetSnapshotFieldState; var subscribe = (0, _react.useMemo)(function () { return createSubscribeToField(namespace, fieldName); }, [createSubscribeToField, fieldName, namespace]); var getSnapshot = (0, _react.useMemo)(function () { return createGetSnapshotFieldState(namespace, fieldName); }, [createGetSnapshotFieldState, fieldName, namespace]); return (0, _react.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot); }; var useFieldError = exports.useFieldError = function useFieldError(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_ERROR]; }; var useFieldHasFocus = exports.useFieldHasFocus = function useFieldHasFocus(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_FOCUS]; }; var useFieldIsDirty = exports.useFieldIsDirty = function useFieldIsDirty(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_DIRTY]; }; var useFieldIsTouched = exports.useFieldIsTouched = function useFieldIsTouched(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_TOUCHED]; }; var useFieldIsValid = exports.useFieldIsValid = function useFieldIsValid(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALID]; }; var useFieldValue = exports.useFieldValue = function useFieldValue(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE]; }; var useFieldValueOnFocus = exports.useFieldValueOnFocus = function useFieldValueOnFocus(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE_ON_FOCUS]; };