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/livewire/dashboard.blade.php b/resources/views/livewire/dashboard.blade.php
index b7955489a..806704d5d 100644
--- a/resources/views/livewire/dashboard.blade.php
+++ b/resources/views/livewire/dashboard.blade.php
@@ -59,7 +59,8 @@