fixed incorrect page navigation with up and down arrow on last item of dashboard repos (#34570)

Previously, pressing the down arrow key on the last item of a list would
incorrectly load the latest page when not release key. This commit
corrects the logic to ensure that the next page is loaded as intended.
This commit is contained in:
metiftikci 2025-06-03 20:55:09 +03:00 committed by GitHub
parent 4e471487fb
commit fe57ee3074
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -219,7 +219,9 @@ export default defineComponent({
this.searchRepos(); this.searchRepos();
}, },
changePage(page: number) { async changePage(page: number) {
if (this.isLoading) return;
this.page = page; this.page = page;
if (this.page > this.finalPage) { if (this.page > this.finalPage) {
this.page = this.finalPage; this.page = this.finalPage;
@ -229,7 +231,7 @@ export default defineComponent({
} }
this.repos = []; this.repos = [];
this.counts[`${this.reposFilter}:${this.archivedFilter}:${this.privateFilter}`] = 0; this.counts[`${this.reposFilter}:${this.archivedFilter}:${this.privateFilter}`] = 0;
this.searchRepos(); await this.searchRepos();
}, },
async searchRepos() { async searchRepos() {
@ -299,7 +301,7 @@ export default defineComponent({
return commitStatus[status].color; return commitStatus[status].color;
}, },
reposFilterKeyControl(e: KeyboardEvent) { async reposFilterKeyControl(e: KeyboardEvent) {
switch (e.key) { switch (e.key) {
case 'Enter': case 'Enter':
document.querySelector<HTMLAnchorElement>('.repo-owner-name-list li.active a')?.click(); document.querySelector<HTMLAnchorElement>('.repo-owner-name-list li.active a')?.click();
@ -308,7 +310,7 @@ export default defineComponent({
if (this.activeIndex > 0) { if (this.activeIndex > 0) {
this.activeIndex--; this.activeIndex--;
} else if (this.page > 1) { } else if (this.page > 1) {
this.changePage(this.page - 1); await this.changePage(this.page - 1);
this.activeIndex = this.searchLimit - 1; this.activeIndex = this.searchLimit - 1;
} }
break; break;
@ -317,17 +319,17 @@ export default defineComponent({
this.activeIndex++; this.activeIndex++;
} else if (this.page < this.finalPage) { } else if (this.page < this.finalPage) {
this.activeIndex = 0; this.activeIndex = 0;
this.changePage(this.page + 1); await this.changePage(this.page + 1);
} }
break; break;
case 'ArrowRight': case 'ArrowRight':
if (this.page < this.finalPage) { if (this.page < this.finalPage) {
this.changePage(this.page + 1); await this.changePage(this.page + 1);
} }
break; break;
case 'ArrowLeft': case 'ArrowLeft':
if (this.page > 1) { if (this.page > 1) {
this.changePage(this.page - 1); await this.changePage(this.page - 1);
} }
break; break;
} }