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')
->link()
->record(fn (array $arguments) => ClassSession::find($arguments['session'], ['*']))
->schema(fn ($livewire) => $livewire->schema())
->schema(function ($schema, $livewire) {
return $livewire->form($schema);
})
->modalWidth(Width::TwoExtraLarge);
}
}

View File

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