aboutsummaryrefslogtreecommitdiffhomepage
path: root/ui/static/js/app.js
diff options
context:
space:
mode:
authorGravatar Richard Schneider <richard@schneiderbox.net>2020-01-08 15:52:36 -0600
committerGravatar Frédéric Guillot <fred@miniflux.net>2020-01-10 19:26:45 -0800
commit1a78e3a5bc5edd644b99a958efc91e9cd05b1078 (patch)
treec65a6dcc4651a1c2d89be376182cccd1084f2457 /ui/static/js/app.js
parent86e71c48f50cd85d85ae58b0c45385b7ca7a542e (diff)
Wrap around when navigating with keyboard shortcuts on a list view
Diffstat (limited to 'ui/static/js/app.js')
-rw-r--r--ui/static/js/app.js25
1 files changed, 17 insertions, 8 deletions
diff --git a/ui/static/js/app.js b/ui/static/js/app.js
index 968045e..6164800 100644
--- a/ui/static/js/app.js
+++ b/ui/static/js/app.js
@@ -404,25 +404,29 @@ function goToPreviousListItem() {
if (items[i].classList.contains("current-item")) {
items[i].classList.remove("current-item");
+ let nextItem;
if (i - 1 >= 0) {
- items[i - 1].classList.add("current-item");
- DomHelper.scrollPageTo(items[i - 1]);
- items[i - 1].querySelector('.item-header a').focus();
+ nextItem = items[i - 1];
+ } else {
+ nextItem = items[items.length - 1];
}
+ nextItem.classList.add("current-item");
+ DomHelper.scrollPageTo(nextItem);
+ nextItem.querySelector('.item-header a').focus();
+
break;
}
}
}
function goToNextListItem() {
- let currentItem = document.querySelector(".current-item");
let items = DomHelper.getVisibleElements(".items .item");
if (items.length === 0) {
return;
}
- if (currentItem === null) {
+ if (document.querySelector(".current-item") === null) {
items[0].classList.add("current-item");
items[0].querySelector('.item-header a').focus();
return;
@@ -432,12 +436,17 @@ function goToNextListItem() {
if (items[i].classList.contains("current-item")) {
items[i].classList.remove("current-item");
+ let nextItem;
if (i + 1 < items.length) {
- items[i + 1].classList.add("current-item");
- DomHelper.scrollPageTo(items[i + 1]);
- items[i + 1].querySelector('.item-header a').focus();
+ nextItem = items[i + 1];
+ } else {
+ nextItem = items[0];
}
+ nextItem.classList.add("current-item");
+ DomHelper.scrollPageTo(nextItem);
+ nextItem.querySelector('.item-header a').focus();
+
break;
}
}