From 6d79e978739c2aaec5eadf91384b0930b7635a54 Mon Sep 17 00:00:00 2001
From: yannickoo <drupal@yannick.md>
Date: Thu, 20 Mar 2025 10:20:14 +0100
Subject: [PATCH] Issue #3495223: Improve UX for Local Tasks in Toolbar

---
 .../src/AdminToolbarToolsHelper.php                | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/admin_toolbar_tools/src/AdminToolbarToolsHelper.php b/admin_toolbar_tools/src/AdminToolbarToolsHelper.php
index 46b13a2..4f7ddbc 100644
--- a/admin_toolbar_tools/src/AdminToolbarToolsHelper.php
+++ b/admin_toolbar_tools/src/AdminToolbarToolsHelper.php
@@ -102,6 +102,16 @@ class AdminToolbarToolsHelper {
           }
         }
 
+        $local_tasks_default_url = Url::fromRoute('<none>');
+        $local_tasks_default_title = $this->t('Local Tasks');
+        // Set default URL to entity edit form if available.
+        foreach ($local_task_links['#links'] as $route_name => $link) {
+          if (preg_match('/^entity\..+\.edit_form$/', $route_name)) {
+            $local_tasks_default_url = $link['url'];
+            $local_tasks_default_title = $link['title'];
+          }
+        }
+
         $build = [
           '#type' => 'toolbar_item',
           '#wrapper_attributes' => [
@@ -117,8 +127,8 @@ class AdminToolbarToolsHelper {
             // This means that for now we always render Local Tasks item even
             // when the tray is empty.
             '#type' => 'link',
-            '#title' => $this->t('Local Tasks'),
-            '#url' => Url::fromRoute('<none>'),
+            '#title' => $local_tasks_default_title,
+            '#url' => $local_tasks_default_url,
             '#attributes' => [
               'class' => [
                 'toolbar-icon',
-- 
GitLab