Skip to content

Commit

Permalink
abstract button and add pages button (stechstudio#27)
Browse files Browse the repository at this point in the history
* abstract button and add pages button

* contracts -> concerns

---------

Co-authored-by: Joseph Szobody <[email protected]>
  • Loading branch information
josefbehr and jszobody committed Feb 17, 2023
1 parent 2529eec commit bd73b34
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 14 deletions.
16 changes: 2 additions & 14 deletions src/Impersonate.php → src/Concerns/Impersonates.php
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
<?php

namespace STS\FilamentImpersonate;
namespace STS\FilamentImpersonate\Concerns;

use Closure;
use Filament\Facades\Filament;
use Filament\Tables\Actions\Action;
use Illuminate\Http\RedirectResponse;
use Lab404\Impersonate\Services\ImpersonateManager;
use Livewire\Redirector;

class Impersonate extends Action
trait Impersonates
{
protected Closure|string|null $guard = null;

Expand All @@ -20,17 +19,6 @@ public static function getDefaultName(): ?string
return 'impersonate';
}

protected function setUp(): void
{
parent::setUp();

$this
->iconButton()
->icon('impersonate::icon')
->action(fn ($record) => $this->impersonate($record))
->hidden(fn ($record) => !static::allowed(Filament::auth()->user(), $record));
}

public function guard(Closure|string $guard): self
{
$this->guard = $guard;
Expand Down
23 changes: 23 additions & 0 deletions src/Pages/Actions/Impersonate.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php

namespace STS\FilamentImpersonate\Pages\Actions;

use Filament\Facades\Filament;
use Filament\Pages\Actions\Action;
use STS\FilamentImpersonate\Concerns\Impersonates;

class Impersonate extends Action
{
use Impersonates;

protected function setUp(): void
{
parent::setUp();

$this
->label(__('filament-impersonate::action.label'))
->icon('impersonate::icon')
->action(fn ($record) => $this->impersonate($record))
->hidden(static fn ($record) => !static::allowed(Filament::auth()->user(), $record));
}
}
23 changes: 23 additions & 0 deletions src/Tables/Actions/Impersonate.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php

namespace STS\FilamentImpersonate\Tables\Actions;

use Filament\Facades\Filament;
use Filament\Tables\Actions\Action;
use STS\FilamentImpersonate\Concerns\Impersonates;

class Impersonate extends Action
{
use Impersonates;

protected function setUp(): void
{
parent::setUp();

$this
->iconButton()
->icon('impersonate::icon')
->action(fn ($record) => $this->impersonate($record))
->hidden(fn ($record) => !static::allowed(Filament::auth()->user(), $record));
}
}

0 comments on commit bd73b34

Please sign in to comment.