From 4f6f2622e1f4af995c6e45271798ea47e63fd63f Mon Sep 17 00:00:00 2001 From: Omar Alshaker Date: Fri, 31 Jan 2025 16:22:43 +0100 Subject: [PATCH] Help Center: don't autoopen the Help Center in Support Sessions (#99164) --- packages/data-stores/src/help-center/index.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/data-stores/src/help-center/index.ts b/packages/data-stores/src/help-center/index.ts index 5d5ae44dcd7bd..34f3bbdcd81e5 100644 --- a/packages/data-stores/src/help-center/index.ts +++ b/packages/data-stores/src/help-center/index.ts @@ -17,7 +17,23 @@ const E2E_USER_AGENT = 'wp-e2e-tests'; export const isE2ETest = () => typeof window !== 'undefined' && window.navigator.userAgent.includes( E2E_USER_AGENT ); +export const isSupportSession = () => { + if ( typeof window !== 'undefined' ) { + return ( + 'isSupportSession' in window || + // A bit hacky but much easier than passing down data from PHP in Jetpack + // Simple + !! document.querySelector( '#wp-admin-bar-support-session-details' ) || + // Atomic + document.body.classList.contains( 'support-session' ) + ); + } + return false; +}; + export function register(): typeof STORE_KEY { + const enabledPesistedOpenState = ! isE2ETest() && ! isSupportSession(); + registerPlugins(); if ( ! isRegistered ) { @@ -28,7 +44,7 @@ export function register(): typeof STORE_KEY { selectors, persist: [ 'message', 'userDeclaredSite', 'userDeclaredSiteUrl', 'subject' ], // Don't persist the open state for e2e users, because parallel tests will start interfering with each other. - resolvers: isE2ETest() ? undefined : { isHelpCenterShown }, + resolvers: enabledPesistedOpenState ? { isHelpCenterShown } : undefined, } ); isRegistered = true; }