fannypack-v5
Version:
An accessible, composable, and friendly React UI Kit
38 lines (30 loc) • 1.1 kB
JavaScript
import { forwardRef, memo, createElement } from 'react';
import '../Provider/ThemeContext.js';
import 'classnames';
import 'emotion';
import '@emotion/core';
import 'emotion-theming';
import '@emotion/styled';
import './useTheme.js';
import { _ as _objectSpread2 } from '../chunk-0c448560.js';
import './get.js';
import './useLocalStorage.js';
import '../Provider/ColorModeContext.js';
import './useColorMode.js';
import './omitBy.js';
import { useDefaultProps } from './useDefaultProps.js';
function createComponent(Component, config) {
var Comp = function Comp(props, ref) {
var _useDefaultProps = useDefaultProps(props, config),
newProps = _useDefaultProps.props; // @ts-ignore
return createElement(Component, _objectSpread2(_objectSpread2({}, newProps), {}, {
elementRef: ref
}), props === null || props === void 0 ? void 0 : props.children);
};
var ForwardedComponent = forwardRef(Comp);
if (config.shouldMemo) {
ForwardedComponent = memo(ForwardedComponent);
}
return Object.assign(ForwardedComponent, config.attach);
}
export { createComponent };