@blockstack/ui
Version:
Blockstack UI components built using React and styled-components with styled-system.
53 lines (45 loc) • 1.57 kB
JavaScript
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../_virtual/_rollupPluginBabelHelpers.js';
import React__default, { useContext, forwardRef, createContext } from 'react';
import { Box } from '../box/index.esm.js';
var FormControlContext = /*#__PURE__*/createContext({});
var useFormControlContext = function useFormControlContext() {
return useContext(FormControlContext);
};
var useFormControl = function useFormControl(props) {
var context = useFormControlContext();
if (!context) {
return props;
}
var keys = Object.keys(context);
return keys.reduce(function (acc, prop) {
acc[prop] = props[prop];
if (context) {
if (props[prop] == null) {
acc[prop] = context[prop];
}
}
return acc;
}, {});
};
var FormControl = /*#__PURE__*/forwardRef(function (_ref, ref) {
var isInvalid = _ref.isInvalid,
isRequired = _ref.isRequired,
isDisabled = _ref.isDisabled,
isReadOnly = _ref.isReadOnly,
rest = _objectWithoutPropertiesLoose(_ref, ["isInvalid", "isRequired", "isDisabled", "isReadOnly"]);
var context = {
isRequired: isRequired,
isDisabled: isDisabled,
isInvalid: isInvalid,
isReadOnly: isReadOnly
};
return React__default.createElement(FormControlContext.Provider, {
value: context
}, React__default.createElement(Box, Object.assign({
role: "group",
ref: ref
}, rest)));
});
FormControl.displayName = 'FormControl';
export { FormControl, useFormControl, useFormControlContext };
//# sourceMappingURL=index.esm.js.map