Skip to content

Commit 9ef9f94

Browse files
authored
Merge pull request #12113 from google/enhancement/11968-dismiss-active-tooltips
Enhancement/11968 dismiss active tooltips
2 parents ca2f64c + b40fd27 commit 9ef9f94

3 files changed

Lines changed: 35 additions & 1 deletion

File tree

assets/js/components/email-reporting/UserSettingsSelectionPanel/index.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
* WordPress dependencies
2121
*/
2222
import { __ } from '@wordpress/i18n';
23-
import { useCallback, useState } from '@wordpress/element';
23+
import { useCallback, useEffect, useState } from '@wordpress/element';
24+
import { usePrevious } from '@wordpress/compose';
2425

2526
/**
2627
* Internal dependencies
@@ -40,6 +41,7 @@ export default function UserSettingsSelectionPanel() {
4041
const isOpen = useSelect( ( select ) =>
4142
select( CORE_UI ).getValue( USER_SETTINGS_SELECTION_PANEL_OPENED_KEY )
4243
);
44+
const previousIsOpen = usePrevious( isOpen );
4345

4446
const onSideSheetOpen = useCallback( () => {
4547
trackEvent(
@@ -173,6 +175,12 @@ export default function UserSettingsSelectionPanel() {
173175

174176
const onNoticeDismiss = useCallback( () => setNotice( null ), [] );
175177

178+
useEffect( () => {
179+
if ( ! previousIsOpen && isOpen ) {
180+
setValue( 'admin-screen-tooltip', { isTooltipVisible: false } );
181+
}
182+
}, [ isOpen, previousIsOpen, setValue ] );
183+
176184
return (
177185
<SelectionPanel
178186
className="googlesitekit-user-settings-selection-panel"

assets/js/components/email-reporting/UserSettingsSelectionPanel/index.test.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,31 @@ describe( 'UserSettingsSelectionPanel', () => {
133133
expect( dialog ).toHaveAttribute( 'aria-hidden', 'false' );
134134
} );
135135

136+
it( 'hides admin screen tooltip when the panel opens', async () => {
137+
registry
138+
.dispatch( CORE_UI )
139+
.setValue( USER_SETTINGS_SELECTION_PANEL_OPENED_KEY, false );
140+
registry.dispatch( CORE_UI ).setValue( 'admin-screen-tooltip', {
141+
isTooltipVisible: true,
142+
} );
143+
144+
render( <UserSettingsSelectionPanel />, {
145+
registry,
146+
features,
147+
viewContext: VIEW_CONTEXT_MAIN_DASHBOARD,
148+
} );
149+
150+
registry
151+
.dispatch( CORE_UI )
152+
.setValue( USER_SETTINGS_SELECTION_PANEL_OPENED_KEY, true );
153+
154+
await waitFor( () =>
155+
expect(
156+
registry.select( CORE_UI ).getValue( 'admin-screen-tooltip' )
157+
).toMatchObject( { isTooltipVisible: false } )
158+
);
159+
} );
160+
136161
it( 'calls saveEmailReportingSettings with subscribed true when subscribing', async () => {
137162
const coreUserDispatch = registry.dispatch( CORE_USER );
138163
const saveSpy = jest

assets/js/hooks/useOpenEmailReportingSelectionPanelEffect.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default function useOpenEmailReportingSelectionPanelEffect() {
3939
// If redirected from a pointer CTA or following link from email footer, open the Email Reporting selection panel.
4040
if ( emailReportingPanelOpen !== undefined ) {
4141
setUIValue( USER_SETTINGS_SELECTION_PANEL_OPENED_KEY, true );
42+
setUIValue( 'admin-screen-tooltip', { isTooltipVisible: false } );
4243
setEmailReportingPanelOpen( undefined );
4344
}
4445
} );

0 commit comments

Comments
 (0)