Skip to content

Commit cd0bede

Browse files
committed
add keepUnique method to mixpanel
1 parent c5d9847 commit cd0bede

1 file changed

Lines changed: 24 additions & 4 deletions

File tree

browser/main/lib/mixpanel.js

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,17 @@ function _keep (name, properties) {
4242
localStorage.setItem('events', JSON.stringify(events))
4343
}
4444

45+
function _keepUnique (name, properties) {
46+
let events = _fetch()
47+
properties.time = new Date()
48+
events = events.filter((event) => event.name !== name)
49+
events.push({
50+
name,
51+
properties
52+
})
53+
localStorage.setItem('events', JSON.stringify(events))
54+
}
55+
4556
function _flush () {
4657
let events = _fetch()
4758
let spliced = events.splice(0, 50)
@@ -79,10 +90,19 @@ function _flush () {
7990
setInterval(_flush, 1000 * 60 * 60)
8091

8192
function track (name, properties) {
82-
properties = Object.assign({}, properties, {
83-
distinct_id: _getClientKey()
84-
})
85-
_keep(name, properties)
93+
switch (name) {
94+
case 'MAIN_FOCUSED':
95+
properties = Object.assign({}, properties, {
96+
distinct_id: _getClientKey()
97+
})
98+
_keepUnique(name, properties)
99+
break
100+
default:
101+
properties = Object.assign({}, properties, {
102+
distinct_id: _getClientKey()
103+
})
104+
_keep(name, properties)
105+
}
86106
}
87107

88108
module.exports = {

0 commit comments

Comments
 (0)