Introducing the folowing to avoid undefined TypeError in react causes a weird bug

Your {} doesn't make sense where it is.

return amountByCurrency.find(acct => acct.id === currentAccountId || {}).assets;

The callback is:

acct => acct.id === currentAccountId || {}

So, with the first element of the array, either acct.id === currentAccountId is fulfilled, and the callback returns true, or it falls back to {}, and objects are truthy, so the callback returns - and the first element of the array is the resulting "found" item.

If no items exist in the array, an error will be thrown, because there's nothing to iterate over. The empty object in the callback doesn't do anything other than break the .find logic.

You should instead do something like

filterCurrencyBalances() {
    const { amountByCurrency, amountByAsset, currentAccountId } = this.props;
    if (currentAccountId) {
        const foundAcct = amountByCurrency.find(acct => acct.id === currentAccountId);
        return foundAcct ? foundAcct.assets : 0; // replace 0 with the desired default balance for no account
    }
    return amountByAsset;
}