return siteIds.reduce( ( sites, siteId ) => { const result = { ...sites }; const slug = getSiteSlug( state, siteId ); if ( slug ) { result[ siteId ] = slug; } return result; }, {} );
/** * 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 ); }
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; }
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 ) }` : '' ); }
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 ) );
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`; }
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 ) }` : '' ); }
const mapStateToProps = state => { const siteId = getSelectedSiteId( state ); const siteSlug = getSiteSlug( state, siteId ); return { siteId, siteSlug }; };
export function getThemePurchaseUrl( state, themeId, siteId ) { if ( isJetpackSite( state, siteId ) || ! isThemePremium( state, themeId ) ) { return null; } return `/checkout/${ getSiteSlug( state, siteId ) }/theme:${ themeId }`; }
export const announceZoneDeleted = ( { dispatch, getState }, { siteId } ) => { page( `${ settingsPath }/${ getSiteSlug( getState(), siteId ) }` ); dispatch( requestZones( siteId ) ); dispatch( successNotice( translate( 'The zone has been deleted.' ), { id: deleteZoneNotice } ) ); };
export const handleZoneCreated = ( { dispatch, getState }, action, response ) => { const { siteId } = action; page( `/extensions/zoninator/${ getSiteSlug( getState(), siteId ) }` ); announceZoneSaved( dispatch, action, fromApi( response.data ) ); };