Files
nexusphp/app/Filament/Widgets/LatestUsers.php

47 lines
1.3 KiB
PHP
Raw Normal View History

2022-06-27 01:39:01 +08:00
<?php
namespace App\Filament\Widgets;
use Filament\Actions\Contracts\HasActions;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\BadgeColumn;
2022-06-27 01:39:01 +08:00
use App\Models\User;
use Closure;
use Filament\Tables;
use Filament\Widgets\TableWidget as BaseWidget;
2024-12-25 23:09:07 +08:00
use Illuminate\Contracts\Support\Htmlable;
2022-06-27 01:39:01 +08:00
use Illuminate\Database\Eloquent\Builder;
class LatestUsers extends BaseWidget implements HasActions
2022-06-27 01:39:01 +08:00
{
protected static ?int $sort = 1;
2024-12-25 23:09:07 +08:00
protected function getTableHeading(): string | Htmlable | null
2022-06-27 01:39:01 +08:00
{
return __('dashboard.latest_user.page_title');
}
protected function isTablePaginationEnabled(): bool
{
return false;
}
protected function getTableQuery(): Builder
{
return User::query()->orderBy('id', 'desc')->limit(5);
}
protected function getTableColumns(): array
{
return [
TextColumn::make('id')
2023-02-11 16:08:48 +08:00
->label(__('label.user.username'))
->formatStateUsing(fn ($state) => username_for_admin($state))
,
TextColumn::make('email')->label(__('label.email')),
BadgeColumn::make('status')->colors(['success' => 'confirmed', 'danger' => 'pending'])->label(__('label.status')),
TextColumn::make('added')->dateTime()->label(__('label.added')),
2022-06-27 01:39:01 +08:00
];
}
}