Exemple #1
0
		return request().then( ( { themes: rawThemes, info: { results } = {}, found = results } ) => {
			let themes;
			if ( siteId === 'wporg' ) {
				themes = map( rawThemes, normalizeWporgTheme );
			} else if ( siteId === 'wpcom' ) {
				themes = map( rawThemes, normalizeWpcomTheme );
			} else { // Jetpack Site
				themes = map( rawThemes, normalizeJetpackTheme );
			}

			if ( ( query.search || query.filter ) && query.page === 1 ) {
				const responseTime = ( new Date().getTime() ) - startTime;
				const search_taxonomies = prependThemeFilterKeys( getState(), query.filter );
				const search_term = search_taxonomies + ( query.search || '' );
				const trackShowcaseSearch = recordTracksEvent(
					'calypso_themeshowcase_search',
					{
						search_term: search_term || null,
						search_taxonomies,
						tier: query.tier,
						response_time_in_ms: responseTime,
						result_count: found,
						results_first_page: themes.map( property( 'id' ) ).join()
					}
				);
				dispatch( trackShowcaseSearch );
			}

			dispatch( receiveThemes( themes, siteId, query, found ) );
		} ).catch( ( error ) => {
Exemple #2
0
	const themeActivatedThunk = ( dispatch, getState ) => {
		const action = {
			type: THEME_ACTIVATE_SUCCESS,
			themeStylesheet,
			siteId,
		};
		const previousThemeId = getActiveTheme( getState(), siteId );
		const query = getLastThemeQuery( getState(), siteId );
		const search_taxonomies = prependThemeFilterKeys( getState(), query.filter );
		const search_term = search_taxonomies + ( query.search || '' );
		const trackThemeActivation = recordTracksEvent(
			'calypso_themeshowcase_theme_activate',
			{
				theme: getThemeIdFromStylesheet( themeStylesheet ),
				previous_theme: previousThemeId,
				source: source,
				purchased: purchased,
				search_term: search_term || null,
				search_taxonomies
			}
		);
		dispatch( withAnalytics( trackThemeActivation, action ) );
	};