Update cursor rules for Filament 4.x: Refined tab usage guidelines, clarified namespace imports, and emphasized the distinction between resource list page tabs and form/schema tabs. Added critical notes on incorrect usage of Tab components and provided examples for proper implementation.
This commit is contained in:
+86
-6
@@ -102,11 +102,85 @@ use Filament\Forms\Components\FileUpload;
|
|||||||
use Filament\Schemas\Components\Section; // ✅ Doğru
|
use Filament\Schemas\Components\Section; // ✅ Doğru
|
||||||
use Filament\Schemas\Components\Grid; // ✅ Doğru
|
use Filament\Schemas\Components\Grid; // ✅ Doğru
|
||||||
use Filament\Schemas\Components\Fieldset; // ✅ Doğru
|
use Filament\Schemas\Components\Fieldset; // ✅ Doğru
|
||||||
|
use Filament\Schemas\Components\Flex; // ✅ Doğru
|
||||||
|
|
||||||
// Tabs components (ÖNEMLİ: Forms namespace!)
|
// Tabs components (ÖNEMLİ: Schemas namespace!)
|
||||||
use Filament\Forms\Components\Tabs; // ✅ Doğru
|
use Filament\Schemas\Components\Tabs; // ✅ Doğru
|
||||||
// Tab kullanımı: Tabs\Tab::make() şeklinde kullan
|
use Filament\Schemas\Components\Tabs\Tab; // ✅ Doğru
|
||||||
// Import gerekmez, Tabs namespace'i üzerinden erişilir
|
// FORM/INFOLIST içindeki tab'lar için yukarıdaki import'ları kullan
|
||||||
|
|
||||||
|
// Wizard component (Schemas namespace!)
|
||||||
|
use Filament\Schemas\Components\Wizard;
|
||||||
|
use Filament\Schemas\Components\Wizard\Step;
|
||||||
|
|
||||||
|
// Infolist entry components
|
||||||
|
use Filament\Infolists\Components\TextEntry;
|
||||||
|
use Filament\Infolists\Components\IconEntry;
|
||||||
|
use Filament\Infolists\Components\ImageEntry;
|
||||||
|
```
|
||||||
|
|
||||||
|
#### **Filament 4.x TAB KULLANIM KURALLARI (KRİTİK!):**
|
||||||
|
|
||||||
|
Filament 4.x'te **iki farklı Tab sistemi** vardır:
|
||||||
|
|
||||||
|
**1. Resource List Pages Tabs (getTabs() metodu):**
|
||||||
|
```php
|
||||||
|
// ❌ YANLIŞ - Bu class Filament 4.x'te YOK!
|
||||||
|
use Filament\Resources\Components\Tab;
|
||||||
|
|
||||||
|
// ✅ DOĞRU - ListRecords page'lerinde getTabs() için
|
||||||
|
use Filament\Schemas\Components\Tabs\Tab;
|
||||||
|
|
||||||
|
// Örnek kullanım:
|
||||||
|
class ListSettings extends ListRecords
|
||||||
|
{
|
||||||
|
public function getTabs(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'all' => Tab::make('Tümü')
|
||||||
|
->icon('heroicon-o-squares-2x2')
|
||||||
|
->badge(100)
|
||||||
|
->modifyQueryUsing(fn (Builder $query) => $query),
|
||||||
|
|
||||||
|
'active' => Tab::make('Aktif')
|
||||||
|
->icon('heroicon-o-check')
|
||||||
|
->badge(50)
|
||||||
|
->modifyQueryUsing(fn (Builder $query) => $query->where('is_active', true)),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**2. Form/Schema Tabs (Form içinde kullanım):**
|
||||||
|
```php
|
||||||
|
// ✅ DOĞRU - Form/Schema içinde tabs için
|
||||||
|
use Filament\Schemas\Components\Tabs;
|
||||||
|
use Filament\Schemas\Components\Tabs\Tab;
|
||||||
|
|
||||||
|
// Örnek kullanım:
|
||||||
|
public static function form(Schema $schema): Schema
|
||||||
|
{
|
||||||
|
return $schema
|
||||||
|
->components([
|
||||||
|
Tabs::make('Tabs')
|
||||||
|
->tabs([
|
||||||
|
Tab::make('Genel Bilgiler')
|
||||||
|
->icon('heroicon-o-information-circle')
|
||||||
|
->schema([
|
||||||
|
TextInput::make('name'),
|
||||||
|
// ...
|
||||||
|
]),
|
||||||
|
Tab::make('SEO')
|
||||||
|
->icon('heroicon-o-magnifying-glass')
|
||||||
|
->schema([
|
||||||
|
TextInput::make('meta_title'),
|
||||||
|
// ...
|
||||||
|
]),
|
||||||
|
])
|
||||||
|
->columnSpanFull()
|
||||||
|
->persistTabInQueryString(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
#### **YANLIŞ KULLANIM (Eski Filament 3.x):**
|
#### **YANLIŞ KULLANIM (Eski Filament 3.x):**
|
||||||
@@ -115,6 +189,8 @@ use Filament\Forms\Components\Tabs; // ✅ Doğru
|
|||||||
use Filament\Tables\Actions\EditAction; // ❌
|
use Filament\Tables\Actions\EditAction; // ❌
|
||||||
use Filament\Forms\Components\Section; // ❌
|
use Filament\Forms\Components\Section; // ❌
|
||||||
use Filament\Forms\Components\Grid; // ❌
|
use Filament\Forms\Components\Grid; // ❌
|
||||||
|
use Filament\Forms\Components\Tabs; // ❌ Forms namespace altında Tabs YOK
|
||||||
|
use Filament\Resources\Components\Tab; // ❌ Bu class hiç YOK
|
||||||
|
|
||||||
// ❌ YANLIŞ - Eski metod adları
|
// ❌ YANLIŞ - Eski metod adları
|
||||||
$table
|
$table
|
||||||
@@ -122,14 +198,18 @@ $table
|
|||||||
->bulkActions([...]) // ❌ Kullanma!
|
->bulkActions([...]) // ❌ Kullanma!
|
||||||
```
|
```
|
||||||
|
|
||||||
#### **ÖZET:**
|
#### **ÖZET (Filament 4.x Import Referansı):**
|
||||||
- ✅ **Table Actions:** `Filament\Actions\` namespace
|
- ✅ **Table Actions:** `Filament\Actions\` namespace
|
||||||
- ✅ **Table Columns:** `Filament\Tables\Columns\` namespace
|
- ✅ **Table Columns:** `Filament\Tables\Columns\` namespace
|
||||||
- ✅ **Table Filters:** `Filament\Tables\Filters\` namespace
|
- ✅ **Table Filters:** `Filament\Tables\Filters\` namespace
|
||||||
- ✅ **Form Inputs:** `Filament\Forms\Components\` namespace
|
- ✅ **Form Inputs:** `Filament\Forms\Components\` namespace
|
||||||
- ✅ **Layout Components:** `Filament\Schemas\Components\` namespace (Section, Grid, Tabs)
|
- ✅ **Layout Components:** `Filament\Schemas\Components\` namespace
|
||||||
|
- ✅ **Tabs (Tüm Kullanımlar):** `Filament\Schemas\Components\Tabs\Tab` (Her yerde bu!)
|
||||||
|
- ✅ **Infolist Entries:** `Filament\Infolists\Components\` namespace
|
||||||
- ✅ **Table Methods:** `->recordActions()` ve `->toolbarActions()`
|
- ✅ **Table Methods:** `->recordActions()` ve `->toolbarActions()`
|
||||||
|
|
||||||
|
**Önemli Not:** Filament 4.x'te `Filament\Resources\Components\Tab` diye bir class **YOK**. Tüm tab kullanımları `Filament\Schemas\Components\Tabs\Tab` ile yapılır!
|
||||||
|
|
||||||
### Dil Dosyası Yapısı
|
### Dil Dosyası Yapısı
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user