mirror of
https://github.com/chinchang/web-maker.git
synced 2025-05-16 23:30:08 +02:00
event fix and add once
This commit is contained in:
parent
8e34f86cd2
commit
772847fc88
@ -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) {
|
if (navigator.onLine && !window.DEBUG) {
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ if (navigator.onLine && !window.DEBUG) {
|
|||||||
// required for chrome extension protocol
|
// required for chrome extension protocol
|
||||||
ga('set', 'checkProtocolTask', function(){ /* nothing */ });
|
ga('set', 'checkProtocolTask', function(){ /* nothing */ });
|
||||||
ga('send', 'pageview');
|
ga('send', 'pageview');
|
||||||
}, 0);
|
}, 100);
|
||||||
|
|
||||||
/* eslint-enable */
|
/* eslint-enable */
|
||||||
}
|
}
|
@ -154,7 +154,6 @@ settingsBtn, onboardModal, notificationsBtn */
|
|||||||
document.body.classList.add('layout-' + mode);
|
document.body.classList.add('layout-' + mode);
|
||||||
|
|
||||||
resetSplitting();
|
resetSplitting();
|
||||||
trackEvent('ui', 'toggleLayout', mode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function onExternalLibChange() {
|
function onExternalLibChange() {
|
||||||
@ -365,6 +364,7 @@ settingsBtn, onboardModal, notificationsBtn */
|
|||||||
addLibraryModal.classList.remove('is-modal-visible');
|
addLibraryModal.classList.remove('is-modal-visible');
|
||||||
onboardModal.classList.remove('is-modal-visible');
|
onboardModal.classList.remove('is-modal-visible');
|
||||||
toggleSavedItemsPane(false);
|
toggleSavedItemsPane(false);
|
||||||
|
document.dispatchEvent( new Event('overlaysClosed'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -710,13 +710,21 @@ settingsBtn, onboardModal, notificationsBtn */
|
|||||||
|
|
||||||
CodeMirror.modeURL = "lib/codemirror/mode/%N/%N.js";
|
CodeMirror.modeURL = "lib/codemirror/mode/%N/%N.js";
|
||||||
|
|
||||||
layoutBtn1.addEventListener('click', function () { saveSetting('layoutMode', 1); toggleLayout(1); return false; });
|
function getToggleLayoutButtonListener(mode) {
|
||||||
layoutBtn2.addEventListener('click', function () { saveSetting('layoutMode', 2); toggleLayout(2); return false; });
|
return function () {
|
||||||
layoutBtn3.addEventListener('click', function () { saveSetting('layoutMode', 3); toggleLayout(3); return false; });
|
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 () {
|
utils.onButtonClick(helpBtn, function () {
|
||||||
helpModal.classList.toggle('is-modal-visible');
|
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');
|
trackEvent('ui', 'helpButtonClick');
|
||||||
});
|
});
|
||||||
utils.onButtonClick(addLibraryBtn, function () {
|
utils.onButtonClick(addLibraryBtn, function () {
|
||||||
@ -938,6 +946,12 @@ settingsBtn, onboardModal, notificationsBtn */
|
|||||||
if (!result.lastSeenVersion) {
|
if (!result.lastSeenVersion) {
|
||||||
onboardModal.classList.add('is-modal-visible');
|
onboardModal.classList.add('is-modal-visible');
|
||||||
trackEvent('ui', 'onboardModalSeen');
|
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);
|
// console.utils.log(result, hasSeenNotifications, version);
|
||||||
if (!result.lastSeenVersion || utils.semverCompare(result.lastSeenVersion, version) === -1) {
|
if (!result.lastSeenVersion || utils.semverCompare(result.lastSeenVersion, version) === -1) {
|
||||||
|
15
src/utils.js
15
src/utils.js
@ -98,12 +98,25 @@
|
|||||||
return retVal;
|
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 = {
|
window.utils = {
|
||||||
semverCompare: semverCompare,
|
semverCompare: semverCompare,
|
||||||
generateRandomId: generateRandomId,
|
generateRandomId: generateRandomId,
|
||||||
onButtonClick: onButtonClick,
|
onButtonClick: onButtonClick,
|
||||||
addInfiniteLoopProtection: addInfiniteLoopProtection,
|
addInfiniteLoopProtection: addInfiniteLoopProtection,
|
||||||
getHumanDate: getHumanDate,
|
getHumanDate: getHumanDate,
|
||||||
log: log
|
log: log,
|
||||||
|
once: once
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user