/** * WordPress dependencies */ import { Button } from '@safe-wordpress/components'; import { useSelect } from '@safe-wordpress/data'; import { _x } from '@safe-wordpress/i18n'; /** * External dependencies */ import { store as NAB_DATA } from '@nab/data'; /** * Internal dependencies */ import './style.scss'; import { RecentlyFinishedExperiment } from './recently-finished-experiment'; export function RecentlyFinishedExperiments(): JSX.Element { const { allRecentlyFinishedExperiments, allResultsLink, isLoading, recentCount, runningCount, } = useSelect( ( select ) => ( { allRecentlyFinishedExperiments: select( NAB_DATA ).getRecentlyFinishedExperimentSummaries(), allResultsLink: select( NAB_DATA ).getAdminUrl( 'edit.php?post_type=nab_experiment&post_status=nab_running&order=desc' ), isLoading: ! select( NAB_DATA ).isRecommendationEngineDataLoaded(), recentCount: select( NAB_DATA ).getRecentlyFinishedExperimentCount(), runningCount: select( NAB_DATA ).getRunningExperimentCount(), } ), [] ); const recentlyFinishedExperiments = runningCount <= 2 && allRecentlyFinishedExperiments.length > 3 ? allRecentlyFinishedExperiments.slice( 0, 3 ) : allRecentlyFinishedExperiments; if ( ! recentlyFinishedExperiments.length || isLoading ) { return (

{ _x( 'Recently finished', 'text', 'nelio-ab-testing' ) }

{ isLoading ? _x( 'Loading…', 'text', 'nelio-ab-testing' ) : _x( 'No recently finished tests', 'text', 'nelio-ab-testing' ) }

{ ! isLoading && (

{ runningCount ? _x( 'Your tests are still warming up. Results will appear here once a test finishes.', 'text', 'nelio-ab-testing' ) : _x( 'Run and finish your first test to start building your optimization history.', 'user', 'nelio-ab-testing' ) }

) }
); } return (

{ _x( 'Recently finished', 'text', 'nelio-ab-testing' ) } { recentCount }

); }