From f0c2f6df8911b7cf5889fcc453f57d207d40e014 Mon Sep 17 00:00:00 2001 From: Kilian Trunk Date: Mon, 29 Sep 2025 11:03:17 +0200 Subject: [PATCH] refactor: migrate to f4 (CM-15) --- composer.json | 4 +- src/Admin/Filament/Resources/PageResource.php | 42 ++++++++++--------- .../Filament/Resources/SectionResource.php | 42 ++++++++++--------- tests/Pest.php | 4 +- workbench/database/factories/UserFactory.php | 2 +- 5 files changed, 49 insertions(+), 45 deletions(-) diff --git a/composer.json b/composer.json index 2d66580..f7b5cf4 100644 --- a/composer.json +++ b/composer.json @@ -42,10 +42,10 @@ }, "require": { "php": "^8.2", - "bezhansalleh/filament-shield": "^3.3", + "bezhansalleh/filament-shield": "^4.0", "datalinx/php-utils": "^2.5", "eclipsephp/common": "dev-main", - "filament/filament": "^3.3", + "filament/filament": "^4.0", "spatie/laravel-package-tools": "^1.19" }, "require-dev": { diff --git a/src/Admin/Filament/Resources/PageResource.php b/src/Admin/Filament/Resources/PageResource.php index e332ffa..d69a051 100644 --- a/src/Admin/Filament/Resources/PageResource.php +++ b/src/Admin/Filament/Resources/PageResource.php @@ -2,21 +2,23 @@ namespace Eclipse\Cms\Admin\Filament\Resources; -use Eclipse\Cms\Admin\Filament\Resources\PageResource\Pages; +use Eclipse\Cms\Admin\Filament\Resources\PageResource\Pages\CreatePage; +use Eclipse\Cms\Admin\Filament\Resources\PageResource\Pages\EditPage; +use Eclipse\Cms\Admin\Filament\Resources\PageResource\Pages\ListPages; use Eclipse\Cms\Models\Page; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\DeleteAction; +use Filament\Actions\DeleteBulkAction; +use Filament\Actions\EditAction; +use Filament\Actions\ForceDeleteAction; +use Filament\Actions\ForceDeleteBulkAction; +use Filament\Actions\RestoreAction; +use Filament\Actions\RestoreBulkAction; use Filament\Forms\Components\MarkdownEditor; use Filament\Forms\Components\Placeholder; use Filament\Forms\Components\TextInput; -use Filament\Forms\Form; use Filament\Resources\Resource; -use Filament\Tables\Actions\BulkActionGroup; -use Filament\Tables\Actions\DeleteAction; -use Filament\Tables\Actions\DeleteBulkAction; -use Filament\Tables\Actions\EditAction; -use Filament\Tables\Actions\ForceDeleteAction; -use Filament\Tables\Actions\ForceDeleteBulkAction; -use Filament\Tables\Actions\RestoreAction; -use Filament\Tables\Actions\RestoreBulkAction; +use Filament\Schemas\Schema; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\TrashedFilter; use Filament\Tables\Table; @@ -29,14 +31,14 @@ class PageResource extends Resource protected static ?string $slug = 'pages'; - protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-rectangle-stack'; - protected static ?string $navigationGroup = 'CMS'; + protected static string|\UnitEnum|null $navigationGroup = 'CMS'; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form - ->schema([ + return $schema + ->components([ TextInput::make('title') ->required(), @@ -90,13 +92,13 @@ public static function table(Table $table): Table ->filters([ TrashedFilter::make(), ]) - ->actions([ + ->recordActions([ EditAction::make(), DeleteAction::make(), RestoreAction::make(), ForceDeleteAction::make(), ]) - ->bulkActions([ + ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), RestoreBulkAction::make(), @@ -108,9 +110,9 @@ public static function table(Table $table): Table public static function getPages(): array { return [ - 'index' => Pages\ListPages::route('/'), - 'create' => Pages\CreatePage::route('/create'), - 'edit' => Pages\EditPage::route('/{record}/edit'), + 'index' => ListPages::route('/'), + 'create' => CreatePage::route('/create'), + 'edit' => EditPage::route('/{record}/edit'), ]; } diff --git a/src/Admin/Filament/Resources/SectionResource.php b/src/Admin/Filament/Resources/SectionResource.php index ee3b4d8..dcf20ea 100644 --- a/src/Admin/Filament/Resources/SectionResource.php +++ b/src/Admin/Filament/Resources/SectionResource.php @@ -2,19 +2,21 @@ namespace Eclipse\Cms\Admin\Filament\Resources; -use Eclipse\Cms\Admin\Filament\Resources\SectionResource\Pages; +use Eclipse\Cms\Admin\Filament\Resources\SectionResource\Pages\CreateSection; +use Eclipse\Cms\Admin\Filament\Resources\SectionResource\Pages\EditSection; +use Eclipse\Cms\Admin\Filament\Resources\SectionResource\Pages\ListSections; use Eclipse\Cms\Models\Section; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\DeleteAction; +use Filament\Actions\DeleteBulkAction; +use Filament\Actions\EditAction; +use Filament\Actions\ForceDeleteAction; +use Filament\Actions\ForceDeleteBulkAction; +use Filament\Actions\RestoreAction; +use Filament\Actions\RestoreBulkAction; use Filament\Forms\Components\TextInput; -use Filament\Forms\Form; use Filament\Resources\Resource; -use Filament\Tables\Actions\BulkActionGroup; -use Filament\Tables\Actions\DeleteAction; -use Filament\Tables\Actions\DeleteBulkAction; -use Filament\Tables\Actions\EditAction; -use Filament\Tables\Actions\ForceDeleteAction; -use Filament\Tables\Actions\ForceDeleteBulkAction; -use Filament\Tables\Actions\RestoreAction; -use Filament\Tables\Actions\RestoreBulkAction; +use Filament\Schemas\Schema; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\TrashedFilter; use Filament\Tables\Table; @@ -27,16 +29,16 @@ class SectionResource extends Resource protected static ?string $slug = 'cms/sections'; - protected static ?string $navigationGroup = 'CMS'; + protected static string|\UnitEnum|null $navigationGroup = 'CMS'; - protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $recordTitleAttribute = 'name'; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form - ->schema([ + return $schema + ->components([ TextInput::make('name') ->required(), @@ -55,13 +57,13 @@ public static function table(Table $table): Table ->filters([ TrashedFilter::make(), ]) - ->actions([ + ->recordActions([ EditAction::make(), DeleteAction::make(), RestoreAction::make(), ForceDeleteAction::make(), ]) - ->bulkActions([ + ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), RestoreBulkAction::make(), @@ -73,9 +75,9 @@ public static function table(Table $table): Table public static function getPages(): array { return [ - 'index' => Pages\ListSections::route('/'), - 'create' => Pages\CreateSection::route('/create'), - 'edit' => Pages\EditSection::route('/{record}/edit'), + 'index' => ListSections::route('/'), + 'create' => CreateSection::route('/create'), + 'edit' => EditSection::route('/{record}/edit'), ]; } diff --git a/tests/Pest.php b/tests/Pest.php index 34e804d..809bcea 100644 --- a/tests/Pest.php +++ b/tests/Pest.php @@ -1,5 +1,6 @@ use(Illuminate\Foundation\Testing\RefreshDatabase::class) + ->use(RefreshDatabase::class) ->beforeEach(function () { // Seed roles and permissions with Filament Shield plugin Artisan::call('shield:generate', [ '--all' => null, '--panel' => 'admin', '--option' => 'permissions', - '--minimal' => null, ]); }) ->in(__DIR__); diff --git a/workbench/database/factories/UserFactory.php b/workbench/database/factories/UserFactory.php index dfcab01..8a58e9e 100644 --- a/workbench/database/factories/UserFactory.php +++ b/workbench/database/factories/UserFactory.php @@ -10,7 +10,7 @@ /** * @template TModel of \Workbench\App\Models\User * - * @extends \Illuminate\Database\Eloquent\Factories\Factory + * @extends Factory */ class UserFactory extends Factory {