<?php

/**
 * @file
 */

use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Theme\ThemePreprocess;
use Drupal\field_ui\FieldUI;

/**
 * Prepares variables for field UI overview table templates.
 *
 * Default template: field-ui-table.html.twig.
 *
 * @param array $variables
 *   An associative array containing:
 *   - elements: An associative array containing a Form API structure to be
 *     rendered as a table.
 *
 * @deprecated in drupal:11.3.0 and is removed from drupal:12.0.0. Initial
 *   template_preprocess functions are registered directly in hook_theme().
 *
 * @see https://www.drupal.org/node/3533060
 */
function template_preprocess_field_ui_table(&$variables): void {
  @trigger_error(__FUNCTION__ . ' is deprecated in drupal:11.3.0 and is removed from drupal:12.0.0. Initial template_preprocess functions are registered directly in hook_theme(). See https://www.drupal.org/node/3533060', E_USER_DEPRECATED);
  \Drupal::service(ThemePreprocess::class)->preprocessTable($variables);
}

/**
 * Form submission handler for the 'Save and manage fields' button.
 *
 * @see field_ui_form_alter()
 */
function field_ui_form_manage_field_form_submit($form, FormStateInterface $form_state): void {
  $provider = $form_state->getFormObject()->getEntity()->getEntityType()->getProvider();
  $id = $form_state->getFormObject()->getEntity()->id();
  if ($form_state->getTriggeringElement()['#parents'][0] === 'save_continue' && $route_info = FieldUI::getOverviewRouteInfo($provider, $id)) {
    $form_state->setRedirectUrl($route_info);
  }
}
