1
0
mirror of https://github.com/chinchang/web-maker.git synced 2025-05-16 15:19:46 +02:00

event fix and add once

This commit is contained in:
Kushagra Gour 2017-01-04 02:33:53 +05:30
parent 8e34f86cd2
commit 772847fc88
3 changed files with 35 additions and 8 deletions

View File

@ -10,7 +10,7 @@ window.trackEvent = function (category, action, label, value) {
}
}
// if online, load after 2 seconds
// if online, load after sometime
if (navigator.onLine && !window.DEBUG) {
/* eslint-disable */
@ -26,7 +26,7 @@ if (navigator.onLine && !window.DEBUG) {
// required for chrome extension protocol
ga('set', 'checkProtocolTask', function(){ /* nothing */ });
ga('send', 'pageview');
}, 0);
}, 100);
/* eslint-enable */
}

View File

@ -154,7 +154,6 @@ settingsBtn, onboardModal, notificationsBtn */
document.body.classList.add('layout-' + mode);
resetSplitting();
trackEvent('ui', 'toggleLayout', mode);
}
function onExternalLibChange() {
@ -365,6 +364,7 @@ settingsBtn, onboardModal, notificationsBtn */
addLibraryModal.classList.remove('is-modal-visible');
onboardModal.classList.remove('is-modal-visible');
toggleSavedItemsPane(false);
document.dispatchEvent( new Event('overlaysClosed'));
}
/**
@ -710,13 +710,21 @@ settingsBtn, onboardModal, notificationsBtn */
CodeMirror.modeURL = "lib/codemirror/mode/%N/%N.js";
layoutBtn1.addEventListener('click', function () { saveSetting('layoutMode', 1); toggleLayout(1); return false; });
layoutBtn2.addEventListener('click', function () { saveSetting('layoutMode', 2); toggleLayout(2); return false; });
layoutBtn3.addEventListener('click', function () { saveSetting('layoutMode', 3); toggleLayout(3); return false; });
function getToggleLayoutButtonListener(mode) {
return function () {
saveSetting('layoutMode', mode);
trackEvent('ui', 'toggleLayoutClick', mode);
toggleLayout(mode);
return false;
};
}
layoutBtn1.addEventListener('click', getToggleLayoutButtonListener(1));
layoutBtn2.addEventListener('click', getToggleLayoutButtonListener(2));
layoutBtn3.addEventListener('click', getToggleLayoutButtonListener(3));
utils.onButtonClick(helpBtn, function () {
helpModal.classList.toggle('is-modal-visible');
document.body.classList[onboardModal.classList.contains('is-modal-visible') ? 'add' : 'remove']('overlay-visible');
document.body.classList[helpModal.classList.contains('is-modal-visible') ? 'add' : 'remove']('overlay-visible');
trackEvent('ui', 'helpButtonClick');
});
utils.onButtonClick(addLibraryBtn, function () {
@ -938,6 +946,12 @@ settingsBtn, onboardModal, notificationsBtn */
if (!result.lastSeenVersion) {
onboardModal.classList.add('is-modal-visible');
trackEvent('ui', 'onboardModalSeen');
// set the current version as seen on closing the onboard modal
utils.once(document, 'overlaysClosed', function (e) {
chrome.storage.sync.set({
lastSeenVersion: version
}, function () {});
});
}
// console.utils.log(result, hasSeenNotifications, version);
if (!result.lastSeenVersion || utils.semverCompare(result.lastSeenVersion, version) === -1) {

View File

@ -98,12 +98,25 @@
return retVal;
}
// create a one-time event
function once(node, type, callback) {
// create event
node.addEventListener(type, function(e) {
// remove event
e.target.removeEventListener(type, arguments.callee);
// call handler
return callback(e);
});
}
window.utils = {
semverCompare: semverCompare,
generateRandomId: generateRandomId,
onButtonClick: onButtonClick,
addInfiniteLoopProtection: addInfiniteLoopProtection,
getHumanDate: getHumanDate,
log: log
log: log,
once: once
};
})();