chore: code refactor via rector
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Filament\Resources;
|
||||
|
||||
use BackedEnum;
|
||||
use UnitEnum;
|
||||
use App\Filament\Resources\BlogResource\Pages\CreateBlog;
|
||||
use App\Filament\Resources\BlogResource\Pages\EditBlog;
|
||||
use App\Filament\Resources\BlogResource\Pages\ListBlogs;
|
||||
@@ -33,13 +35,13 @@ class BlogResource extends Resource
|
||||
{
|
||||
protected static ?string $model = Blog::class;
|
||||
|
||||
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-m-newspaper';
|
||||
protected static string|BackedEnum|null $navigationIcon = 'heroicon-m-newspaper';
|
||||
|
||||
protected static string|\UnitEnum|null $navigationGroup = 'Content';
|
||||
protected static string|UnitEnum|null $navigationGroup = 'Content';
|
||||
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
$categories = Category::pluck('name', 'id')->toArray();
|
||||
Category::query()->pluck('name', 'id')->toArray();
|
||||
|
||||
return $schema
|
||||
->components([
|
||||
@@ -50,7 +52,7 @@ class BlogResource extends Resource
|
||||
->required()
|
||||
->live(1)
|
||||
->columnSpanFull()
|
||||
->afterStateUpdated(fn (Set $set, ?string $state) => $set('slug', Str::slug($state))),
|
||||
->afterStateUpdated(fn (Set $set, ?string $state): mixed => $set('slug', Str::slug($state))),
|
||||
|
||||
TextInput::make('slug')
|
||||
->required()
|
||||
@@ -132,7 +134,7 @@ class BlogResource extends Resource
|
||||
Action::make('togglePublished')
|
||||
->label('Toggle Published')
|
||||
->icon('heroicon-o-eye')
|
||||
->action(function (Blog $record) {
|
||||
->action(function (Blog $record): void {
|
||||
$record->update(['is_published' => ! $record->is_published]);
|
||||
}),
|
||||
])
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Filament\Resources;
|
||||
|
||||
use BackedEnum;
|
||||
use UnitEnum;
|
||||
use App\Filament\Resources\CategoryResource\Pages\CreateCategory;
|
||||
use App\Filament\Resources\CategoryResource\Pages\EditCategory;
|
||||
use App\Filament\Resources\CategoryResource\Pages\ListCategories;
|
||||
@@ -26,9 +28,9 @@ class CategoryResource extends Resource
|
||||
{
|
||||
protected static ?string $model = Category::class;
|
||||
|
||||
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-ticket';
|
||||
protected static string|BackedEnum|null $navigationIcon = 'heroicon-o-ticket';
|
||||
|
||||
protected static string|\UnitEnum|null $navigationGroup = 'Content';
|
||||
protected static string|UnitEnum|null $navigationGroup = 'Content';
|
||||
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
@@ -37,7 +39,7 @@ class CategoryResource extends Resource
|
||||
TextInput::make('name')
|
||||
->required()
|
||||
->live(1)
|
||||
->afterStateUpdated(fn (Set $set, ?string $state) => $set('slug', Str::slug($state))),
|
||||
->afterStateUpdated(fn (Set $set, ?string $state): mixed => $set('slug', Str::slug($state))),
|
||||
TextInput::make('slug')->required(),
|
||||
Select::make('is_active')
|
||||
->options([
|
||||
@@ -58,9 +60,7 @@ class CategoryResource extends Resource
|
||||
TextColumn::make('slug'),
|
||||
TextColumn::make('blogs_count')
|
||||
->label('Blogs')
|
||||
->getStateUsing(function (Category $record): int {
|
||||
return $record->blogs()->count();
|
||||
}),
|
||||
->getStateUsing(fn(Category $record): int => $record->blogs()->count()),
|
||||
IconColumn::make('is_active')->label('Active')->boolean(),
|
||||
])
|
||||
->filters([
|
||||
@@ -73,7 +73,7 @@ class CategoryResource extends Resource
|
||||
Action::make('toggleStatus')
|
||||
->label('Toggle Status')
|
||||
->icon('heroicon-o-power')
|
||||
->action(function (Category $record) {
|
||||
->action(function (Category $record): void {
|
||||
$record->update(['is_active' => ! $record->is_active]);
|
||||
}),
|
||||
])
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Filament\Resources;
|
||||
|
||||
use BackedEnum;
|
||||
use UnitEnum;
|
||||
use App\Filament\Resources\MenuResource\Pages\CreateMenu;
|
||||
use App\Filament\Resources\MenuResource\Pages\EditMenu;
|
||||
use App\Filament\Resources\MenuResource\Pages\ListMenus;
|
||||
@@ -24,13 +26,13 @@ class MenuResource extends Resource
|
||||
{
|
||||
protected static ?string $model = Menu::class;
|
||||
|
||||
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-bars-3-bottom-left';
|
||||
protected static string|BackedEnum|null $navigationIcon = 'heroicon-o-bars-3-bottom-left';
|
||||
|
||||
protected static string|\UnitEnum|null $navigationGroup = 'Content';
|
||||
protected static string|UnitEnum|null $navigationGroup = 'Content';
|
||||
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
$menus = Menu::Pluck('name', 'id')->toArray();
|
||||
$menus = Menu::query()->Pluck('name', 'id')->toArray();
|
||||
|
||||
return $schema
|
||||
->components([
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Filament\Resources;
|
||||
|
||||
use BackedEnum;
|
||||
use UnitEnum;
|
||||
use App\Filament\Resources\PageResource\Pages\CreatePage;
|
||||
use App\Filament\Resources\PageResource\Pages\EditPage;
|
||||
use App\Filament\Resources\PageResource\Pages\ListPages;
|
||||
@@ -32,13 +34,13 @@ class PageResource extends Resource
|
||||
{
|
||||
protected static ?string $model = Page::class;
|
||||
|
||||
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-document';
|
||||
protected static string|BackedEnum|null $navigationIcon = 'heroicon-o-document';
|
||||
|
||||
protected static string|\UnitEnum|null $navigationGroup = 'Content';
|
||||
protected static string|UnitEnum|null $navigationGroup = 'Content';
|
||||
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
$pages = Page::Pluck('title', 'id')->toArray();
|
||||
$pages = Page::query()->Pluck('title', 'id')->toArray();
|
||||
|
||||
return $schema
|
||||
->components([
|
||||
@@ -50,7 +52,7 @@ class PageResource extends Resource
|
||||
->required()
|
||||
->live(1)
|
||||
->columnSpanFull()
|
||||
->afterStateUpdated(fn (Set $set, ?string $state) => $set('slug', Str::slug($state))),
|
||||
->afterStateUpdated(fn (Set $set, ?string $state): mixed => $set('slug', Str::slug($state))),
|
||||
TextInput::make('slug')->required()->columnSpan(3),
|
||||
Select::make('is_published')
|
||||
->options([
|
||||
@@ -114,7 +116,7 @@ class PageResource extends Resource
|
||||
Action::make('togglePublished')
|
||||
->label('Toggle Published')
|
||||
->icon('heroicon-o-eye')
|
||||
->action(function (Page $record) {
|
||||
->action(function (Page $record): void {
|
||||
$record->update(['is_published' => ! $record->is_published]);
|
||||
}),
|
||||
])
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Filament\Resources;
|
||||
|
||||
use BackedEnum;
|
||||
use UnitEnum;
|
||||
use App\Filament\Resources\PlanResource\Pages\CreatePlan;
|
||||
use App\Filament\Resources\PlanResource\Pages\EditPlan;
|
||||
use App\Filament\Resources\PlanResource\Pages\ListPlans;
|
||||
@@ -26,9 +28,9 @@ class PlanResource extends Resource
|
||||
{
|
||||
protected static ?string $model = Plan::class;
|
||||
|
||||
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
protected static string|BackedEnum|null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static string|\UnitEnum|null $navigationGroup = 'Web Master';
|
||||
protected static string|UnitEnum|null $navigationGroup = 'Web Master';
|
||||
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Filament\Resources;
|
||||
|
||||
use BackedEnum;
|
||||
use UnitEnum;
|
||||
use App\Filament\Resources\TicketResource\Pages\CreateTicket;
|
||||
use App\Filament\Resources\TicketResource\Pages\EditTicket;
|
||||
use App\Filament\Resources\TicketResource\Pages\ListTickets;
|
||||
@@ -23,7 +25,6 @@ use Filament\Forms\Components\TextInput;
|
||||
use Filament\Notifications\Notification;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Tables;
|
||||
use Filament\Tables\Columns\BadgeColumn;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Tables\Filters\Filter;
|
||||
@@ -37,9 +38,9 @@ class TicketResource extends Resource
|
||||
{
|
||||
protected static ?string $model = Ticket::class;
|
||||
|
||||
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-ticket';
|
||||
protected static string|BackedEnum|null $navigationIcon = 'heroicon-o-ticket';
|
||||
|
||||
protected static string|\UnitEnum|null $navigationGroup = 'Support';
|
||||
protected static string|UnitEnum|null $navigationGroup = 'Support';
|
||||
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
@@ -91,9 +92,9 @@ class TicketResource extends Resource
|
||||
->searchable(),
|
||||
BadgeColumn::make('status')
|
||||
->colors([
|
||||
'success' => fn ($state) => $state === 'open',
|
||||
'warning' => fn ($state) => $state === 'pending',
|
||||
'danger' => fn ($state) => $state === 'closed',
|
||||
'success' => fn ($state): bool => $state === 'open',
|
||||
'warning' => fn ($state): bool => $state === 'pending',
|
||||
'danger' => fn ($state): bool => $state === 'closed',
|
||||
])
|
||||
->sortable(),
|
||||
TextColumn::make('created_at')
|
||||
@@ -119,11 +120,9 @@ class TicketResource extends Resource
|
||||
DatePicker::make('created_from')->label('Created From'),
|
||||
DatePicker::make('created_until')->label('Created Until'),
|
||||
])
|
||||
->query(function ($query, array $data) {
|
||||
return $query
|
||||
->when($data['created_from'], fn ($query, $date) => $query->whereDate('created_at', '>=', $date))
|
||||
->when($data['created_until'], fn ($query, $date) => $query->whereDate('created_at', '<=', $date));
|
||||
}),
|
||||
->query(fn($query, array $data) => $query
|
||||
->when($data['created_from'], fn ($query, $date) => $query->whereDate('created_at', '>=', $date))
|
||||
->when($data['created_until'], fn ($query, $date) => $query->whereDate('created_at', '<=', $date))),
|
||||
])
|
||||
// ->actions([
|
||||
// Tables\Actions\EditAction::make(),
|
||||
@@ -135,26 +134,24 @@ class TicketResource extends Resource
|
||||
Action::make('view')
|
||||
->label('View & Respond')
|
||||
->icon('heroicon-o-eye')
|
||||
->schema(function (Ticket $ticket): array {
|
||||
return [
|
||||
TextArea::make('response')
|
||||
->label('Your Response')
|
||||
->required()
|
||||
->rows(7)
|
||||
->placeholder('Type your response here...'),
|
||||
->schema(fn(Ticket $ticket): array => [
|
||||
TextArea::make('response')
|
||||
->label('Your Response')
|
||||
->required()
|
||||
->rows(7)
|
||||
->placeholder('Type your response here...'),
|
||||
|
||||
Select::make('status')
|
||||
->label('Ticket Status')
|
||||
->options([
|
||||
'open' => 'Open',
|
||||
'pending' => 'In Progress',
|
||||
'closed' => 'Closed',
|
||||
])
|
||||
->default($ticket->status === 'open' ? 'pending' : $ticket->status)
|
||||
->required(),
|
||||
];
|
||||
})
|
||||
->modalContent(function (Ticket $ticket) {
|
||||
Select::make('status')
|
||||
->label('Ticket Status')
|
||||
->options([
|
||||
'open' => 'Open',
|
||||
'pending' => 'In Progress',
|
||||
'closed' => 'Closed',
|
||||
])
|
||||
->default($ticket->status === 'open' ? 'pending' : $ticket->status)
|
||||
->required(),
|
||||
])
|
||||
->modalContent(function (Ticket $ticket): HtmlString {
|
||||
$html = '<div class="space-y-3 mb-3 text-sm">';
|
||||
|
||||
// Ticket Subject & Message
|
||||
@@ -185,8 +182,8 @@ class TicketResource extends Resource
|
||||
return new HtmlString($html);
|
||||
})
|
||||
|
||||
->action(function (array $data, Ticket $ticket) {
|
||||
TicketResponse::create([
|
||||
->action(function (array $data, Ticket $ticket): void {
|
||||
TicketResponse::query()->create([
|
||||
'ticket_id' => $ticket->id,
|
||||
'user_id' => auth()->id(),
|
||||
'response' => $data['response'],
|
||||
@@ -214,7 +211,7 @@ class TicketResource extends Resource
|
||||
->color('danger')
|
||||
->requiresConfirmation()
|
||||
->visible(fn (Ticket $ticket): bool => $ticket->status !== 'closed')
|
||||
->action(function (Ticket $ticket) {
|
||||
->action(function (Ticket $ticket): void {
|
||||
$ticket->update(['status' => 'closed']);
|
||||
}),
|
||||
Action::make('reopen')
|
||||
@@ -222,7 +219,7 @@ class TicketResource extends Resource
|
||||
->icon('heroicon-o-arrow-path')
|
||||
->color('success')
|
||||
->visible(fn (Ticket $ticket): bool => $ticket->status === 'closed')
|
||||
->action(function (Ticket $ticket) {
|
||||
->action(function (Ticket $ticket): void {
|
||||
$ticket->update(['status' => 'open']);
|
||||
}),
|
||||
])
|
||||
@@ -235,7 +232,7 @@ class TicketResource extends Resource
|
||||
->icon('heroicon-o-envelope')
|
||||
->requiresConfirmation()
|
||||
->deselectRecordsAfterCompletion()
|
||||
->action(function (Collection $records) {
|
||||
->action(function (Collection $records): void {
|
||||
foreach ($records as $ticket) {
|
||||
$responses = $ticket->responses()
|
||||
->with('user')
|
||||
|
||||
@@ -2,13 +2,15 @@
|
||||
|
||||
namespace App\Filament\Resources;
|
||||
|
||||
use BackedEnum;
|
||||
use UnitEnum;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Filament\Resources\UserResource\Pages\CreateUser;
|
||||
use App\Filament\Resources\UserResource\Pages\EditUser;
|
||||
use App\Filament\Resources\UserResource\Pages\ListUsers;
|
||||
use App\Filament\Resources\UserResource\RelationManagers\LogsRelationManager;
|
||||
use App\Filament\Resources\UserResource\RelationManagers\UsageLogsRelationManager;
|
||||
use App\Models\User;
|
||||
use DB;
|
||||
use Exception;
|
||||
use Filament\Actions\BulkAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
@@ -31,9 +33,9 @@ class UserResource extends Resource
|
||||
{
|
||||
protected static ?string $model = User::class;
|
||||
|
||||
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-users';
|
||||
protected static string|BackedEnum|null $navigationIcon = 'heroicon-o-users';
|
||||
|
||||
protected static string|\UnitEnum|null $navigationGroup = 'Admin';
|
||||
protected static string|UnitEnum|null $navigationGroup = 'Admin';
|
||||
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
@@ -50,7 +52,7 @@ class UserResource extends Resource
|
||||
TextInput::make('email_verified_at')
|
||||
->label('Email Verification Status')
|
||||
->disabled()
|
||||
->formatStateUsing(fn ($record) => $record->email_verified_at ?? ''
|
||||
->formatStateUsing(fn ($record): string => $record->email_verified_at ?? ''
|
||||
? 'Verified at '.$record->email_verified_at->toDateTimeString()
|
||||
: 'Not Verified')
|
||||
->helperText('Shows whether the user has verified their email address.'),
|
||||
@@ -96,22 +98,20 @@ class UserResource extends Resource
|
||||
->falseIcon('heroicon-o-x-circle')
|
||||
->trueColor('success')
|
||||
->falseColor('danger')
|
||||
->getStateUsing(fn ($record) => ! is_null($record->email_verified_at))
|
||||
->getStateUsing(fn ($record): bool => ! is_null($record->email_verified_at))
|
||||
->sortable(),
|
||||
BadgeColumn::make('level')
|
||||
->label('User Level')
|
||||
->getStateUsing(function ($record) {
|
||||
return match ($record->level) {
|
||||
0 => 'Normal User',
|
||||
1 => 'Banned',
|
||||
9 => 'Super Admin',
|
||||
default => 'Unknown', // In case some invalid level exists
|
||||
};
|
||||
->getStateUsing(fn($record): string => match ($record->level) {
|
||||
0 => 'Normal User',
|
||||
1 => 'Banned',
|
||||
9 => 'Super Admin',
|
||||
default => 'Unknown', // In case some invalid level exists
|
||||
})
|
||||
->colors([
|
||||
'success' => fn ($state) => $state === 'Normal User',
|
||||
'danger' => fn ($state) => $state === 'Banned',
|
||||
'warning' => fn ($state) => $state === 'Super Admin',
|
||||
'success' => fn ($state): bool => $state === 'Normal User',
|
||||
'danger' => fn ($state): bool => $state === 'Banned',
|
||||
'warning' => fn ($state): bool => $state === 'Super Admin',
|
||||
])
|
||||
->sortable(),
|
||||
TextColumn::make('stripe_id')->label('Stripe ID')->copyable(),
|
||||
@@ -126,14 +126,14 @@ class UserResource extends Resource
|
||||
'subscribed' => 'Has Active Subscription',
|
||||
'not_subscribed' => 'No Active Subscription',
|
||||
])
|
||||
->query(function ($query, array $data) {
|
||||
->query(function ($query, array $data): void {
|
||||
if ($data['value'] === 'subscribed') {
|
||||
$query->whereHas('subscriptions', function ($query) {
|
||||
$query->whereHas('subscriptions', function ($query): void {
|
||||
$query->where('stripe_status', 'active')
|
||||
->orWhere('stripe_status', 'trialing');
|
||||
});
|
||||
} elseif ($data['value'] === 'not_subscribed') {
|
||||
$query->whereDoesntHave('subscriptions', function ($query) {
|
||||
$query->whereDoesntHave('subscriptions', function ($query): void {
|
||||
$query->where('stripe_status', 'active')
|
||||
->orWhere('stripe_status', 'trialing');
|
||||
});
|
||||
@@ -145,7 +145,7 @@ class UserResource extends Resource
|
||||
'verified' => 'Verified',
|
||||
'not_verified' => 'Not Verified',
|
||||
])
|
||||
->query(function ($query, array $data) {
|
||||
->query(function ($query, array $data): void {
|
||||
if ($data['value'] === 'verified') {
|
||||
$query->whereNotNull('email_verified_at');
|
||||
} elseif ($data['value'] === 'not_verified') {
|
||||
@@ -161,12 +161,10 @@ class UserResource extends Resource
|
||||
DeleteBulkAction::make(),
|
||||
BulkAction::make('updateLevel')
|
||||
->label('Update User Level')
|
||||
->action(function (Collection $records, array $data) {
|
||||
->action(function (Collection $records, array $data): void {
|
||||
|
||||
$newLevel = $data['new_level'];
|
||||
if ($newLevel === 9) {
|
||||
throw new Exception('User level cannot be 9 or higher.');
|
||||
}
|
||||
throw_if($newLevel === 9, Exception::class, 'User level cannot be 9 or higher.');
|
||||
|
||||
DB::table('users')
|
||||
->whereIn('id', $records->pluck('id'))
|
||||
|
||||
@@ -75,7 +75,7 @@ class EditUser extends EditRecord
|
||||
fclose($csv);
|
||||
|
||||
return Response::streamDownload(
|
||||
function () use ($csvContent) {
|
||||
function () use ($csvContent): void {
|
||||
echo $csvContent;
|
||||
},
|
||||
"user_{$record->id}_report_".now()->format('Ymd_His').'.csv',
|
||||
|
||||
@@ -4,7 +4,6 @@ namespace App\Filament\Resources\UserResource\RelationManagers;
|
||||
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Tables;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Tables\Table;
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ namespace App\Filament\Resources\UserResource\RelationManagers;
|
||||
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Tables;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Tables\Table;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user