/** * External dependencies */ import { Component, Suspense, lazy } from '@wordpress/element'; import { compose } from '@wordpress/compose'; import { withSelect } from '@wordpress/data'; import { identity } from 'lodash'; /** * WooCommerce dependencies */ import { getSetting } from '@woocommerce/wc-admin-settings'; import { ONBOARDING_STORE_NAME, withOnboardingHydration, } from '@woocommerce/data'; import { Spinner } from '@woocommerce/components'; import { getHistory, getNewPath } from '@woocommerce/navigation'; /** * Internal dependencies */ import './style.scss'; import { isOnboardingEnabled } from 'dashboard/utils'; const CustomizableDashboard = lazy( () => import( /* webpackChunkName: "customizable-dashboard" */ './customizable' ) ); class Dashboard extends Component { render() { const { path, profileItems, query } = this.props; const { completed: profileCompleted, skipped: profileSkipped } = profileItems || {}; if ( isOnboardingEnabled() && ! profileCompleted && ! profileSkipped && ! window.wcAdminFeatures.homescreen ) { getHistory().push( getNewPath( {}, `/profiler`, {} ) ); } if ( window.wcAdminFeatures[ 'analytics-dashboard/customizable' ] ) { return ( }> ); } return null; } } export default compose( getSetting( 'onboarding', {} ).profile ? withOnboardingHydration( getSetting( 'onboarding', {} ).profile ) : identity, withSelect( ( select ) => { if ( ! isOnboardingEnabled() ) { return; } const { getProfileItems } = select( ONBOARDING_STORE_NAME ); const profileItems = getProfileItems(); return { profileItems }; } ) )( Dashboard );