return siteIds.reduce( ( sites, siteId ) => {
			const result = { ...sites };
			const slug = getSiteSlug( state, siteId );
			if ( slug ) {
				result[ siteId ] = slug;
			}
			return result;
		}, {} );
Example #2
0
/**
 * Returns the menus admin URL for the given site ID
 *
 * @param {Object}  state   Global state tree
 * @param {Number}  siteId  A site ID
 * @return {?String}        Menus admin URL
 */
export default function getMenusUrl( state, siteId ) {
	if ( ! canCurrentUser( state, siteId, 'edit_theme_options' ) ) {
		return null;
	}

	if ( isJetpackSite( state, siteId ) ) {
		return getSiteAdminUrl( state, siteId, 'customize.php' ) + '?autofocus[panel]=nav_menus';
	}
	// The Customizer's Menus panel shouldn't be available to users who haven't verified their
	// email yet, so send them to the top-level Customizer where they will (maybe?) see that Menus
	// are not available to them yet. See https://github.com/Automattic/wp-calypso/pull/13017
	if ( ! isCurrentUserEmailVerified( state ) ) {
		return '/customize/' + getSiteSlug( state, siteId );
	}

	return '/customize/menus/' + getSiteSlug( state, siteId );
}
Example #3
0
export function getJetpackUpgradeUrlIfPremiumTheme( state, themeId, siteId ) {
	if (
		isJetpackSite( state, siteId ) &&
		isThemePremium( state, themeId ) &&
		! hasFeature( state, siteId, FEATURE_UNLIMITED_PREMIUM_THEMES )
	) {
		return `/checkout/${ getSiteSlug( state, siteId ) }/professional`;
	}
	return null;
}
Example #4
0
export function getThemeHelpUrl( state, themeId, siteId ) {
	if ( ! themeId ) {
		return null;
	}

	let baseUrl = oldShowcaseUrl + themeId;
	if ( config.isEnabled( 'manage/themes/details' ) ) {
		baseUrl = `/theme/${ themeId }/support`;
	}

	return baseUrl + ( siteId ? `/${ getSiteSlug( state, siteId ) }` : '' );
}
Example #5
0
export default connect( state => {
	const statType = 'statsInsights';
	const siteId = getSelectedSiteId( state );
	const siteSlug = getSiteSlug( state, siteId );
	const insights = getSiteStatsNormalizedData( state, siteId, statType, {} );

	return {
		years: insights.years,
		siteId,
		siteSlug,
	};
} )( localize( AnnualSiteStats ) );
Example #6
0
export function getThemeSupportUrl( state, themeId, siteId ) {
	if ( ! themeId || ! isThemePremium( state, themeId ) ) {
		return null;
	}

	const sitePart = siteId ? `/${ getSiteSlug( state, siteId ) }` : '';

	if ( config.isEnabled( 'manage/themes/details' ) ) {
		return `/theme/${ themeId }/setup${ sitePart }`;
	}

	return `${ oldShowcaseUrl }${ sitePart }${ themeId }/support`;
}
Example #7
0
export function getThemeDetailsUrl( state, themeId, siteId ) {
	if ( ! themeId ) {
		return null;
	}

	if (
		isJetpackSite( state, siteId ) &&
		! (
			config.isEnabled( 'manage/themes/details/jetpack' ) &&
			canJetpackSiteManage( state, siteId ) &&
			hasJetpackSiteJetpackThemesExtendedFeatures( state, siteId )
		)
	) {
		return getSiteOption( state, siteId, 'admin_url' ) + 'themes.php?theme=' + themeId;
	}

	let baseUrl = oldShowcaseUrl + themeId;
	if ( config.isEnabled( 'manage/themes/details' ) ) {
		baseUrl = `/theme/${ themeId }`;
	}

	return baseUrl + ( siteId ? `/${ getSiteSlug( state, siteId ) }` : '' );
}
Example #8
0
const mapStateToProps = state => {
	const siteId = getSelectedSiteId( state );
	const siteSlug = getSiteSlug( state, siteId );
	return { siteId, siteSlug };
};
Example #9
0
export function getThemePurchaseUrl( state, themeId, siteId ) {
	if ( isJetpackSite( state, siteId ) || ! isThemePremium( state, themeId ) ) {
		return null;
	}
	return `/checkout/${ getSiteSlug( state, siteId ) }/theme:${ themeId }`;
}
Example #10
0
export const announceZoneDeleted = ( { dispatch, getState }, { siteId } ) => {
	page( `${ settingsPath }/${ getSiteSlug( getState(), siteId ) }` );
	dispatch( requestZones( siteId ) );
	dispatch( successNotice( translate( 'The zone has been deleted.' ), { id: deleteZoneNotice } ) );
};
Example #11
0
export const handleZoneCreated = ( { dispatch, getState }, action, response ) => {
	const { siteId } = action;

	page( `/extensions/zoninator/${ getSiteSlug( getState(), siteId ) }` );
	announceZoneSaved( dispatch, action, fromApi( response.data ) );
};