Skip to content

Commit 007e183

Browse files
committed
refactor(defaultTheme): refine enableKeyboardNavigate()
1 parent 1cd1fc9 commit 007e183

File tree

1 file changed

+5
-16
lines changed

1 file changed

+5
-16
lines changed

src/tpl/defaultTheme/frontend/index.js

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -239,10 +239,7 @@
239239
if (!startA) {
240240
startA = container.querySelector(':focus');
241241
}
242-
var startLI = startA;
243-
while (startLI && startLI.tagName !== 'LI') {
244-
startLI = startLI.parentElement;
245-
}
242+
var startLI = startA && startA.closest('li');
246243
if (!startLI) {
247244
if (isBackward) {
248245
startLI = container.firstElementChild;
@@ -257,15 +254,9 @@
257254
var siblingLI = startLI;
258255
do {
259256
if (isBackward) {
260-
siblingLI = siblingLI.previousElementSibling;
261-
if (!siblingLI) {
262-
siblingLI = container.lastElementChild;
263-
}
257+
siblingLI = siblingLI.previousElementSibling || container.lastElementChild;
264258
} else {
265-
siblingLI = siblingLI.nextElementSibling;
266-
if (!siblingLI) {
267-
siblingLI = container.firstElementChild;
268-
}
259+
siblingLI = siblingLI.nextElementSibling || container.firstElementChild;
269260
}
270261
} while (siblingLI !== startLI && (
271262
siblingLI.classList.contains(classNone) ||
@@ -290,8 +281,7 @@
290281
}
291282

292283
function getMatchedFocusableSibling(container, isBackward, startA, buf) {
293-
var skipRound = buf.length === 1; // find next prefix
294-
var matchKeyA;
284+
var skipRound = buf.length === 1; // find next single-char prefix
295285
var firstCheckA;
296286
var secondCheckA;
297287
var a = startA;
@@ -317,11 +307,10 @@
317307
}
318308

319309
var textContent = (a.querySelector('.name') || a).textContent.toLowerCase();
320-
if (buf.length <= textContent.length && textContent.substring(0, buf.length) === buf) {
310+
if (textContent.startsWith(buf)) {
321311
return a;
322312
}
323313
} while (a = getFocusableSibling(container, isBackward, a));
324-
return matchKeyA;
325314
}
326315

327316
var ARROW_UP = 'ArrowUp';

0 commit comments

Comments
 (0)