From 29687a748a698b7ca6d33b6314d67f650ef982be Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Fri, 15 Jun 2018 14:22:03 +0530 Subject: [PATCH] fire trackEvent fn for elements with event data- attrs --- webmaker/src/components/Footer.jsx | 17 +++++++++-------- webmaker/src/components/MainHeader.jsx | 14 ++++++++------ webmaker/src/components/common.jsx | 26 ++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 14 deletions(-) create mode 100644 webmaker/src/components/common.jsx diff --git a/webmaker/src/components/Footer.jsx b/webmaker/src/components/Footer.jsx index a699d1f..8c494cd 100644 --- a/webmaker/src/components/Footer.jsx +++ b/webmaker/src/components/Footer.jsx @@ -1,5 +1,6 @@ import { h, Component } from 'preact'; import Modal from './Modal.jsx'; +import { A } from './common'; export default class Footer extends Component { constructor(props) { @@ -136,7 +137,7 @@ export default class Footer extends Component { - - + ); } diff --git a/webmaker/src/components/MainHeader.jsx b/webmaker/src/components/MainHeader.jsx index fc2cd0d..a5d850f 100644 --- a/webmaker/src/components/MainHeader.jsx +++ b/webmaker/src/components/MainHeader.jsx @@ -1,4 +1,6 @@ import { h, Component } from 'preact'; +import { A } from './common'; + const DEFAULT_PROFILE_IMG = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='#ccc' d='M12,19.2C9.5,19.2 7.29,17.92 6,16C6.03,14 10,12.9 12,12.9C14,12.9 17.97,14 18,16C16.71,17.92 14.5,19.2 12,19.2M12,5A3,3 0 0,1 15,8A3,3 0 0,1 12,11A3,3 0 0,1 9,8A3,3 0 0,1 12,5M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z' /%3E%3C/svg%3E"; @@ -26,7 +28,7 @@ export default class Header extends Component { Run - {this.props.externalLibCount} - + Open - Login/Signup - - + - + ); diff --git a/webmaker/src/components/common.jsx b/webmaker/src/components/common.jsx new file mode 100644 index 0000000..7444088 --- /dev/null +++ b/webmaker/src/components/common.jsx @@ -0,0 +1,26 @@ +import { h, Component } from 'preact'; +import { log } from '../utils'; +import { trackEvent } from '../analytics'; + +class Clickable extends Component { + handleClick(e) { + const el = e.currentTarget; + trackEvent( + el.getAttribute('data-event-category'), + el.getAttribute('data-event-action') + ); + this.props.onClick(); + } + render() { + const { onClick, Tag, ...props } = this.props; + return ; + } +} + +export function A(props) { + return ; +} + +export function Button(props) { + return ; +}