<?php
declare(strict_types=1);
namespace App\Filament\Pages;
use App\Actions\People\ListPeople as ListPeopleAction;
use BackedEnum;
use Filament\Pages\Page;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Concerns\InteractsWithTable;
use Filament\Tables\Contracts\HasTable;
use Filament\Tables\Table;
use Illuminate\Support\Collection;
class ListPeople extends Page implements HasTable
{
use InteractsWithTable;
protected string $view = 'filament.pages.list-people';
protected static ?string $slug = 'people';
protected static string|null|BackedEnum $navigationIcon = Heroicon::OutlinedUsers;
protected static ?string $navigationLabel = 'People';
protected static ?string $title = 'People';
public function table(Table $table): Table
{
return $table
->records(function (
int $page,
int $recordsPerPage,
): Collection {
return ListPeopleAction::make()->handle(
asUser: auth()->user(),
page: $page,
recordsPerPage: $recordsPerPage,
)->collect('data.people')
->pluck('person', 'person.uuid');
})
->columns([
TextColumn::make('uuid'),
TextColumn::make('first_name'),
TextColumn::make('last_name'),
TextColumn::make('email'),
TextColumn::make('phone'),
TextColumn::make('created_at'),
]);
}
}
<?php
declare(strict_types=1);
namespace App\Filament\Pages;
use App\Actions\People\ListPeople as ListPeopleAction;
use BackedEnum;
use Filament\Pages\Page;
use Filament\Support\Icons\Heroicon;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Concerns\InteractsWithTable;
use Filament\Tables\Contracts\HasTable;
use Filament\Tables\Table;
use Illuminate\Support\Collection;
class ListPeople extends Page implements HasTable
{
use InteractsWithTable;
protected string $view = 'filament.pages.list-people';
protected static ?string $slug = 'people';
protected static string|null|BackedEnum $navigationIcon = Heroicon::OutlinedUsers;
protected static ?string $navigationLabel = 'People';
protected static ?string $title = 'People';
public function table(Table $table): Table
{
return $table
->records(function (
int $page,
int $recordsPerPage,
): Collection {
return ListPeopleAction::make()->handle(
asUser: auth()->user(),
page: $page,
recordsPerPage: $recordsPerPage,
)->collect('data.people')
->pluck('person', 'person.uuid');
})
->columns([
TextColumn::make('uuid'),
TextColumn::make('first_name'),
TextColumn::make('last_name'),
TextColumn::make('email'),
TextColumn::make('phone'),
TextColumn::make('created_at'),
]);
}
}