/** * External dependencies */ import { __ } from '@wordpress/i18n'; import { Guide } from '@wordpress/components'; import { OPTIONS_STORE_NAME } from '@woocommerce/data'; import { recordEvent } from '@woocommerce/tracks'; import { Text } from '@woocommerce/experimental'; import { useState } from '@wordpress/element'; import { useSelect, useDispatch } from '@wordpress/data'; /** * Internal dependencies */ import './style.scss'; import NavInto1 from './images/nav-intro-1.png'; import NavInto2 from './images/nav-intro-2.png'; import NavInto3 from './images/nav-intro-3.png'; export const INTRO_MODAL_DISMISSED_OPTION_NAME = 'woocommerce_navigation_intro_modal_dismissed'; export const IntroModal = () => { const [ isOpen, setOpen ] = useState( true ); const { updateOptions } = useDispatch( OPTIONS_STORE_NAME ); const { isDismissed, isResolving } = useSelect( ( select ) => { const { getOption, isResolving: isOptionResolving } = select( OPTIONS_STORE_NAME ); const dismissedOption = getOption( INTRO_MODAL_DISMISSED_OPTION_NAME ); return { isDismissed: dismissedOption === 'yes', isResolving: typeof dismissedOption === 'undefined' || isOptionResolving( 'getOption', [ INTRO_MODAL_DISMISSED_OPTION_NAME, ] ), }; } ); const dismissModal = () => { updateOptions( { [ INTRO_MODAL_DISMISSED_OPTION_NAME ]: 'yes', } ); recordEvent( 'navigation_intro_modal_close', {} ); setOpen( false ); }; if ( ! isOpen || isDismissed || isResolving ) { return null; } const getPage = ( title, description, imageUrl ) => { return { content: (