Skip to content

Commit 44dfdb3

Browse files
ActionList: getDirectionNext(): Return list's first/last elem if null is passed as item
1 parent 65b3b16 commit 44dfdb3

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

asset/js/widget/ActionList.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -269,22 +269,14 @@ define(["../notjQuery"], function ($) {
269269
let directionalNextItem = this.getDirectionalNext(lastActivatedItem, event.key);
270270

271271
if (activeItems.length === 0) {
272-
toActiveItem = pressedArrowDownKey ? firstListItem : lastListItem;
272+
toActiveItem = directionalNextItem;
273273
// reset all on manual page refresh
274274
this.clearSelection(activeItems);
275275
} else if (this.isMultiSelectable && event.shiftKey) {
276276
if (activeItems.length === 1) {
277277
toActiveItem = directionalNextItem;
278-
} else if (wasAllSelected && (
279-
(lastActivatedItem !== firstListItem && pressedArrowDownKey)
280-
|| (lastActivatedItem !== lastListItem && pressedArrowUpKey)
281-
)) {
282-
if (pressedArrowDownKey) {
283-
toActiveItem = lastActivatedItem === lastListItem ? null : lastListItem;
284-
} else {
285-
toActiveItem = lastActivatedItem === firstListItem ? null : lastListItem;
286-
}
287-
278+
} else if (wasAllSelected && (lastActivatedItem !== firstListItem && pressedArrowDownKey)) {
279+
toActiveItem = lastActivatedItem === lastListItem ? null : lastListItem;
288280
} else if (directionalNextItem && directionalNextItem.classList.contains('active')) {
289281
// deactivate last activated by down to up select
290282
this.clearSelection([lastActivatedItem]);
@@ -327,7 +319,15 @@ define(["../notjQuery"], function ($) {
327319
*/
328320
getDirectionalNext(item, eventKey) {
329321
if (! item) {
330-
return null;
322+
item = eventKey === 'ArrowUp' ? this.list.lastChild : this.list.firstChild;
323+
324+
if (! item) {
325+
return null;
326+
}
327+
328+
if (item.hasAttribute(this.removeBrackets(LIST_ITEM_IDENTIFIER))) {
329+
return item;
330+
}
331331
}
332332

333333
let nextItem = null;

0 commit comments

Comments
 (0)