diff --git a/browser/lib/Mutable.js b/browser/lib/Mutable.js index c7aa213d..bcf39275 100644 --- a/browser/lib/Mutable.js +++ b/browser/lib/Mutable.js @@ -1,6 +1,12 @@ class MutableMap { constructor (iterable) { this._map = new Map(iterable) + Object.defineProperty(this, 'size', { + get: () => this._map.size, + set: function (value) { + this['size'] = value + } + }) } get (...args) { @@ -54,6 +60,12 @@ class MutableMap { class MutableSet { constructor (iterable) { this._set = new Set(iterable) + Object.defineProperty(this, 'size', { + get: () => this._map.size, + set: function (value) { + this['size'] = value + } + }) } add (...args) { diff --git a/browser/main/lib/mixpanel.js b/browser/main/lib/mixpanel.js index 3fe157d4..5fd54b90 100644 --- a/browser/main/lib/mixpanel.js +++ b/browser/main/lib/mixpanel.js @@ -1,8 +1,11 @@ +import store from 'browser/main/store' + const _ = require('lodash') const keygen = require('browser/lib/keygen') const Mixpanel = require('mixpanel') const mixpanel = Mixpanel.init('7a0aca437d72dfd07cbcbf58d3b61f27', {key: 'fde4fd23f4d550f1b646bcd7d4374b1f'}) const moment = require('moment') +const electron = require('electron') function _getClientKey () { let clientKey = localStorage.getItem('clientKey') @@ -84,6 +87,13 @@ function _flush () { _flush() } }) + + let state = store.getState() + mixpanel.people.set(_getClientKey(), { + storage_count: state.data.storageMap.size, + note_count: state.data.noteMap.size, + version: electron.remote.app.getVersion() + }) } }