`Repeater::make('templates')
->deletable(false)
->defaultItems(0)
->itemLabel(function (array $state): HtmlString|string|null {
$name = $state['name'] ?? null
if (! $name) return null;
$showAll = (bool) data_get($this->data, 'show_all_templates', false);
if (! $showAll)
{
return $name;
}
$typeId = $state['email_type_id'] ?? null;
$typeName = $this->emailTypeLabels[$typeId] ?? 'Onbekend type';
$badge = '<span class="ml-4 inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium
bg-gray-100 text-gray-700 border border-gray-200">'
. e($typeName) .
'</span>';
return new HtmlString(e($name) . $badge);
})
->disabled(fn(Get $get) => $get('show_all_templates'))
->reorderable(true)
->schema([
Hidden::make('id'),
Grid::make(2)->schema([
TextInput::make('name')->label('Naam')->required(),
Toggle::make('is_default')
->label('Standaard')
->live(),
])
])
`Repeater::make('templates')
->deletable(false)
->defaultItems(0)
->itemLabel(function (array $state): HtmlString|string|null {
$name = $state['name'] ?? null
if (! $name) return null;
$showAll = (bool) data_get($this->data, 'show_all_templates', false);
if (! $showAll)
{
return $name;
}
$typeId = $state['email_type_id'] ?? null;
$typeName = $this->emailTypeLabels[$typeId] ?? 'Onbekend type';
$badge = '<span class="ml-4 inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium
bg-gray-100 text-gray-700 border border-gray-200">'
. e($typeName) .
'</span>';
return new HtmlString(e($name) . $badge);
})
->disabled(fn(Get $get) => $get('show_all_templates'))
->reorderable(true)
->schema([
Hidden::make('id'),
Grid::make(2)->schema([
TextInput::make('name')->label('Naam')->required(),
Toggle::make('is_default')
->label('Standaard')
->live(),
])
])