Skip to content

Commit 6449631

Browse files
committed
Adds custom redirects after creating or deleting a team
1 parent eb35206 commit 6449631

File tree

4 files changed

+37
-6
lines changed

4 files changed

+37
-6
lines changed

src/Http/Controllers/Inertia/TeamController.php

+11-4
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,12 @@
1111
use Laravel\Jetstream\Contracts\DeletesTeams;
1212
use Laravel\Jetstream\Contracts\UpdatesTeamNames;
1313
use Laravel\Jetstream\Jetstream;
14+
use Laravel\Jetstream\RedirectsActions;
1415

1516
class TeamController extends Controller
1617
{
18+
use RedirectsActions;
19+
1720
/**
1821
* Show the team management screen.
1922
*
@@ -62,9 +65,11 @@ public function create(Request $request)
6265
*/
6366
public function store(Request $request)
6467
{
65-
app(CreatesTeams::class)->create($request->user(), $request->all());
68+
$creator = app(CreatesTeams::class);
69+
70+
$creator->create($request->user(), $request->all());
6671

67-
return redirect(config('fortify.home'));
72+
return redirect($this->redirectPath($creator));
6873
}
6974

7075
/**
@@ -96,8 +101,10 @@ public function destroy(Request $request, $teamId)
96101

97102
app(ValidateTeamDeletion::class)->validate($request->user(), $team);
98103

99-
app(DeletesTeams::class)->delete($team);
104+
$deleter = app(DeletesTeams::class);
105+
106+
$deleter->delete($team);
100107

101-
return redirect(config('fortify.home'));
108+
return redirect($this->redirectPath($deleter));
102109
}
103110
}

src/Http/Livewire/CreateTeamForm.php

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44

55
use Illuminate\Support\Facades\Auth;
66
use Laravel\Jetstream\Contracts\CreatesTeams;
7+
use Laravel\Jetstream\RedirectsActions;
78
use Livewire\Component;
89

910
class CreateTeamForm extends Component
1011
{
12+
use RedirectsActions;
13+
1114
/**
1215
* The component's state.
1316
*
@@ -27,7 +30,7 @@ public function createTeam(CreatesTeams $creator)
2730

2831
$creator->create(Auth::user(), $this->state);
2932

30-
return redirect(config('fortify.home'));
33+
return redirect($this->redirectPath($creator));
3134
}
3235

3336
/**

src/Http/Livewire/DeleteTeamForm.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public function deleteTeam(ValidateTeamDeletion $validator, DeletesTeams $delete
4747

4848
$deleter->delete($this->team);
4949

50-
return redirect(config('fortify.home'));
50+
return redirect($this->redirectPath($deleter));
5151
}
5252

5353
/**

src/RedirectsActions.php

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace Laravel\Jetstream;
4+
5+
trait RedirectsActions
6+
{
7+
/**
8+
* Get the redirect path for the action.
9+
*
10+
* @param $action
11+
* @return string
12+
*/
13+
public function redirectPath($action)
14+
{
15+
if (method_exists($action, 'redirectTo')) {
16+
return $action->redirectTo();
17+
}
18+
19+
return property_exists($action, 'redirectTo') ? $action->redirectTo : config('fortify.home');
20+
}
21+
}

0 commit comments

Comments
 (0)