/** * External dependencies */ import { useState, createInterpolateElement } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { chevronLeft } from '@wordpress/icons'; import classNames from 'classnames'; import { Link } from '@woocommerce/components'; import { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore No types for this exist yet. __unstableMotion as motion, Button, } from '@wordpress/components'; /** * Internal dependencies */ import { CustomizeStoreComponent } from '../types'; import { SiteHub } from '../assembler-hub/site-hub'; import { ThemeCard } from './theme-card'; import { DesignChangeWarningModal } from './design-change-warning-modal'; import './intro.scss'; import { useNetworkStatus } from '~/utils/react-hooks/use-network-status'; import { ADMIN_URL } from '~/utils/admin-settings'; export type events = | { type: 'DESIGN_WITH_AI' } | { type: 'JETPACK_OFFLINE_HOWTO' } | { type: 'CLICKED_ON_BREADCRUMB' } | { type: 'SELECTED_BROWSE_ALL_THEMES' } | { type: 'SELECTED_ACTIVE_THEME'; payload: { theme: string } } | { type: 'SELECTED_NEW_THEME'; payload: { theme: string } }; export * as actions from './actions'; export * as services from './services'; export const Intro: CustomizeStoreComponent = ( { sendEvent, context } ) => { const { intro: { themeCards, activeThemeHasMods, customizeStoreTaskCompleted }, } = context; const isJetpackOffline = false; const isNetworkOffline = useNetworkStatus(); let bannerText; let bannerTitle; let bannerButtonText; if ( isNetworkOffline ) { bannerText = __( "Unfortunately, the [AI Store designer] isn't available right now as we can't detect your network. Please check your internet connection and try again.", 'woocommerce' ); bannerTitle = __( 'Looking to design your store using AI?', 'woocommerce' ); bannerButtonText = __( 'Retry', 'woocommerce' ); } else if ( isJetpackOffline ) { bannerTitle = __( 'Looking to design your store using AI?', 'woocommerce' ); bannerText = __( "It looks like you're using Jetpack's offline mode — switch to online mode to start designing with AI.", 'woocommerce' ); bannerButtonText = __( 'Find out how', 'woocommerce' ); } else { bannerTitle = __( 'Use the power of AI to design your store', 'woocommerce' ); bannerText = __( 'Design the look of your store, create pages, and generate copy using our built-in AI tools.', 'woocommerce' ); bannerButtonText = __( 'Design with AI', 'woocommerce' ); } const [ openDesignChangeWarningModal, setOpenDesignChangeWarningModal ] = useState( false ); return ( <> { openDesignChangeWarningModal && ( { setOpenDesignChangeWarningModal( false ); } } >

{ createInterpolateElement( __( "The [AI designer*] will create a new store design for you, and you'll lose any changes you've made to your active theme. If you'd prefer to continue editing your theme, you can do so via the Editor.", 'woocommerce' ), { EditorLink: ( { window.open( `${ ADMIN_URL }site-editor.php`, '_blank' ); return false; } } href="" /> ), } ) }

) }
{ __( 'Customize your store', 'woocommerce' ) }

{ __( 'Create a store that reflects your brand and business. Select one of our professionally designed themes to customize, or create your own using AI.', 'woocommerce' ) }

{ bannerTitle }

{ bannerText }

{ __( 'Or select a professionally designed theme to customize and make your own.', 'woocommerce' ) }

{ themeCards?.map( ( themeCard ) => ( ) ) }
); };