From ce7d08706d50fd0d0185f682f11783b64d23ec83 Mon Sep 17 00:00:00 2001
From: Brian Perry <4344-backlineint@users.noreply.drupalcode.org>
Date: Sat, 30 Sep 2023 15:21:31 +0000
Subject: [PATCH] Issue #3387795: Option to Disable Transitions for Admin Theme

---
 view_transitions.module | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/view_transitions.module b/view_transitions.module
index f85e4d9..c19cb38 100644
--- a/view_transitions.module
+++ b/view_transitions.module
@@ -31,7 +31,7 @@ function view_transitions_preprocess_html(&$variables) {
   $page_transitions = \Drupal::config('view_transitions.settings')->get('page_transitions');
   $animation_type = \Drupal::config('view_transitions.settings')->get('animation_type');
   $transition_in_admin = \Drupal::config('view_transitions.settings')->get('transition_in_admin');
-  $is_admin = \Drupal::service('router.admin_context')->isAdminRoute();
+  $is_admin = view_transitions_is_admin();
 
   // Don't transition on admin pages unless explicitly enabled
   if (!$is_admin || ($is_admin && $transition_in_admin)) {
@@ -58,4 +58,17 @@ function view_transitions_preprocess_html(&$variables) {
       $variables['html_attributes']->addClass('view-transition-none');
     }
   }
+}
+
+/**
+ * Determine if the user is at an admin route, or a non-admin route using the toolbar
+ */
+function view_transitions_is_admin() {
+  if (\Drupal::service('router.admin_context')->isAdminRoute()) {
+    return true;
+  }
+  if (\Drupal::currentUser()->isAuthenticated() && \Drupal::currentUser()->hasPermission('access toolbar')) {
+    return true;
+  }
+  return false;
 }
\ No newline at end of file
-- 
GitLab