feat: update design of the accounting page (#209)
* feat: update design of the accounting page, fixed the worsed graphical offenders * chore: button alignment * chore: removed unused dependency * chore: buttons are underneath the action * feat: refactored the peers table to be in line with the new design * feat: add total uncashed amount and sorting for the peers * feat: action buttons are now properly aligned * chore: typo in comment
This commit is contained in:
+17
-5
@@ -6,6 +6,7 @@ import { Balance, Settlements, Settlement } from '../types'
|
||||
|
||||
interface UseAccountingHook {
|
||||
isLoadingUncashed: boolean
|
||||
totalUncashed: Token
|
||||
accounting: Accounting[] | null
|
||||
}
|
||||
|
||||
@@ -60,16 +61,21 @@ function mergeAccounting(
|
||||
}),
|
||||
)
|
||||
|
||||
// If there are no cheques (and hence last cashout actions), we don't need to sort and can return values right away
|
||||
if (!uncashedAmounts) return Object.values(accounting)
|
||||
// If there are no cheques (and hence last cashout actions)
|
||||
if (!uncashedAmounts) return Object.values(accounting).sort((a, b) => (a.peer < b.peer ? -1 : 1))
|
||||
|
||||
uncashedAmounts?.forEach(({ peer, uncashedAmount }) => {
|
||||
accounting[peer].uncashedAmount = new Token(uncashedAmount)
|
||||
})
|
||||
|
||||
return Object.values(accounting).sort((a, b) =>
|
||||
b.uncashedAmount.toBigNumber.minus(a.uncashedAmount.toBigNumber).toNumber(),
|
||||
)
|
||||
// Return sorted by the uncashed amount first and then by the peer id
|
||||
return Object.values(accounting).sort((a, b) => {
|
||||
const diff = b.uncashedAmount.toBigNumber.minus(a.uncashedAmount.toBigNumber).toNumber()
|
||||
|
||||
if (diff !== 0) return diff
|
||||
|
||||
return a.peer < b.peer ? -1 : 1
|
||||
})
|
||||
}
|
||||
|
||||
export const useAccounting = (
|
||||
@@ -98,8 +104,14 @@ export const useAccounting = (
|
||||
|
||||
const accounting = mergeAccounting(balances, settlements?.settlements, uncashedAmounts)
|
||||
|
||||
let totalUncashed: Token = new Token('0')
|
||||
accounting?.forEach(
|
||||
({ uncashedAmount }) => (totalUncashed = new Token(totalUncashed.toBigNumber.plus(uncashedAmount.toBigNumber))),
|
||||
)
|
||||
|
||||
return {
|
||||
isLoadingUncashed,
|
||||
totalUncashed,
|
||||
accounting,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user