2024-05-29 10:24:13 +00:00

47 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Views\Components\Forms;
use App\Views\Components\Hint;
use Override;
class Checkbox extends FormComponent
{
protected array $props = ['hint', 'isChecked'];
protected array $casts = [
'isChecked' => 'boolean',
];
protected string $hint = '';
protected bool $isChecked = false;
#[Override]
public function render(): string
{
$checkboxInput = form_checkbox(
[
'id' => $this->id,
'name' => $this->name,
'class' => 'form-checkbox bg-elevated text-accent-base border-contrast border-3 w-6 h-6',
],
'yes',
old($this->name) ? old($this->name) === 'yes' : $this->isChecked,
);
$hint = $this->hint === '' ? '' : (new Hint([
'class' => 'ml-1',
'slot' => $this->hint,
]))->render();
$this->mergeClass('inline-flex items-center');
return <<<HTML
<label {$this->getStringifiedAttributes()}>{$checkboxInput}<span class="ml-2">{$this->slot}{$hint}</span></label>
HTML;
}
}