function PageActions::build

Overrides TopBarItemBase::build

File

core/modules/navigation/src/Plugin/TopBarItem/PageActions.php, line 69

Class

PageActions
Provides the Page Actions basic top bar item.

Namespace

Drupal\navigation\Plugin\TopBarItem

Code

public function build() : array {
    $build = [
        '#cache' => [
            'contexts' => [
                'route',
            ],
        ],
    ];
    // Local tasks for content entities.
    if (!$this->navigationRenderer
        ->hasLocalTasks()) {
        return $build;
    }
    $page_actions = $this->navigationRenderer
        ->getLocalTasks();
    $featured_page_actions = $this->getFeaturedPageActions($page_actions);
    // Filter actions to exclude featured ones from the main array.
    $page_actions['page_actions'] = array_filter($page_actions['page_actions'], static fn($action_route) => !array_key_exists($action_route, $featured_page_actions), ARRAY_FILTER_USE_KEY);
    $build += [
        '#theme' => 'top_bar_page_actions',
        '#page_actions' => $page_actions['page_actions'],
        '#featured_page_actions' => $featured_page_actions,
    ];
    assert($page_actions['cacheability'] instanceof CacheableMetadata);
    $page_actions['cacheability']->applyTo($build);
    return $build;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.