'$refresh',
'transaction-saved' => '$refresh'
];
public array $sortBy = ['column' => 'date', 'direction' => 'desc'];
public array $headers;
// methods
public function goToHolding($holding)
{
return $this->redirect(route('holding.show', ['portfolio' => $holding['portfolio_id'], 'symbol' => $holding['symbol']]));
}
public function mount()
{
$this->headers = [
['key' => 'date', 'label' => __('Date'), 'sortable' => true],
['key' => 'portfolio_title', 'label' => __('Portfolio')],
['key' => 'symbol', 'label' => __('Symbol'), 'class' => ''],
['key' => 'market_data_name', 'label' => __('Name')],
['key' => 'transaction_type', 'label' => __('Type')],
['key' => 'split', 'label' => __('Split')],
['key' => 'quantity', 'label' => __('Quantity')],
['key' => 'cost_basis', 'label' => __('Cost Basis')],
['key' => 'gain_dollars', 'label' => __('Gain/Loss')],
];
}
public function transactions()
{
return auth()
->user()
->transactions()
->orderBy(...array_values($this->sortBy))
->paginate(10);
}
}; ?>
{ loadingId = $event.detail.id }, 200);
$wire.goToHolding($event.detail).then(() => {
clearTimeout(timeout);
loadingId = null;
})
"
:sort-by="$sortBy"
with-pagination
>
@scope('cell_symbol', $row)
{{ $row->symbol }}
@endscope
@scope('cell_date', $row)
{{ $row->date->format('M d, Y') }}
@endscope
@scope('cell_split', $row)
{{ $row->split ? __('Yes') : '' }}
@endscope
@scope('cell_transaction_type', $row)
@endscope
@scope('cell_cost_basis', $row)
{{ Number::currency($row->cost_basis ?? 0) }}
@endscope
@scope('cell_total_cost_basis', $row)
{{ Number::currency($row->total_cost_basis ?? 0) }}
@endscope
@scope('cell_gain_dollars', $row)
{{ Number::currency($row->gain_dollars ?? 0) }}
@endscope
@scope('cell_market_data_market_value', $row)
{{ Number::currency($row->market_data_market_value ?? 0) }}
@endscope
@scope('cell_total_market_value', $row)
{{ Number::currency($row->total_market_value ?? 0) }}
@endscope
@livewire('manage-transaction-form', [
'transaction' => $editingTransaction,
], key($editingTransaction->id ?? 'new'))