refactor: update class session form to use Filament Schema builder pattern

This commit is contained in:
Yoga Pangestu 2026-03-30 08:16:52 +07:00
parent 16bcba3ef3
commit 2a8412ff60
2 changed files with 41 additions and 37 deletions

View File

@ -22,7 +22,9 @@ protected function setUp(): void
->icon('heroicon-o-pencil') ->icon('heroicon-o-pencil')
->link() ->link()
->record(fn (array $arguments) => ClassSession::find($arguments['session'], ['*'])) ->record(fn (array $arguments) => ClassSession::find($arguments['session'], ['*']))
->schema(fn ($livewire) => $livewire->schema()) ->schema(function ($schema, $livewire) {
return $livewire->form($schema);
})
->modalWidth(Width::TwoExtraLarge); ->modalWidth(Width::TwoExtraLarge);
} }
} }

View File

@ -25,6 +25,7 @@
use Filament\Forms\Contracts\HasForms; use Filament\Forms\Contracts\HasForms;
use Filament\Resources\Pages\Page; use Filament\Resources\Pages\Page;
use Filament\Schemas\Components\Grid; use Filament\Schemas\Components\Grid;
use Filament\Schemas\Schema;
use Filament\Support\Enums\Width; use Filament\Support\Enums\Width;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Livewire\Attributes\Computed; use Livewire\Attributes\Computed;
@ -74,9 +75,10 @@ public function sessions(): Collection
]); ]);
} }
public function form(): array public function form(Schema $schema): Schema
{ {
return [ return $schema
->schema([
Grid::make(['default' => 2]) Grid::make(['default' => 2])
->schema([ ->schema([
TextInput::make('session_number') TextInput::make('session_number')
@ -112,7 +114,7 @@ public function form(): array
->seconds(false) ->seconds(false)
->required(), ->required(),
]), ]),
]; ]);
} }
#[Computed] #[Computed]
@ -139,7 +141,7 @@ protected function getHeaderActions(): array
->modalHeading('Tambah Sesi') ->modalHeading('Tambah Sesi')
->modalSubmitActionLabel('Simpan') ->modalSubmitActionLabel('Simpan')
->modalCancelActionLabel('Batal') ->modalCancelActionLabel('Batal')
->schema($this->form()) ->schema(fn (Schema $schema) => $this->form($schema))
->mutateDataUsing(function (array $data): array { ->mutateDataUsing(function (array $data): array {
$data['course_id'] = $this->courseId; $data['course_id'] = $this->courseId;