Skip to content

Commit 3468990

Browse files
committed
refactor(defaultTheme): remove shim method hasClass()/addClass/removeClass()
1 parent 4bfc927 commit 3468990

File tree

1 file changed

+19
-55
lines changed

1 file changed

+19
-55
lines changed

src/tpl/defaultTheme/frontend/index.js

Lines changed: 19 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -30,42 +30,6 @@
3030
logError = noop;
3131
}
3232

33-
var hasClass, addClass, removeClass;
34-
if (document.body.classList) {
35-
hasClass = function (el, className) {
36-
return el && el.classList.contains(className);
37-
}
38-
addClass = function (el, className) {
39-
el && el.classList.add(className);
40-
}
41-
removeClass = function (el, className) {
42-
el && el.classList.remove(className);
43-
}
44-
} else {
45-
hasClass = function (el, className) {
46-
if (!el) return;
47-
var reClassName = new RegExp('\\b' + className + '\\b');
48-
return reClassName.test(el.className);
49-
}
50-
addClass = function (el, className) {
51-
if (!el) return;
52-
var originalClassName = el.className;
53-
var reClassName = new RegExp('\\b' + className + '\\b');
54-
if (!reClassName.test(originalClassName)) {
55-
el.className = originalClassName + ' ' + className;
56-
}
57-
}
58-
removeClass = function (el, className) {
59-
if (!el) return;
60-
var originalClassName = el.className;
61-
var reClassName = new RegExp('^\\s*' + className + '\\s+|\\s+' + className + '\\b', 'g');
62-
var newClassName = originalClassName.replace(reClassName, '');
63-
if (originalClassName !== newClassName) {
64-
el.className = newClassName;
65-
}
66-
}
67-
}
68-
6933
var hasStorage = false;
7034
try {
7135
if (typeof sessionStorage !== strUndef) hasStorage = true;
@@ -127,7 +91,7 @@
12791
selector = selectorItemNone;
12892
items = document.body.querySelectorAll(selector);
12993
for (i = items.length - 1; i >= 0; i--) {
130-
removeClass(items[i], classNone);
94+
items[i].classList.remove(classNone);
13195
}
13296
} else {
13397
if (clear) {
@@ -146,9 +110,9 @@
146110
var item = items[i];
147111
var name = item.querySelector('.name');
148112
if (name && name.textContent.toLowerCase().indexOf(filterText) < 0) {
149-
addClass(item, classNone);
113+
item.classList.add(classNone);
150114
} else {
151-
removeClass(item, classNone);
115+
item.classList.remove(classNone);
152116
}
153117
}
154118
}
@@ -356,8 +320,8 @@
356320
}
357321
}
358322
} while (siblingLI !== startLI && (
359-
hasClass(siblingLI, classNone) ||
360-
hasClass(siblingLI, classHeader)
323+
siblingLI.classList.contains(classNone) ||
324+
siblingLI.classList.contains(classHeader)
361325
));
362326

363327
if (siblingLI) {
@@ -819,10 +783,10 @@
819783
if (optTarget === optActive) {
820784
return;
821785
}
822-
removeClass(optActive, classActive);
786+
optActive.classList.remove(classActive);
823787

824788
optActive = optTarget;
825-
addClass(optActive, classActive);
789+
optActive.classList.add(classActive);
826790

827791
if (clearInput) {
828792
fileInput.value = '';
@@ -869,11 +833,11 @@
869833
}
870834

871835
if (typeof fileInput.webkitdirectory === strUndef) {
872-
addClass(uploadType, classNone);
836+
uploadType.classList.add(classNone);
873837
return;
874838
}
875-
optDirFile && removeClass(optDirFile, classHidden);
876-
optInnerDirFile && removeClass(optInnerDirFile, classHidden);
839+
optDirFile && optDirFile.classList.remove(classHidden);
840+
optInnerDirFile && optInnerDirFile.classList.remove(classHidden);
877841

878842
if (optFile) {
879843
optFile.addEventListener('click', onClickOptFile);
@@ -972,13 +936,13 @@
972936
return uploadBatch(batches.shift()); // use "return" for tail call optimize
973937
} else {
974938
uploading = false;
975-
removeClass(elUploadStatus, classUploading);
939+
elUploadStatus.classList.remove(classUploading);
976940
}
977941
}
978942

979943
function onFail(e) {
980-
removeClass(elUploadStatus, classUploading);
981-
addClass(elUploadStatus, classFailed);
944+
elUploadStatus.classList.remove(classUploading);
945+
elUploadStatus.classList.add(classFailed);
982946
if (elFailedMessage) {
983947
elFailedMessage.textContent = " - " + e.type;
984948
}
@@ -1010,8 +974,8 @@
1010974
batches.push(files);
1011975
} else {
1012976
uploading = true;
1013-
removeClass(elUploadStatus, classFailed);
1014-
addClass(elUploadStatus, classUploading);
977+
elUploadStatus.classList.remove(classFailed);
978+
elUploadStatus.classList.add(classUploading);
1015979
uploadBatch(files);
1016980
}
1017981
}
@@ -1085,20 +1049,20 @@
10851049
if (!isSelfDragging) {
10861050
e.stopPropagation();
10871051
e.preventDefault();
1088-
addClass(e.currentTarget, classDragging);
1052+
e.currentTarget.classList.add(classDragging);
10891053
}
10901054
}
10911055

10921056
function onDragLeave(e) {
10931057
if (e.target === e.currentTarget) {
1094-
removeClass(e.currentTarget, classDragging);
1058+
e.currentTarget.classList.remove(classDragging);
10951059
}
10961060
}
10971061

10981062
function onDrop(e) {
10991063
e.stopPropagation();
11001064
e.preventDefault();
1101-
removeClass(e.currentTarget, classDragging);
1065+
e.currentTarget.classList.remove(classDragging);
11021066
fileInput.value = '';
11031067

11041068
if (!e.dataTransfer || !e.dataTransfer.files || !e.dataTransfer.files.length) {
@@ -1292,7 +1256,7 @@
12921256
if (!itemList || !itemList.addEventListener) {
12931257
return;
12941258
}
1295-
if (!hasClass(itemList, 'has-deletable')) return;
1259+
if (!itemList.classList.contains('has-deletable')) return;
12961260

12971261
itemList.addEventListener('submit', function (e) {
12981262
if (e.defaultPrevented) {

0 commit comments

Comments
 (0)