utils.ts 579 B

123456789101112131415
  1. import React, { PropsWithChildren } from 'react'
  2. // React.addons.cloneWithProps look-alike that merges style & className.
  3. export function cloneElement(
  4. element: React.ReactElement<any>,
  5. props: PropsWithChildren<{ style?: React.CSSProperties; className?: string }>
  6. ): React.ReactElement<any> {
  7. if (props.style && element.props.style) {
  8. props.style = { ...element.props.style, ...props.style }
  9. }
  10. if (props.className && element.props.className) {
  11. props.className = `${element.props.className} ${props.className}`
  12. }
  13. return React.cloneElement(element, props)
  14. }