/** * External dependencies */ import { __ } from '@wordpress/i18n'; import { useState } from '@wordpress/element'; import { Card, Flex, FlexItem, FlexBlock, Button } from '@wordpress/components'; import { Icon, trendingUp, megaphone, closeSmall } from '@wordpress/icons'; /** * Internal dependencies */ import { CreateNewCampaignModal } from '~/marketing/components'; import { useRegisteredChannels, useRecommendedChannels, useCampaignTypes, } from '~/marketing/hooks'; import './IntroductionBanner.scss'; import wooIconUrl from './woo.svg'; import illustrationUrl from './illustration.svg'; type IntroductionBannerProps = { onDismissClick: () => void; onAddChannelsClick: () => void; }; export const IntroductionBanner = ( { onDismissClick, onAddChannelsClick, }: IntroductionBannerProps ) => { const [ isModalOpen, setModalOpen ] = useState( false ); const { data: dataRegistered } = useRegisteredChannels(); const { data: dataRecommended } = useRecommendedChannels(); const { data: dataCampaignTypes } = useCampaignTypes(); const showButtons = !! ( dataRegistered?.length && dataCampaignTypes?.length ); /** * Boolean to display the "Add channels" button in the introduction banner. * * This depends on the number of registered channels, * because if there are no registered channels, * the Channels card will not have the "Add channels" toggle button, * and it does not make sense to display the "Add channels" button in this introduction banner * that will do nothing upon click. * * If there are registered channels and recommended channels, * the Channels card will display the "Add channels" toggle button, * and clicking on the "Add channels" button in this introduction banner * will scroll to the button in Channels card. */ const showAddChannelsButton = !! ( dataRegistered?.length && dataRecommended?.length ); return (
{ __( 'Reach new customers and increase sales without leaving WooCommerce', 'woocommerce' ) }
{ __( 'Reach customers on other sales channels', 'woocommerce' ) } { __( 'Advertise with marketing campaigns', 'woocommerce' ) } { { __( 'Built by WooCommerce', 'woocommerce' ) } { showButtons && ( { showAddChannelsButton && ( ) } ) } { isModalOpen && ( setModalOpen( false ) } /> ) }
); };