UNPKG

@blockstack/ui

Version:

Blockstack UI components built using React and styled-components with styled-system.

53 lines (45 loc) 1.57 kB
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