Files
kimai2/src/Form/Extension/IconExtension.php
2024-09-20 14:30:11 +02:00

40 lines
1.1 KiB
PHP

<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Form\Extension;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;
/**
* Allows to register custom icons at form fields
*/
final class IconExtension extends AbstractTypeExtension
{
public static function getExtendedTypes(): iterable
{
return [TextType::class];
}
public function buildView(FormView $view, FormInterface $form, array $options): void
{
$view->vars['icon'] = $options['icon'] ?? null;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefined(['icon']);
$resolver->setAllowedTypes('icon', ['string', 'null']);
$resolver->setDefault('icon', '');
}
}