UNPKG

react-bfm

Version:

A basic field / form manager for React using hooks

67 lines (66 loc) 3.37 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 = 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); }; exports.useFieldState = useFieldState; var useFieldError = function useFieldError(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_ERROR]; }; exports.useFieldError = useFieldError; var useFieldHasFocus = function useFieldHasFocus(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_FOCUS]; }; exports.useFieldHasFocus = useFieldHasFocus; var useFieldIsDirty = function useFieldIsDirty(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_DIRTY]; }; exports.useFieldIsDirty = useFieldIsDirty; var useFieldIsTouched = function useFieldIsTouched(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_TOUCHED]; }; exports.useFieldIsTouched = useFieldIsTouched; var useFieldIsValid = function useFieldIsValid(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALID]; }; exports.useFieldIsValid = useFieldIsValid; var useFieldValue = function useFieldValue(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE]; }; exports.useFieldValue = useFieldValue; var useFieldValueOnFocus = function useFieldValueOnFocus(namespace, fieldName) { var fieldState = useFieldState(namespace, fieldName); return fieldState == null ? void 0 : fieldState[_fieldKeys.FIELD_KEY_VALUE_ON_FOCUS]; }; exports.useFieldValueOnFocus = useFieldValueOnFocus;