react-bfm
Version:
A basic field / form manager for React using hooks
67 lines (66 loc) • 3.37 kB
JavaScript
;
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;