Skip to content

Cannot include two pattern select elements on same page #316

Description

@nedjo

Bug description

In Drupal\ui_patterns\Form\PatternDisplayFormTrait::buildPatternDisplayForm() we explicitly assign an 'id' attribute to the $form['pattern'] select element as follows:

      '#attributes' => ['id' => 'patterns-select'],

and subsequently attach #states behaviours using this same hard-coded 'patterns-select' ID:

          '#states' => [
            'visible' => [
              'select[id="patterns-select"]' => ['value' => $pattern_id],
            ],
          ],

This means placing more than one pattern select on a given form leads to invalid HTML and broken #states.

Use case

An example use case is in the UI Patterns Blocks module, see the issue Support sub-patterns for block .

Proposed fix

Use Html::getUniqueId() to generate a unique ID value and use that in the '#states' values.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions