diff --git a/view_transitions.module b/view_transitions.module index f85e4d9e957c83070946e581a29aae0e0b92ef8a..c19cb38a1d896ca4e14ec687f9093b8a47cdbfc8 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