Skip to content

[Autocomplete] Tom Select Options Plugins #2656

Open
@luchidalgo

Description

@luchidalgo

I create a new autocomplete field with AJAX capabilities using #[AsEntityAutocompleteField] attribute and extending AbstractType.

When I configure the field, I want to add a plugin on tom-select using tom_select_options -> plugins configuration :


#[AsEntityAutocompleteField]
class AdminCompanyAutocompleteField extends AbstractType
{
    public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefaults([
            'class' => Company::class,
            'choice_label' => 'label',
            'searchable_fields' => ['label'],
            'security' => User::ROLE_ADMIN,
            'multiple' => false,
            'tom_select_options' => [
                'plugins' =>  ['dropdown_input']
            ]
        ]);
    }

    public function getParent(): string
    {
        return BaseEntityAutocompleteType::class;
    }
}

The problem is this part overwrite the Tom select plugins configuration done in controller.ts :

           'tom_select_options' => [
                'plugins' =>  ['dropdown_input']
            ]

Overwriting at : https://github.com/luchidalgo/ux/blob/ab44abfd74ea319e8c2902af8abd7408e7eb3d5e/src/Autocomplete/assets/src/controller.ts#L217

Maybe we should use deep merge instead of shallow merge ?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions