create-factory.mjs 941 B

1234567891011121314151617181920212223
  1. import { createRendererMotionComponent } from '../../motion/index.mjs';
  2. import { createUseRender } from '../dom/use-render.mjs';
  3. import { isSVGComponent } from '../dom/utils/is-svg-component.mjs';
  4. import { htmlMotionConfig } from '../html/config-motion.mjs';
  5. import { svgMotionConfig } from '../svg/config-motion.mjs';
  6. function createMotionComponentFactory(preloadedFeatures, createVisualElement) {
  7. return function createMotionComponent(Component, { forwardMotionProps } = { forwardMotionProps: false }) {
  8. const baseConfig = isSVGComponent(Component)
  9. ? svgMotionConfig
  10. : htmlMotionConfig;
  11. const config = {
  12. ...baseConfig,
  13. preloadedFeatures,
  14. useRender: createUseRender(forwardMotionProps),
  15. createVisualElement,
  16. Component,
  17. };
  18. return createRendererMotionComponent(config);
  19. };
  20. }
  21. export { createMotionComponentFactory };