Only show top 10 contributors by default

Don't waste so much screen real estate. Add button to show all to the
end of the toplist.
This commit is contained in:
2025-02-16 14:21:51 +04:00
parent 636c79ecc7
commit 14da36b806
2 changed files with 39 additions and 3 deletions
+30 -1
View File
@@ -1,14 +1,43 @@
import Component from '@glimmer/component'; import Component from '@glimmer/component';
import { action } from '@ember/object'; import { action } from '@ember/object';
import { inject as service } from '@ember/service'; import { inject as service } from '@ember/service';
import { tracked } from '@glimmer/tracking';
export default class ContributorComponent extends Component { export default class ContributorComponent extends Component {
@service router; @service router;
selectedContributorId = null; @tracked selectedContributorId = null;
@tracked showToplistOnly = true;
get contributorList () {
return this.args.contributorList;
}
get contributorTop10 () {
return this.contributorList ?
this.contributorList.slice(0, 10) : [];
}
get contributors () {
return this.showToplistOnly ?
this.contributorTop10 : this.contributorList;
}
get hiddenContributorsAmount () {
return this.contributorList.length - 10;
}
get showAllButtonText () {
return `Show ${this.hiddenContributorsAmount} more contributors`;
}
@action @action
openContributorDetails (contributor) { openContributorDetails (contributor) {
this.router.transitionTo('dashboard.contributors.show', contributor); this.router.transitionTo('dashboard.contributors.show', contributor);
} }
@action
showAllContributors () {
this.showToplistOnly = false;
}
} }
+8 -1
View File
@@ -2,7 +2,7 @@
<thead> <thead>
</thead> </thead>
<tbody> <tbody>
{{#each @contributorList as |c|}} {{#each this.contributors as |c|}}
<tr role="button" <tr role="button"
onclick={{action "openContributorDetails" c.contributor}} onclick={{action "openContributorDetails" c.contributor}}
class="{{if (is-current-user c.contributor) "current-user"}} {{if (eq c.contributor.id @selectedContributorId) "selected"}}"> class="{{if (is-current-user c.contributor) "current-user"}} {{if (eq c.contributor.id @selectedContributorId) "selected"}}">
@@ -21,5 +21,12 @@
</td> </td>
</tr> </tr>
{{/each}} {{/each}}
{{#if this.showToplistOnly}}
<tr role="button" onclick={{action "showAllContributors"}}>
<td colspan="2">
{{this.showAllButtonText}}
</td>
</tr>
{{/if}}
</tbody> </tbody>
</table> </table>