diff --git a/app/Livewire/Dashboard.php b/app/Livewire/Dashboard.php index c3cb797bf..d89f2b970 100644 --- a/app/Livewire/Dashboard.php +++ b/app/Livewire/Dashboard.php @@ -8,7 +8,6 @@ use App\Models\Project; use App\Models\Server; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Artisan; -use Illuminate\Support\Facades\Redirect; use Livewire\Component; class Dashboard extends Component @@ -52,16 +51,7 @@ class Dashboard extends Component public function navigateToProject($projectUuid) { - $project = Project::where('uuid', $projectUuid)->first(); - - if ($project && $project->environments->count() === 1) { - return Redirect::route('project.resource.index', [ - 'project_uuid' => $projectUuid, - 'environment_uuid' => $project->environments->first()->uuid, - ]); - } - - return Redirect::route('project.show', ['project_uuid' => $projectUuid]); + return $this->redirect(collect($this->projects)->firstWhere('uuid', $projectUuid)->navigateTo(), true); } public function render() diff --git a/app/Livewire/Project/Index.php b/app/Livewire/Project/Index.php index 06bf88219..8bf511a66 100644 --- a/app/Livewire/Project/Index.php +++ b/app/Livewire/Project/Index.php @@ -5,7 +5,6 @@ namespace App\Livewire\Project; use App\Models\PrivateKey; use App\Models\Project; use App\Models\Server; -use Illuminate\Support\Facades\Redirect; use Livewire\Component; class Index extends Component @@ -34,15 +33,8 @@ class Index extends Component public function navigateToProject($projectUuid) { - $project = Project::where('uuid', $projectUuid)->first(); + $project = collect($this->projects)->firstWhere('uuid', $projectUuid); - if ($project && $project->environments->count() === 1) { - return Redirect::route('project.resource.index', [ - 'project_uuid' => $projectUuid, - 'environment_uuid' => $project->environments->first()->uuid, - ]); - } - - return Redirect::route('project.show', ['project_uuid' => $projectUuid]); + return $this->redirect($project->navigateTo(), true); } } diff --git a/app/Models/Project.php b/app/Models/Project.php index 3b50b9b33..2e4d45859 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -140,4 +140,16 @@ class Project extends BaseModel { return $this->postgresqls()->get()->merge($this->redis()->get())->merge($this->mongodbs()->get())->merge($this->mysqls()->get())->merge($this->mariadbs()->get())->merge($this->keydbs()->get())->merge($this->dragonflies()->get())->merge($this->clickhouses()->get()); } + + public function navigateTo() + { + if ($this->environments->count() === 1) { + return route('project.resource.index', [ + 'project_uuid' => $this->uuid, + 'environment_uuid' => $this->environments->first()->uuid, + ]); + } + + return route('project.show', ['project_uuid' => $this->uuid]); + } } diff --git a/resources/views/components/navbar.blade.php b/resources/views/components/navbar.blade.php index 9a75200b1..d6075248f 100644 --- a/resources/views/components/navbar.blade.php +++ b/resources/views/components/navbar.blade.php @@ -123,7 +123,7 @@