@@ -3,7 +3,6 @@ let startTimer = null;
3
3
4
4
// Ads
5
5
let hideLeftRail = true ;
6
- let hidePremiumAd = true ;
7
6
let hideTopIcons = true ;
8
7
let hideFirstemailAd = true ;
9
8
@@ -32,7 +31,6 @@ const start = async () => {
32
31
updatePremiumLogo ( ) ,
33
32
titleListener ( ) ,
34
33
cleanFirstmailAd ( ) ,
35
- cleanPremiumAd ( ) ,
36
34
cleanTopIcons ( ) ,
37
35
mailCalculator ( ) ,
38
36
selectAll ( ) ,
@@ -55,10 +53,6 @@ chrome.storage.onChanged.addListener(function (changes) {
55
53
hideLeftRail = changes . hideLeftRail . newValue ;
56
54
cleanLeftRail ( 0 ) ;
57
55
break ;
58
- case "hidePremiumAd" :
59
- hidePremiumAd = changes . hidePremiumAd . newValue ;
60
- cleanPremiumAd ( 0 ) ;
61
- break ;
62
56
case "hideTopIcons" :
63
57
hideTopIcons = changes . hideTopIcons . newValue ;
64
58
cleanTopIcons ( 0 ) ;
@@ -110,7 +104,6 @@ chrome.storage.onChanged.addListener(function (changes) {
110
104
const loadVariables = ( value ) => {
111
105
hideFirstemailAd = value . hideFirstemailAd === undefined ? hideFirstemailAd : value . hideFirstemailAd ;
112
106
hideLeftRail = value . hideLeftRail === undefined ? hideLeftRail : value . hideLeftRail ;
113
- hidePremiumAd = value . hidePremiumAd === undefined ? hidePremiumAd : value . hidePremiumAd ;
114
107
hideTopIcons = value . hideTopIcons === undefined ? hideTopIcons : value . hideTopIcons ;
115
108
premiumLogo = value . premiumLogo === undefined ? premiumLogo : value . premiumLogo ;
116
109
addNumberOfEmail = value . addNumberOfEmail === undefined ? addNumberOfEmail : value . addNumberOfEmail ;
@@ -127,7 +120,6 @@ const loadVariables = (value) => {
127
120
128
121
chrome . storage . local . set ( {
129
122
hideLeftRail,
130
- hidePremiumAd,
131
123
hideFirstemailAd,
132
124
hideTopIcons,
133
125
premiumLogo,
@@ -204,20 +196,40 @@ const updatePremiumLogo = (ms = 100) => {
204
196
}
205
197
206
198
const mailCalculator = ( ms = 150 ) => {
199
+ let counter = 0 ;
200
+
207
201
const findFolder = ( ) => {
208
202
const folderTitle = document . querySelector ( '.jXaVF' ) ;
209
- if ( folderTitle ) {
210
- const folderTitleText = folderTitle . innerText ;
211
- const firstMail = document . querySelector ( '.jGG6V' ) ;
212
- const numberOfEmails = firstMail ? firstMail . getAttribute ( 'aria-setsize' ) : 0 ;
213
- // const regex = /\s\(\d+ emails\)/; // Old Way
214
- const regex = new RegExp ( `\\s\\(${ numberOfEmails } ${ emailsText } \\)` ) ;
203
+ const folderTitleText = folderTitle . innerText ;
204
+ const emailsDetector = document . querySelectorAll ( '.jGG6V' ) ;
205
+ const emptyFolder = document . getElementById ( 'EmptyState_MainMessage' )
206
+
207
+ if ( folderTitle && ( emailsDetector . length > 1 ) ) {
208
+ const firstEmail = emailsDetector [ 0 ] . getAttribute ( 'aria-posinset' ) == 1 ? emailsDetector [ 0 ] : emailsDetector [ 1 ] ;
209
+
210
+ if ( firstEmail ) {
211
+ const numberOfEmails = firstEmail ? firstEmail . getAttribute ( 'aria-setsize' ) : 0 ;
212
+ // const regex = /\s\(\d+ emails\)/; // Old Way
213
+ const regex = new RegExp ( `\\s\\(${ numberOfEmails } ${ emailsText } \\)` ) ;
214
+
215
+ // Prevent duplication
216
+ if ( regex . test ( folderTitleText ) ) {
217
+ folderTitle . innerHTML = folderTitleText . replace ( regex , `<b class="mailColor" style="color: ${ numberOfEmailColor } ; display: ${ addNumberOfEmail ? 'inline' : 'none' } "> (${ numberOfEmails } ${ emailsText } )</b>` ) ;
218
+ } else {
219
+ folderTitle . innerHTML = `${ folderTitleText } <b class="mailColor" style="color: ${ numberOfEmailColor } ; display: ${ addNumberOfEmail ? 'inline' : 'none' } "> (${ numberOfEmails } ${ emailsText } )</b>` ;
220
+ }
221
+ clearInterval ( timer ) ;
222
+ }
223
+ }
224
+
225
+ if ( counter > 100 || emptyFolder ) {
226
+ const regex = new RegExp ( `\\s\\(${ 0 } ${ emailsText } \\)` ) ;
215
227
216
228
// Prevent duplication
217
229
if ( regex . test ( folderTitleText ) ) {
218
- folderTitle . innerHTML = folderTitleText . replace ( regex , `<b class="mailColor" style="color: ${ numberOfEmailColor } ; display: ${ addNumberOfEmail ? 'inline' : 'none' } "> (${ numberOfEmails } ${ emailsText } )</b>` ) ;
230
+ folderTitle . innerHTML = folderTitleText . replace ( regex , `<b class="mailColor" style="color: ${ numberOfEmailColor } ; display: ${ addNumberOfEmail ? 'inline' : 'none' } "> (${ 0 } ${ emailsText } )</b>` ) ;
219
231
} else {
220
- folderTitle . innerHTML = `${ folderTitleText } <b class="mailColor" style="color: ${ numberOfEmailColor } ; display: ${ addNumberOfEmail ? 'inline' : 'none' } "> (${ numberOfEmails } ${ emailsText } )</b>` ;
232
+ folderTitle . innerHTML = `${ folderTitleText } <b class="mailColor" style="color: ${ numberOfEmailColor } ; display: ${ addNumberOfEmail ? 'inline' : 'none' } "> (${ 0 } ${ emailsText } )</b>` ;
221
233
}
222
234
clearInterval ( timer ) ;
223
235
}
@@ -230,17 +242,6 @@ const cleanLeftRail = () => {
230
242
leftRail . style . display = hideLeftRail ? "none" : "block" ;
231
243
}
232
244
233
- const cleanPremiumAd = ( ms = 100 ) => {
234
- const findPremium = ( ) => {
235
- const premiumAd = document . querySelector ( ".Ogqyq" ) ;
236
- if ( premiumAd ) {
237
- premiumAd . style . display = hidePremiumAd ? "none" : "block" ;
238
- clearInterval ( timer ) ;
239
- }
240
- }
241
- const timer = setInterval ( findPremium , ms ) ;
242
- }
243
-
244
245
const alignFolderTitle = ( ms = 100 ) => {
245
246
const findFolderTitle = ( ) => {
246
247
const folderTitle = document . querySelector ( ".IG8s8" ) ;
0 commit comments