diff --git src/bp-core/bp-core-functions.php src/bp-core/bp-core-functions.php
index 592f5b155..3563f5f5a 100644
--- src/bp-core/bp-core-functions.php
+++ src/bp-core/bp-core-functions.php
@@ -949,6 +949,54 @@ function bp_core_get_component_search_query_arg( $component = null ) {
 	return apply_filters( 'bp_core_get_component_search_query_arg', $query_arg, $component );
 }
 
+/**
+ * Get a list of all active component objects.
+ *
+ * @since 8.0.0
+ *
+ * @param array $args {
+ *     Optional. An array of key => value arguments to match against the component objects.
+ *     Default empty array.
+ *
+ *     @type string $name          Translatable name for the component.
+ *     @type string $id            Unique ID for the component.
+ *     @type string $slug          Unique slug for the component, for use in query strings and URLs.
+ *     @type bool   $has_directory True if the component has a top-level directory. False otherwise.
+ *     @type string $root_slug     Slug used by the component's directory page.
+ * }
+ * @param string $output   Optional. The type of output to return. Accepts 'ids'
+ *                         or 'objects'. Default 'ids'.
+ * @param string $operator Optional. The logical operation to perform. 'or' means only one
+ *                         element from the array needs to match; 'and' means all elements
+ *                         must match. Accepts 'or' or 'and'. Default 'and'.
+ * @return array A list of component ids or objects.
+ */
+function bp_core_get_active_components( $args = array(), $output = 'ids', $operator = 'and' ) {
+	$bp = buddypress();
+
+	$active_components = array_keys( $bp->active_components );
+
+	$xprofile_id = array_search( 'xprofile', $active_components, true );
+	if ( false !== $xprofile_id ) {
+		$active_components[ $xprofile_id ] = 'profile';
+	}
+
+	$components = array();
+	foreach ( $active_components as $id ) {
+		if ( isset( $bp->{$id} ) && $bp->{$id} instanceof BP_Component ) {
+			$components[ $id ] = $bp->{$id};
+		}
+	}
+
+	$components = wp_filter_object_list( $components, $args, $operator );
+
+	if ( 'ids' === $output ) {
+		$components = wp_list_pluck( $components, 'id' );
+	}
+
+	return $components;
+}
+
 /**
  * Determine whether BuddyPress should register the bp-themes directory.
  *
diff --git src/bp-members/bp-members-adminbar.php src/bp-members/bp-members-adminbar.php
index 28b6f54c3..10f784d09 100644
--- src/bp-members/bp-members-adminbar.php
+++ src/bp-members/bp-members-adminbar.php
@@ -102,7 +102,7 @@ function bp_members_admin_bar_user_admin_menu() {
 			'parent' => $bp->user_admin_menu_id,
 			'id'     => $bp->user_admin_menu_id . '-edit-profile',
 			'title'  => __( "Edit Profile", 'buddypress' ),
-			'href'   => bp_get_members_component_link( 'profile', 'edit' )
+			'href'   => bp_get_members_component_link( $bp->profile->id, 'edit' )
 		) );
 
 		// User Admin > Edit this user's avatar.
@@ -111,7 +111,7 @@ function bp_members_admin_bar_user_admin_menu() {
 				'parent' => $bp->user_admin_menu_id,
 				'id'     => $bp->user_admin_menu_id . '-change-avatar',
 				'title'  => __( "Edit Profile Photo", 'buddypress' ),
-				'href'   => bp_get_members_component_link( 'profile', 'change-avatar' )
+				'href'   => bp_get_members_component_link( $bp->profile->id, 'change-avatar' )
 			) );
 		}
 
@@ -121,7 +121,7 @@ function bp_members_admin_bar_user_admin_menu() {
 				'parent' => $bp->user_admin_menu_id,
 				'id'     => $bp->user_admin_menu_id . '-change-cover-image',
 				'title'  => __( 'Edit Cover Image', 'buddypress' ),
-				'href'   => bp_get_members_component_link( 'profile', 'change-cover-image' )
+				'href'   => bp_get_members_component_link( $bp->profile->id, 'change-cover-image' )
 			) );
 		}
 
diff --git src/bp-members/bp-members-template.php src/bp-members/bp-members-template.php
index 5ceda3078..541b27479 100644
--- src/bp-members/bp-members-template.php
+++ src/bp-members/bp-members-template.php
@@ -2800,35 +2800,43 @@ function bp_members_component_link( $component, $action = '', $query_args = '',
 	 * @return string
 	 */
 	function bp_get_members_component_link( $component, $action = '', $query_args = '', $nonce = false ) {
-
 		// Must be displayed user.
-		if ( !bp_displayed_user_id() )
+		if ( ! bp_displayed_user_id() ) {
 			return;
+		}
 
 		$bp = buddypress();
 
+		if ( 'xprofile' === $component ) {
+			$component = 'profile';
+		}
+
 		// Append $action to $url if there is no $type.
-		if ( !empty( $action ) )
+		if ( ! empty( $action ) ) {
 			$url = bp_displayed_user_domain() . $bp->{$component}->slug . '/' . $action;
-		else
+		} else {
 			$url = bp_displayed_user_domain() . $bp->{$component}->slug;
+		}
 
 		// Add a slash at the end of our user url.
 		$url = trailingslashit( $url );
 
 		// Add possible query arg.
-		if ( !empty( $query_args ) && is_array( $query_args ) )
+		if ( ! empty( $query_args ) && is_array( $query_args ) ) {
 			$url = add_query_arg( $query_args, $url );
+		}
 
 		// To nonce, or not to nonce...
-		if ( true === $nonce )
+		if ( true === $nonce ) {
 			$url = wp_nonce_url( $url );
-		elseif ( is_string( $nonce ) )
+		} elseif ( is_string( $nonce ) ) {
 			$url = wp_nonce_url( $url, $nonce );
+		}
 
 		// Return the url, if there is one.
-		if ( !empty( $url ) )
+		if ( ! empty( $url ) ) {
 			return $url;
+		}
 	}
 
 
diff --git src/bp-members/classes/class-bp-members-component.php src/bp-members/classes/class-bp-members-component.php
index 77777d645..9e6fbcd42 100644
--- src/bp-members/classes/class-bp-members-component.php
+++ src/bp-members/classes/class-bp-members-component.php
@@ -314,7 +314,7 @@ class BP_Members_Component extends BP_Component {
 
 		$access       = bp_core_can_edit_settings();
 		$slug         = bp_get_profile_slug();
-		$profile_link = bp_get_members_component_link( $slug );
+		$profile_link = bp_get_members_component_link( buddypress()->profile->id );
 
 		// Change Avatar.
 		if ( buddypress()->avatar->show_avatars ) {
diff --git src/bp-templates/bp-nouveau/buddypress/common/search-and-filters-bar.php src/bp-templates/bp-nouveau/buddypress/common/search-and-filters-bar.php
index 20441b2f3..d07d70cfb 100644
--- src/bp-templates/bp-nouveau/buddypress/common/search-and-filters-bar.php
+++ src/bp-templates/bp-nouveau/buddypress/common/search-and-filters-bar.php
@@ -3,26 +3,26 @@
  * BP Nouveau Search & filters bar
  *
  * @since 3.0.0
- * @version 3.1.0
+ * @version 8.0.0
  */
 ?>
 <div class="subnav-filters filters no-ajax" id="subnav-filters">
 
-	<?php if ( 'friends' !== bp_current_component() ) : ?>
-	<div class="subnav-search clearfix">
+	<?php if ( bp_get_friends_slug() !== bp_current_component() ) : ?>
+		<div class="subnav-search clearfix">
 
-		<?php if ( 'activity' === bp_current_component() ) : ?>
-			<div class="feed"><a href="<?php bp_sitewide_activity_feed_link(); ?>" class="bp-tooltip" data-bp-tooltip="<?php esc_attr_e( 'RSS Feed', 'buddypress' ); ?>"><span class="bp-screen-reader-text"><?php esc_html_e( 'RSS', 'buddypress' ); ?></span></a></div>
-		<?php endif; ?>
+			<?php if ( bp_get_activity_slug() === bp_current_component() ) : ?>
+				<div class="feed"><a href="<?php bp_sitewide_activity_feed_link(); ?>" class="bp-tooltip" data-bp-tooltip="<?php esc_attr_e( 'RSS Feed', 'buddypress' ); ?>"><span class="bp-screen-reader-text"><?php esc_html_e( 'RSS', 'buddypress' ); ?></span></a></div>
+			<?php endif; ?>
 
-		<?php bp_nouveau_search_form(); ?>
+			<?php bp_nouveau_search_form(); ?>
 
-	</div>
+		</div>
 	<?php endif; ?>
 
 		<?php if ( bp_is_user() && ! bp_is_current_action( 'requests' ) ) : ?>
 			<?php bp_get_template_part( 'common/filters/user-screens-filters' ); ?>
-		<?php elseif ( 'groups' === bp_current_component() ) : ?>
+		<?php elseif ( bp_get_groups_slug() === bp_current_component() ) : ?>
 			<?php bp_get_template_part( 'common/filters/groups-screens-filters' ); ?>
 		<?php else : ?>
 			<?php bp_get_template_part( 'common/filters/directory-filters' ); ?>
diff --git src/bp-templates/bp-nouveau/includes/functions.php src/bp-templates/bp-nouveau/includes/functions.php
index 25b9af487..69a72e110 100644
--- src/bp-templates/bp-nouveau/includes/functions.php
+++ src/bp-templates/bp-nouveau/includes/functions.php
@@ -3,7 +3,7 @@
  * Common functions
  *
  * @since 3.0.0
- * @version 3.1.0
+ * @version 8.0.0
  */
 
 // Exit if accessed directly.
@@ -237,12 +237,21 @@ function bp_nouveau_ajax_button( $output = '', $button = null, $before = '', $af
  * }
  */
 function bp_nouveau_wrapper( $args = array() ) {
- /**
-	* Classes need to be determined & set by component to a certain degree
-	*
-	* Check the component to find a default container_class to add
-	*/
-	$current_component_class = bp_current_component() . '-meta';
+	/**
+	 * Classes need to be determined & set by component to a certain degree.
+	 *
+	 * Check the component to find a default container_class based on the component ID to add.
+	 * We need to to this because bp_current_component() is using the component slugs which can differ
+	 * from the component ID.
+	 */
+	$current_component_id = bp_core_get_active_components( array( 'slug' => bp_current_component() ) );
+	if ( $current_component_id && 1 === count( $current_component_id ) ) {
+		$current_component_id = reset( $current_component_id );
+	} else {
+		$current_component_id = bp_current_component();
+	}
+
+	$current_component_class = $current_component_id . '-meta';
 
 	if ( bp_is_group_activity() ) {
 		$generic_class = ' activity-meta ';
@@ -255,7 +264,7 @@ function bp_nouveau_wrapper( $args = array() ) {
 		array(
 			'container'         => 'div',
 			'container_id'      => '',
-			'container_classes' => array( $generic_class, $current_component_class   ),
+			'container_classes' => array( $generic_class, $current_component_class ),
 			'output'            => '',
 		),
 		'nouveau_wrapper'
@@ -532,8 +541,9 @@ function bp_nouveau_get_component_filters( $context = '', $component = '' ) {
 	}
 
 	if ( empty( $component ) ) {
-		if ( 'directory' === $context || 'user' === $context ) {
-			$component = bp_current_component();
+		if ( 'user' === $context ) {
+			$component = bp_core_get_active_components( array( 'slug' => bp_current_component() ) );
+			$component = reset( $component );
 
 			if ( 'friends' === $component ) {
 				$context   = 'friends';
@@ -543,6 +553,8 @@ function bp_nouveau_get_component_filters( $context = '', $component = '' ) {
 			$component = 'activity';
 		} elseif ( 'group' === $context && bp_is_group_members() ) {
 			$component = 'members';
+		} else {
+			$component = bp_current_component();
 		}
 	}
 
diff --git src/bp-templates/bp-nouveau/includes/template-tags.php src/bp-templates/bp-nouveau/includes/template-tags.php
index 5ee755a05..e195c22a5 100644
--- src/bp-templates/bp-nouveau/includes/template-tags.php
+++ src/bp-templates/bp-nouveau/includes/template-tags.php
@@ -3,7 +3,7 @@
  * Common template tags
  *
  * @since 3.0.0
- * @version 7.0.0
+ * @version 8.0.0
  */
 
 // Exit if accessed directly.
@@ -2068,14 +2068,21 @@ function bp_nouveau_current_object() {
 		}
 
 	} else {
-		$data_filter = bp_current_component();
+		$component_id = bp_current_component();
+		if ( ! bp_is_directory() ) {
+			$component_id = bp_core_get_active_components( array( 'slug' => $component_id ) );
+			$component_id = reset( $component_id );
+		}
+
+		$data_filter  = $component_id;
+
 		if ( 'friends' === $data_filter && bp_is_user_friend_requests() ) {
 			$data_filter = 'friend_requests';
 		}
 
 		$component['members_select']   = 'members-order-select';
 		$component['members_order_by'] = 'members-order-by';
-		$component['object']           = bp_current_component();
+		$component['object']           = $component_id;
 		$component['data_filter']      = $data_filter;
 	}
 
@@ -2232,7 +2239,7 @@ function bp_nouveau_filter_options() {
 	function bp_nouveau_get_filter_options() {
 		$output = '';
 
-		if ( 'notifications' === bp_current_component() ) {
+		if ( bp_get_notifications_slug() === bp_current_component() ) {
 			$output = bp_nouveau_get_notifications_filters();
 
 		} else {
