You are here

public static function ParagraphsWidget::addMoreAjax in Paragraphs 8

Ajax callback for the "Add another item" button.

This returns the new page content to replace the page content made obsolete by the form submission.

Overrides WidgetBase::addMoreAjax

File

src/Plugin/Field/FieldWidget/ParagraphsWidget.php, line 1706

Class

ParagraphsWidget
Plugin implementation of the 'entity_reference_revisions paragraphs' widget.

Namespace

Drupal\paragraphs\Plugin\Field\FieldWidget

Code

public static function addMoreAjax(array $form, FormStateInterface $form_state) {
  $submit = ParagraphsWidget::getSubmitElementInfo($form, $form_state);
  $element = $submit['element'];

  // Add a DIV around the delta receiving the Ajax effect.
  $delta = $submit['element']['#max_delta'];
  $element[$delta]['#prefix'] = '<div class="ajax-new-content">' . (isset($element[$delta]['#prefix']) ? $element[$delta]['#prefix'] : '');
  $element[$delta]['#suffix'] = (isset($element[$delta]['#suffix']) ? $element[$delta]['#suffix'] : '') . '</div>';

  // Clear the Add more delta.
  NestedArray::setValue($element, [
    'add_more',
    'add_more_delta',
    '#value',
  ], '');
  return $element;
}