diff --git a/src/Components/DraggableNode/DraggableNode.tsx b/src/Components/DraggableNode/DraggableNode.tsx new file mode 100644 index 0000000..0165f03 --- /dev/null +++ b/src/Components/DraggableNode/DraggableNode.tsx @@ -0,0 +1,25 @@ +import * as React from 'react'; + +interface OnClickProps { + onClick(event: React.MouseEvent): void; +} + +export class DraggableNode extends React.Component { + getModifiedChildrenWithAddedClickHandler(): React.ReactElement[] { + return React.Children.map(this.props.children, (eachChild) => { + // tslint:disable-next-line:no-console + return React.cloneElement( + eachChild as React.ReactElement, + { + onClick: function (event: React.MouseEvent) { + // tslint:disable-next-line:no-console + console.log(arguments); + } + }); + }); + } + + render() { + return this.getModifiedChildrenWithAddedClickHandler(); + } +} \ No newline at end of file diff --git a/src/Components/DraggableNode/index.ts b/src/Components/DraggableNode/index.ts new file mode 100644 index 0000000..2dd88b6 --- /dev/null +++ b/src/Components/DraggableNode/index.ts @@ -0,0 +1 @@ +export { DraggableNode } from './DraggableNode'; \ No newline at end of file