UNPKG

@bluecateng/auto-forms

Version:
26 lines 769 B
import { useMemo } from 'react'; import PropTypes from 'prop-types'; import useFormField from './useFormField'; import { jsx as _jsx } from "react/jsx-runtime"; export default ((Component, mapState) => { const Wrapper = ({ name, ...props }) => { const state = useFormField(name); const newProps = { name, ...props, ...mapState(state) }; // eslint-disable-next-line react-hooks/exhaustive-deps -- the values array contains the actual dependencies return useMemo(() => /*#__PURE__*/_jsx(Component, { ...newProps }), Object.values(newProps)); }; Wrapper.displayName = `Form(${Component.displayName || Component.name})`; Wrapper.propTypes = { name: PropTypes.string.isRequired }; return Wrapper; });