From eb57e4f787d06648dab2c473830dcfbfa168e00c Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Thu, 28 Mar 2019 12:13:27 +0100 Subject: add analytic events for workspace actions --- src/components/layout/Sidebar.js | 4 +- .../workspaces/components/CreateWorkspaceForm.js | 6 +- .../workspaces/components/EditWorkspaceForm.js | 16 +- .../workspaces/components/WorkspaceDrawer.js | 13 +- .../workspaces/components/WorkspacesDashboard.js | 1 - src/features/workspaces/index.js | 2 + src/i18n/locales/defaultMessages.json | 272 ++++++++++----------- .../messages/src/components/layout/Sidebar.json | 24 +- .../workspaces/components/CreateWorkspaceForm.json | 8 +- .../workspaces/components/EditWorkspaceForm.json | 20 +- .../workspaces/components/WorkspaceDrawer.json | 12 +- src/i18n/messages/src/lib/Menu.json | 208 ++++++++-------- src/lib/Menu.js | 6 +- src/lib/analytics.js | 4 +- 14 files changed, 310 insertions(+), 286 deletions(-) (limited to 'src') diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js index f7bacfe0f..4fa5e79de 100644 --- a/src/components/layout/Sidebar.js +++ b/src/components/layout/Sidebar.js @@ -6,7 +6,8 @@ import { observer } from 'mobx-react'; import Tabbar from '../services/tabs/Tabbar'; import { ctrlKey } from '../../environment'; -import { workspaceStore } from '../../features/workspaces'; +import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../../features/workspaces'; +import { gaEvent } from '../../lib/analytics'; const messages = defineMessages({ settings: { @@ -95,6 +96,7 @@ export default @observer class Sidebar extends Component { onClick={() => { toggleWorkspaceDrawer(); this.updateToolTip(); + gaEvent(GA_CATEGORY_WORKSPACES, 'toggleDrawer', 'sidebar'); }} className={`sidebar__button sidebar__button--workspaces ${isWorkspaceDrawerOpen ? 'is-active' : ''}`} data-tip={`${intl.formatMessage(workspaceToggleMessage)} (${ctrlKey}+Shift+D)`} diff --git a/src/features/workspaces/components/CreateWorkspaceForm.js b/src/features/workspaces/components/CreateWorkspaceForm.js index 8b5039246..a8f07d0d5 100644 --- a/src/features/workspaces/components/CreateWorkspaceForm.js +++ b/src/features/workspaces/components/CreateWorkspaceForm.js @@ -6,6 +6,8 @@ import { Input, Button } from '@meetfranz/forms'; import injectSheet from 'react-jss'; import Form from '../../../lib/Form'; import { required } from '../../../helpers/validation-helpers'; +import { gaEvent } from '../../../lib/analytics'; +import { GA_CATEGORY_WORKSPACES } from '../index'; const messages = defineMessages({ submitButton: { @@ -63,7 +65,9 @@ class CreateWorkspaceForm extends Component { form.submit({ onSuccess: async (f) => { const { onSubmit } = this.props; - onSubmit(f.values()); + const values = f.values(); + onSubmit(values); + gaEvent(GA_CATEGORY_WORKSPACES, 'create', values.name); }, }); } diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js index a9fd4d21c..e4bf44248 100644 --- a/src/features/workspaces/components/EditWorkspaceForm.js +++ b/src/features/workspaces/components/EditWorkspaceForm.js @@ -12,6 +12,8 @@ import Form from '../../../lib/Form'; import { required } from '../../../helpers/validation-helpers'; import ServiceListItem from './ServiceListItem'; import Request from '../../../stores/lib/Request'; +import { gaEvent } from '../../../lib/analytics'; +import { GA_CATEGORY_WORKSPACES } from '../index'; const messages = defineMessages({ buttonDelete: { @@ -87,17 +89,24 @@ class EditWorkspaceForm extends Component { }); } - submitForm(form) { + save(form) { form.submit({ onSuccess: async (f) => { const { onSave } = this.props; const values = f.values(); onSave(values); + gaEvent(GA_CATEGORY_WORKSPACES, 'save'); }, onError: async () => {}, }); } + delete() { + const { onDelete } = this.props; + onDelete(); + gaEvent(GA_CATEGORY_WORKSPACES, 'delete'); + } + toggleService(service) { const servicesField = this.form.$('services'); const serviceIds = servicesField.value; @@ -113,7 +122,6 @@ class EditWorkspaceForm extends Component { const { intl } = this.context; const { classes, - onDelete, workspace, services, deleteWorkspaceRequest, @@ -161,7 +169,7 @@ class EditWorkspaceForm extends Component { buttonType={isDeleting ? 'secondary' : 'danger'} className="settings__delete-button" disabled={isDeleting} - onClick={onDelete} + onClick={this.delete.bind(this)} /> {/* ===== Save Button ===== */}