Replace client-side JavaScript URL checking with Laravel's routeIs() for determining when to reduce indicator opacity. This simplifies the code and uses route names as the source of truth. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
56 lines
1.3 KiB
PHP
56 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire;
|
|
|
|
use App\Models\ApplicationDeploymentQueue;
|
|
use App\Models\Server;
|
|
use Livewire\Attributes\Computed;
|
|
use Livewire\Component;
|
|
|
|
class DeploymentsIndicator extends Component
|
|
{
|
|
public bool $expanded = false;
|
|
|
|
#[Computed]
|
|
public function deployments()
|
|
{
|
|
$servers = Server::ownedByCurrentTeamCached();
|
|
|
|
return ApplicationDeploymentQueue::with(['application.environment.project'])
|
|
->whereIn('status', ['in_progress', 'queued'])
|
|
->whereIn('server_id', $servers->pluck('id'))
|
|
->orderBy('id')
|
|
->get([
|
|
'id',
|
|
'application_id',
|
|
'application_name',
|
|
'deployment_url',
|
|
'pull_request_id',
|
|
'server_name',
|
|
'server_id',
|
|
'status',
|
|
]);
|
|
}
|
|
|
|
#[Computed]
|
|
public function deploymentCount()
|
|
{
|
|
return $this->deployments->count();
|
|
}
|
|
|
|
#[Computed]
|
|
public function shouldReduceOpacity(): bool
|
|
{
|
|
return request()->routeIs('project.application.deployment.*');
|
|
}
|
|
|
|
public function toggleExpanded()
|
|
{
|
|
$this->expanded = ! $this->expanded;
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return view('livewire.deployments-indicator');
|
|
}
|
|
}
|