Improve reimbursement lists #222

Merged
raucao merged 8 commits from feature/reimbursement-lists into master 2024-03-20 13:50:33 +00:00
4 changed files with 29 additions and 2 deletions
Showing only changes of commit 3ee140723c - Show all commits
@@ -1,10 +1,19 @@
import Component from '@glimmer/component';
galfert commented 2024-03-20 12:38:52 +00:00 (Migrated from github.com)
Review

✂️

✂️
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
import { inject as service } from '@ember/service';
import config from 'kredits-web/config/environment';
export default class ReimbursementItemComponent extends Component {
@service kredits;
@tracked showExpenseDetails = false;
constructor(owner, args) {
super(owner, args);
if (this.isUnconfirmed && !this.args.reimbursement.vetoed) {
this.showExpenseDetails = true;
}
}
get ipfsGatewayUrl () {
return config.ipfs.gatewayUrl;
@@ -22,6 +31,11 @@ export default class ReimbursementItemComponent extends Component {
return this.isUnconfirmed && this.kredits.currentUserIsCore;
}
@action
toggleExpenseDetails () {
this.showExpenseDetails = !this.showExpenseDetails;
}
@action
veto (id) {
this.kredits.vetoReimbursement(id).then(transaction => {
@@ -1,5 +1,6 @@
<li data-reimbursement-id={{@reimbursement.id}}
galfert commented 2024-03-20 12:36:11 +00:00 (Migrated from github.com)
Review

I'm guessing this is the offender why you had to disable the linter rule no-invalid-interactive.

Adding a role="button" to the list element should fix that.

<li data-reimbursement-id={{@reimbursement.id}}
    class="{{item-status @reimbursement}}"
    role="button"
    {{on "click" this.toggleExpenseDetails}}>
I'm guessing this is the offender why you had to disable the linter rule `no-invalid-interactive`. Adding a `role="button"` to the list element should fix that. ```suggestion <li data-reimbursement-id={{@reimbursement.id}} class="{{item-status @reimbursement}}" role="button" {{on "click" this.toggleExpenseDetails}}> ```
class="{{item-status @reimbursement}}">
class="{{item-status @reimbursement}}"
{{on "click" this.toggleExpenseDetails}}>
<p class="meta">
<span class="recipient">
<UserAvatar @contributor={{@reimbursement.contributor}} />
@@ -13,7 +14,9 @@
{{sats-to-btc @reimbursement.amount}}</span>&#8239;<span class="symbol">BTC</span>
</p>
{{#if this.showExpenseDetails}}
<ExpenseList @expenses={{@reimbursement.expenses}} />
{{/if}}
<div class="meta">
<p class="confirmation-eta">
@@ -1,4 +1,4 @@
<ul class="item-list spaced reimbursement-list {{if @loading 'loading'}}">
<ul class="item-list collapsible spaced reimbursement-list {{if @loading 'loading'}}">
{{#each this.itemsSorted as |item|}}
<ReimbursementItem @reimbursement={{item}} />
{{/each}}
+10
View File
@@ -16,6 +16,16 @@ ul.item-list {
}
}
&.collapsible {
> li {
border-left: 1px solid transparent;
&:hover {
border-left: 1px solid $blue;
}
}
}
&.loading {
@include loading-border-top;