diff --git a/src/Plugin/Field/FieldWidget/ParagraphsWidget.php b/src/Plugin/Field/FieldWidget/ParagraphsWidget.php index edb24b9..4300f05 100644 --- a/src/Plugin/Field/FieldWidget/ParagraphsWidget.php +++ b/src/Plugin/Field/FieldWidget/ParagraphsWidget.php @@ -1624,13 +1624,20 @@ class ParagraphsWidget extends WidgetBase { $field_name = $this->fieldDefinition->getName(); $field_title = $this->fieldDefinition->getLabel(); $setting_title = $this->getSetting('title'); + $select_options = $this->getAccessibleOptions(); $add_more_elements['add_more_select'] = [ '#type' => 'select', - '#options' => $this->getAccessibleOptions(), + '#options' => $select_options, '#title' => $this->t('@title type', ['@title' => $setting_title]), '#label_display' => 'hidden', ]; + // Do not present the select element if only one option is available. + if (count($select_options) === 1) { + $add_more_elements['add_more_select']['#type'] = 'value'; + $add_more_elements['add_more_select']['#value'] = key($select_options); + } + $text = $this->t('Add @title', ['@title' => $setting_title]); if ($this->realItemCount > 0) { diff --git a/tests/src/Functional/ParagraphsExperimentalUiTest.php b/tests/src/Functional/ParagraphsExperimentalUiTest.php index f4d24d2..b21e2c0 100644 --- a/tests/src/Functional/ParagraphsExperimentalUiTest.php +++ b/tests/src/Functional/ParagraphsExperimentalUiTest.php @@ -98,4 +98,40 @@ class ParagraphsExperimentalUiTest extends BrowserTestBase { $this->assertSession()->responseContains('class="paragraphs-description paragraphs-collapsed-description">