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.
pull/34575/head^2
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
1 changed files with 9 additions and 7 deletions

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;
} }