From c6032c5b66be97917562dbb93ce752d445cf8fdc Mon Sep 17 00:00:00 2001 From: hackerESQ Date: Sun, 28 Sep 2025 21:13:52 -0500 Subject: [PATCH] cleanup --- app/Livewire/Datatables/HoldingsTable.php | 79 ++++++++++--------- app/Livewire/Datatables/TransactionsTable.php | 72 +++++++++-------- app/Traits/Toast.php | 3 - composer.json | 2 +- composer.lock | 12 +-- docker/entrypoint.sh | 2 +- resources/views/components/ui/toast.blade.php | 4 +- 7 files changed, 88 insertions(+), 86 deletions(-) diff --git a/app/Livewire/Datatables/HoldingsTable.php b/app/Livewire/Datatables/HoldingsTable.php index 70359ea..5ab393e 100644 --- a/app/Livewire/Datatables/HoldingsTable.php +++ b/app/Livewire/Datatables/HoldingsTable.php @@ -1,25 +1,28 @@ portfolio($this->portfolio->id) ->with(['market_data']) @@ -34,65 +37,65 @@ class HoldingsTable extends DataTableComponent $this->hiddenColumns = ['name', 'average_cost_basis', 'market_value', 'fifty_two_week_low', 'fifty_two_week_high']; $this->setTableWrapperAttributes([ - 'default' => false, + 'default' => false, 'default-styling' => false, 'default-colors' => false, - 'class' => 'overflow-scroll' - ]); + 'class' => 'overflow-scroll', + ]); $this->setTableAttributes([ - 'default' => false, + 'default' => false, 'default-styling' => false, 'default-colors' => false, 'class' => 'table', ]); $this->setTheadAttributes([ - 'default' => false, + 'default' => false, 'default-styling' => true, 'default-colors' => false, ]); - $this->setThAttributes(function(Column $column) { + $this->setThAttributes(function (Column $column) { $attributes = [ 'default' => false, 'default-styling' => false, 'default-colors' => false, - 'class' => 'text-xs font-medium whitespace-nowrap uppercase tracking-wider text-nowrap' + 'class' => 'text-xs font-medium whitespace-nowrap uppercase tracking-wider text-nowrap', ]; if (in_array($column->getField(), $this->hiddenColumns)) { - $attributes['class'] = $attributes['class'] . ' hidden md:table-cell'; + $attributes['class'] = $attributes['class'].' hidden md:table-cell'; } return $attributes; }); - $this->setThSortButtonAttributes(fn() => [ + $this->setThSortButtonAttributes(fn () => [ 'default' => false, 'default-styling' => true, 'default-colors' => false, - 'class' => 'cursor-pointer' + 'class' => 'cursor-pointer', ]); $this->setTbodyAttributes([ - 'default' => false, - 'default-styling' => true, - 'default-colors' => false, - ]); - $this->setTrAttributes(fn() => [ 'default' => false, 'default-styling' => true, 'default-colors' => false, - 'class' => 'cursor-pointer hover:bg-neutral/25' ]); - $this->setTdAttributes(function(Column $column) { - + $this->setTrAttributes(fn () => [ + 'default' => false, + 'default-styling' => true, + 'default-colors' => false, + 'class' => 'cursor-pointer hover:bg-neutral/25', + ]); + $this->setTdAttributes(function (Column $column) { + $attributes = [ 'default' => false, 'default-styling' => false, 'default-colors' => false, - 'class' => 'text-nowrap' + 'class' => 'text-nowrap', ]; if (in_array($column->getField(), $this->hiddenColumns)) { - $attributes['class'] = $attributes['class'] . ' hidden md:table-cell'; + $attributes['class'] = $attributes['class'].' hidden md:table-cell'; } return $attributes; @@ -107,11 +110,11 @@ class HoldingsTable extends DataTableComponent $this->setPrimaryKey('id'); - $this->setTableRowUrl(function($row) { + $this->setTableRowUrl(function ($row) { return route('holding.show', ['portfolio' => $row->portfolio_id, 'symbol' => $row->symbol]); - - })->setTableRowUrlTarget(function($row) { - + + })->setTableRowUrlTarget(function ($row) { + return 'navigate'; }); } @@ -127,19 +130,19 @@ class HoldingsTable extends DataTableComponent ->sortable(), Column::make(__('Average Cost Basis'), 'average_cost_basis') ->sortable() - ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency) ), + ->format(fn ($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency)), Column::make(__('Total Cost Basis'), 'total_cost_basis') ->sortable() - ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency) ), + ->format(fn ($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency)), Column::make(__('Market Value'), 'market_data.market_value') ->sortable() - ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency) ), + ->format(fn ($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency)), Column::make(__('Total Market Value')) ->sortable(fn (Builder $query, string $direction) => $query->orderBy('total_market_value', $direction)) ->label(fn ($row) => Number::currency($row->total_market_value ?? 0, $row->market_data?->currency)), Column::make(__('Market Gain/Loss')) ->html() - ->label(fn($row) => Number::currency($row->market_gain_dollars ?? 0, $row->market_data?->currency) . view('components.ui.gain-loss-arrow-badge', [ + ->label(fn ($row) => Number::currency($row->market_gain_dollars ?? 0, $row->market_data?->currency).view('components.ui.gain-loss-arrow-badge', [ 'costBasis' => $row->average_cost_basis, 'marketValue' => $row->market_data?->market_value, 'small' => true, @@ -147,22 +150,22 @@ class HoldingsTable extends DataTableComponent ->sortable(fn (Builder $query, string $direction) => $query->orderBy('market_gain_dollars', $direction)), Column::make(__('Realized Gain/Loss'), 'realized_gain_dollars') ->sortable() - ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency) ), + ->format(fn ($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency)), Column::make(__('Dividends Earned'), 'dividends_earned') ->sortable() - ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency) ), + ->format(fn ($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency)), Column::make(__('52 week low'), 'market_data.fifty_two_week_low') ->sortable() - ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency) ), + ->format(fn ($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency)), Column::make(__('52 week high'), 'market_data.fifty_two_week_high') ->sortable() - ->format(fn($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency) ), + ->format(fn ($value, $row) => Number::currency($value ?? 0, $row->market_data?->currency)), Column::make(__('Number of Transactions')) ->sortable(fn (Builder $query, string $direction) => $query->orderBy('num_transactions', $direction)) ->label(fn ($row) => $row->num_transactions), Column::make(__('Last Refreshed'), 'market_data.updated_at') ->sortable() - ->format(fn($value) => \Carbon\Carbon::parse($value)->diffForHumans() ) + ->format(fn ($value) => \Carbon\Carbon::parse($value)->diffForHumans()), ]; } } diff --git a/app/Livewire/Datatables/TransactionsTable.php b/app/Livewire/Datatables/TransactionsTable.php index 3c394e1..f0daa0a 100644 --- a/app/Livewire/Datatables/TransactionsTable.php +++ b/app/Livewire/Datatables/TransactionsTable.php @@ -1,24 +1,26 @@ with(['portfolio', 'market_data']) ->myTransactions() @@ -36,65 +38,65 @@ class TransactionsTable extends DataTableComponent $this->hiddenColumns = ['name', 'cost_basis', 'gain_dollars']; $this->setTableWrapperAttributes([ - 'default' => false, + 'default' => false, 'default-styling' => false, 'default-colors' => false, - 'class' => 'overflow-scroll' - ]); + 'class' => 'overflow-scroll', + ]); $this->setTableAttributes([ - 'default' => false, + 'default' => false, 'default-styling' => false, 'default-colors' => false, 'class' => 'table', ]); $this->setTheadAttributes([ - 'default' => false, + 'default' => false, 'default-styling' => true, 'default-colors' => false, ]); - $this->setThAttributes(function(Column $column) { + $this->setThAttributes(function (Column $column) { $attributes = [ 'default' => false, 'default-styling' => false, 'default-colors' => false, - 'class' => 'text-xs font-medium whitespace-nowrap uppercase tracking-wider text-nowrap' + 'class' => 'text-xs font-medium whitespace-nowrap uppercase tracking-wider text-nowrap', ]; if (in_array($column->getField(), $this->hiddenColumns)) { - $attributes['class'] = $attributes['class'] . ' hidden md:table-cell'; + $attributes['class'] = $attributes['class'].' hidden md:table-cell'; } return $attributes; }); - $this->setThSortButtonAttributes(fn() => [ + $this->setThSortButtonAttributes(fn () => [ 'default' => false, 'default-styling' => true, 'default-colors' => false, - 'class' => 'cursor-pointer' + 'class' => 'cursor-pointer', ]); $this->setTbodyAttributes([ - 'default' => false, - 'default-styling' => true, - 'default-colors' => false, - ]); - $this->setTrAttributes(fn() => [ 'default' => false, 'default-styling' => true, 'default-colors' => false, - 'class' => 'cursor-pointer hover:bg-neutral/25' ]); - $this->setTdAttributes(function(Column $column) { - + $this->setTrAttributes(fn () => [ + 'default' => false, + 'default-styling' => true, + 'default-colors' => false, + 'class' => 'cursor-pointer hover:bg-neutral/25', + ]); + $this->setTdAttributes(function (Column $column) { + $attributes = [ 'default' => false, 'default-styling' => false, 'default-colors' => false, - 'class' => 'text-nowrap' + 'class' => 'text-nowrap', ]; if (in_array($column->getField(), $this->hiddenColumns)) { - $attributes['class'] = $attributes['class'] . ' hidden md:table-cell'; + $attributes['class'] = $attributes['class'].' hidden md:table-cell'; } return $attributes; @@ -111,11 +113,11 @@ class TransactionsTable extends DataTableComponent $this->setPrimaryKey('id'); - $this->setTableRowUrl(function($row) { + $this->setTableRowUrl(function ($row) { return route('holding.show', ['portfolio' => $row->portfolio_id, 'symbol' => $row->symbol]); - - })->setTableRowUrlTarget(function($row) { - + + })->setTableRowUrlTarget(function ($row) { + return 'navigate'; }); } @@ -123,10 +125,10 @@ class TransactionsTable extends DataTableComponent public function columns(): array { return [ - + Column::make(__('Date'), 'date') ->sortable() - ->format(fn($value) => \Carbon\Carbon::parse($value)->format('M d, Y') ), + ->format(fn ($value) => \Carbon\Carbon::parse($value)->format('M d, Y')), Column::make(__('Portfolio'), 'portfolio.title') ->sortable(), Column::make(__('Symbol'), 'symbol') @@ -134,14 +136,14 @@ class TransactionsTable extends DataTableComponent Column::make(__('Name'), 'market_data.name') ->sortable(), Column::make(__('Type'), 'transaction_type') - ->label(fn($row) => view('components.ui.badge', [ + ->label(fn ($row) => view('components.ui.badge', [ 'value' => $row->split ? 'SPLIT' : ($row->reinvested_dividend - ? 'REINVEST' + ? 'REINVEST' : $row->transaction_type), - 'class' => ($row->transaction_type == 'BUY' - ? 'badge-success' - : 'badge-error') . ' badge-sm mr-3', + 'class' => ($row->transaction_type == 'BUY' + ? 'badge-success' + : 'badge-error').' badge-sm mr-3', ])) ->sortable(fn (Builder $query, string $direction) => $query->orderBy('transaction_type', $direction)), Column::make(__('Quantity'), 'quantity') diff --git a/app/Traits/Toast.php b/app/Traits/Toast.php index 5db1313..dab5431 100644 --- a/app/Traits/Toast.php +++ b/app/Traits/Toast.php @@ -30,9 +30,6 @@ trait Toast $this->js('toast('.json_encode(['toast' => $toast]).')'); - // session()->flash('ib.toast.title', $title); - // session()->flash('ib.toast.description', $description); - if ($redirectTo) { return $this->redirect($redirectTo, navigate: true); } diff --git a/composer.json b/composer.json index 6234354..59de257 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ }, "require-dev": { "fakerphp/faker": "^1.23", - "laravel/pint": "^1.13", + "laravel/pint": "^1.25", "laravel/sail": "^1.26", "mockery/mockery": "^1.6", "nunomaduro/collision": "^8.0", diff --git a/composer.lock b/composer.lock index 11b31e8..afb3363 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3c3015ad711087ed55daf3aebcf8b06f", + "content-hash": "ad05656be3a8913bba187945f9683b48", "packages": [ { "name": "aws/aws-crt-php", @@ -9288,16 +9288,16 @@ }, { "name": "laravel/pint", - "version": "v1.25.0", + "version": "v1.25.1", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96" + "reference": "5016e263f95d97670d71b9a987bd8996ade6d8d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96", - "reference": "595de38458c6b0ab4cae4bcc769c2e5c5d5b8e96", + "url": "https://api.github.com/repos/laravel/pint/zipball/5016e263f95d97670d71b9a987bd8996ade6d8d9", + "reference": "5016e263f95d97670d71b9a987bd8996ade6d8d9", "shasum": "" }, "require": { @@ -9350,7 +9350,7 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2025-09-17T01:36:44+00:00" + "time": "2025-09-19T02:57:12+00:00" }, { "name": "laravel/sail", diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index cf6ae46..695d9a3 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -16,7 +16,7 @@ mkdir -p storage/framework/cache \ storage/logs timestamp=$(date -u "+[%Y-%m-%d %H:%M:%S]") -echo "$timestamp Investbrain starting..." >> storage/logs/laravel.log +echo "$timestamp Investbrain starting ($VERSION)..." >> storage/logs/laravel.log echo -e "\n > Storage directory scaffolding is OK... " diff --git a/resources/views/components/ui/toast.blade.php b/resources/views/components/ui/toast.blade.php index 98a4d41..b2241df 100644 --- a/resources/views/components/ui/toast.blade.php +++ b/resources/views/components/ui/toast.blade.php @@ -6,10 +6,10 @@ @persist('toast')