Skip to content

Commit 20f4001

Browse files
committed
refactor(defaultTheme): simplify script syntax
1 parent 9061b95 commit 20f4001

File tree

1 file changed

+21
-30
lines changed

1 file changed

+21
-30
lines changed

src/tpl/defaultTheme/frontend/index.js

Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,13 @@
1010
const classHeader = 'header';
1111

1212
const selectorIsNone = '.' + classNone;
13-
const selectorNotNone = ':not(' + selectorIsNone + ')';
13+
const selectorNotNone = `:not(${selectorIsNone})`;
1414
const selectorPathList = '.path-list';
1515
const selectorItemList = '.item-list';
16-
const selectorItem = 'li:not(.' + classHeader + '):not(.parent)';
16+
const selectorItem = `li:not(.${classHeader}):not(.parent)`;
1717
const selectorItemIsNone = selectorItem + selectorIsNone;
1818
const selectorItemNotNone = selectorItem + selectorNotNone;
1919

20-
const leavingEvent = typeof window.onpagehide !== strUndef ? 'pagehide' : 'beforeunload';
21-
2220
const Enter = 'Enter';
2321
const Escape = 'Escape';
2422
const Esc = 'Esc';
@@ -33,7 +31,7 @@
3331
let filteredText = '';
3432

3533
function matchFilter(input) {
36-
return input.toLowerCase().indexOf(filteredText) >= 0;
34+
return input.toLowerCase().includes(filteredText);
3735
}
3836

3937
let lastFocused;
@@ -47,8 +45,7 @@
4745
const input = filter.querySelector('input');
4846
if (!input) return;
4947

50-
let clear = filter.querySelector('button');
51-
if (!clear) clear = document.createElement('button');
48+
const clear = filter.querySelector('button') || document.createElement('button');
5249

5350
const itemList = document.querySelector(selectorItemList)
5451

@@ -62,18 +59,17 @@
6259
clear.style.display = 'block';
6360

6461
let selector
65-
if (filteringText.indexOf(filteredText) >= 0) { // increment search, find in visible items
62+
if (filteringText.includes(filteredText)) { // increment search, find in visible items
6663
selector = selectorItemNotNone;
67-
} else if (filteredText.indexOf(filteringText) >= 0) { // decrement search, find in hidden items
64+
} else if (filteredText.includes(filteringText)) { // decrement search, find in hidden items
6865
selector = selectorItemIsNone;
6966
} else {
7067
selector = selectorItem;
7168
}
7269
filteredText = filteringText;
7370

7471
items = itemList.querySelectorAll(selector);
75-
if (!items.forEach) items = Array.prototype.slice.call(items); // IE9+/ClassicEdge
76-
items.forEach(function (item) {
72+
items.forEach(item => {
7773
const name = item.querySelector('.name');
7874
if (matchFilter(name.textContent)) {
7975
if (selector !== selectorItemNotNone) {
@@ -90,10 +86,7 @@
9086
filteredText = '';
9187

9288
items = itemList.querySelectorAll(selectorItemIsNone);
93-
if (!items.forEach) items = Array.prototype.slice.call(items); // IE9+/ClassicEdge
94-
items.forEach(function (item) {
95-
item.classList.remove(classNone);
96-
});
89+
items.forEach(item => item.classList.remove(classNone));
9790
}
9891
};
9992

@@ -143,12 +136,11 @@
143136
sessionStorage.removeItem(location.pathname);
144137
}
145138

146-
window.addEventListener(leavingEvent, function () {
139+
window.addEventListener('pagehide', function () {
147140
if (input.value) {
148141
sessionStorage.setItem(location.pathname, input.value);
149142
}
150143
});
151-
152144
}
153145
if (input.value) {
154146
doFilter();
@@ -266,7 +258,7 @@
266258
}
267259

268260
function getFirstFocusableSibling(container) {
269-
const a = container.querySelector('li:not(.' + classNone + '):not(.' + classHeader + ') a');
261+
const a = container.querySelector(`li:not(.${classNone}):not(.${classHeader}) a`);
270262
return a;
271263
}
272264

@@ -317,7 +309,7 @@
317309
const SKIP_TAGS = ['INPUT', 'BUTTON', 'TEXTAREA'];
318310

319311
const PLATFORM = navigator.platform || navigator.userAgent;
320-
const IS_MAC_PLATFORM = PLATFORM.indexOf('Mac') >= 0 || PLATFORM.indexOf('iPhone') >= 0 || PLATFORM.indexOf('iPad') >= 0 || PLATFORM.indexOf('iPod') >= 0
312+
const IS_MAC_PLATFORM = PLATFORM.includes('Mac') || PLATFORM.includes('iPhone') || PLATFORM.includes('iPad') || PLATFORM.includes('iPod')
321313

322314
let lookupKey;
323315
let lookupBuffer;
@@ -380,7 +372,7 @@
380372
}
381373

382374
function getFocusItemByKeyPress(e) {
383-
if (SKIP_TAGS.indexOf(e.target.tagName) >= 0) {
375+
if (SKIP_TAGS.includes(e.target.tagName)) {
384376
return;
385377
}
386378

@@ -598,7 +590,6 @@
598590
}
599591

600592
function enableFileDirModeSwitch() {
601-
const classHidden = 'hidden';
602593
const classActive = 'active';
603594

604595
function onClickOpt(optTarget, clearInput) {
@@ -669,10 +660,10 @@
669660
return;
670661
}
671662

672-
const nodir = Array.prototype.slice.call(files).every(function (file) {
673-
return file.webkitRelativePath.indexOf('/') < 0;
674-
});
675-
if (nodir) {
663+
const noDir = Array.prototype.slice.call(files).every(file =>
664+
file.webkitRelativePath.includes('/')
665+
);
666+
if (noDir) {
676667
onClickOptFile(); // prevent clear input files
677668
}
678669
});
@@ -699,7 +690,7 @@
699690
sessionStorage.removeItem(uploadTypeField);
700691
}
701692

702-
window.addEventListener(leavingEvent, function () {
693+
window.addEventListener('pagehide', function () {
703694
const activeUploadType = fileInput.name;
704695
if (activeUploadType !== file) {
705696
sessionStorage.setItem(uploadTypeField, activeUploadType)
@@ -923,7 +914,7 @@
923914
const tagName = e.target.tagName;
924915
if (tagName === 'TEXTAREA') {
925916
return;
926-
} else if (tagName === 'INPUT' && nonTextInputTypes.indexOf(e.target.type) < 0) {
917+
} else if (tagName === 'INPUT' && !nonTextInputTypes.includes(e.target.type)) {
927918
return;
928919
}
929920

@@ -967,11 +958,11 @@
967958
});
968959
}
969960

970-
const modes = enableFileDirModeSwitch();
961+
const {switchToFileMode, switchToDirMode} = enableFileDirModeSwitch();
971962
const uploadProgressively = enableUploadProgress();
972963
enableFormUploadProgress(uploadProgressively);
973-
enableDndUploadProgress(uploadProgressively, modes.switchToFileMode, modes.switchToDirMode);
974-
enablePasteUploadProgress(uploadProgressively, modes.switchToFileMode, modes.switchToDirMode);
964+
enableDndUploadProgress(uploadProgressively, switchToFileMode, switchToDirMode);
965+
enablePasteUploadProgress(uploadProgressively, switchToFileMode, switchToDirMode);
975966
}
976967

977968
function enableNonRefreshDelete() {

0 commit comments

Comments
 (0)