simplify/deduplicate badge error logic
also correctly restore the real badge info when error is cleared
This commit is contained in:
parent
c60c764d34
commit
c00c748c1e
|
@ -67,13 +67,15 @@ const iconMan = (() => {
|
|||
refreshIconBadgeColor();
|
||||
setBadgeText({text});
|
||||
for (const tabId of tabMan.list()) {
|
||||
if (badgeOvr) {
|
||||
if (text) {
|
||||
setBadgeText({tabId, text});
|
||||
} else {
|
||||
refreshIconBadgeText(tabId);
|
||||
}
|
||||
}
|
||||
chrome.browserAction.setTitle({title});
|
||||
chrome.browserAction.setTitle({
|
||||
title: title && chrome.i18n.getMessage(title) || title || '',
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -209,22 +209,7 @@ const syncMan = (() => {
|
|||
|
||||
function emitStatusChange() {
|
||||
msg.broadcastExtension({method: 'syncStatusUpdate', status});
|
||||
|
||||
if (status.state !== STATES.connected || !lastError || isNetworkError(lastError)) {
|
||||
iconMan.overrideBadge({});
|
||||
} else if (isGrantError(lastError)) {
|
||||
iconMan.overrideBadge({
|
||||
text: 'x',
|
||||
color: '#F00',
|
||||
title: chrome.i18n.getMessage('syncErrorRelogin'),
|
||||
});
|
||||
} else {
|
||||
iconMan.overrideBadge({
|
||||
text: 'x',
|
||||
color: '#F00',
|
||||
title: chrome.i18n.getMessage('syncError'),
|
||||
});
|
||||
}
|
||||
iconMan.overrideBadge(getErrorBadge());
|
||||
}
|
||||
|
||||
function isNetworkError(err) {
|
||||
|
@ -237,6 +222,16 @@ const syncMan = (() => {
|
|||
return false;
|
||||
}
|
||||
|
||||
function getErrorBadge() {
|
||||
if (status.state === STATES.connected && lastError && !isNetworkError(lastError)) {
|
||||
return {
|
||||
text: 'x',
|
||||
color: '#F00',
|
||||
title: isGrantError(lastError) ? 'syncErrorRelogin' : 'syncError',
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function getDrive(name) {
|
||||
if (name === 'dropbox' || name === 'google' || name === 'onedrive') {
|
||||
return dbToCloud.drive[name]({
|
||||
|
|
Loading…
Reference in New Issue
Block a user