@instructure/ui-react-utils
Version:
A React utility library made by Instructure Inc.
23 lines • 888 B
TypeScript
import { Attributes, FunctionComponentElement, ComponentElement, ReactElement, ReactNode, DOMElement } from 'react';
type GetProps<E extends ReactElement = ReactElement> = E extends FunctionComponentElement<infer P> | ComponentElement<infer P, any> | DOMElement<infer P, any> ? P & {
ref?: any;
} : Record<string, any> & {
ref?: any;
};
/**
* ---
* category: utilities/react
* ---
* Clones a React element without overwriting refs.
* @param element The element to clone
* @param props Props of the element
* @param children
*/
declare function safeCloneElement<E extends ReactElement = ReactElement, P extends GetProps<E> = GetProps<E>>(element: {
ref?: any;
} & E, props: {
style?: any;
} & Partial<Attributes> & Partial<P>, ...children: ReactNode[]): E;
export default safeCloneElement;
export { safeCloneElement };
//# sourceMappingURL=safeCloneElement.d.ts.map