diff --git src/bp-activity/bp-activity-blocks.php src/bp-activity/bp-activity-blocks.php
index 655362a92..116badd6a 100644
--- src/bp-activity/bp-activity-blocks.php
+++ src/bp-activity/bp-activity-blocks.php
@@ -11,23 +11,3 @@
 if ( ! defined( 'ABSPATH' ) ) {
 	exit;
 }
-
-/**
- * Add BP Activity blocks specific settings to the BP Blocks Editor ones.
- *
- * @since 7.0.0
- *
- * @param array $bp_editor_settings BP blocks editor settings.
- * @return array BP Activity blocks editor settings.
- */
-function bp_activity_editor_settings( $bp_editor_settings = array() ) {
-	return array_merge(
-		$bp_editor_settings,
-		array(
-			'activity' => array(
-				'embedScriptURL' => includes_url( 'js/wp-embed.min.js' ),
-			),
-		)
-	);
-}
-add_filter( 'bp_blocks_editor_settings', 'bp_activity_editor_settings' );
diff --git src/bp-activity/classes/class-bp-activity-component.php src/bp-activity/classes/class-bp-activity-component.php
index d44879fd3..398550378 100644
--- src/bp-activity/classes/class-bp-activity-component.php
+++ src/bp-activity/classes/class-bp-activity-component.php
@@ -497,6 +497,7 @@ class BP_Activity_Component extends BP_Component {
 						'wp-block-editor',
 						'wp-data',
 						'wp-compose',
+						'bp-block-data',
 					),
 				),
 			)
diff --git src/bp-activity/js/blocks/embed-activity.js src/bp-activity/js/blocks/embed-activity.js
index 520118032..5f481a7a1 100644
--- src/bp-activity/js/blocks/embed-activity.js
+++ src/bp-activity/js/blocks/embed-activity.js
@@ -232,17 +232,21 @@ var _wp = wp,
     _wp$blockEditor = _wp.blockEditor,
     RichText = _wp$blockEditor.RichText,
     BlockControls = _wp$blockEditor.BlockControls;
+/**
+ * BuddyPress dependencies.
+ */
+
+var _bp = bp,
+    embedScriptURL = _bp.blockData.embedScriptURL;
 
 var EditEmbedActivity = function EditEmbedActivity(_ref) {
   var attributes = _ref.attributes,
       setAttributes = _ref.setAttributes,
       isSelected = _ref.isSelected,
-      bpSettings = _ref.bpSettings,
       preview = _ref.preview,
       fetching = _ref.fetching;
   var url = attributes.url,
       caption = attributes.caption;
-  var embedScriptURL = bpSettings.embedScriptURL;
 
   var label = __('BuddyPress Activity URL', 'buddypress');
 
@@ -345,7 +349,6 @@ var EditEmbedActivity = function EditEmbedActivity(_ref) {
 
 var editEmbedActivityBlock = compose([withSelect(function (select, ownProps) {
   var url = ownProps.attributes.url;
-  var editorSettings = select('core/editor').getEditorSettings();
 
   var _select = select('core'),
       getEmbedPreview = _select.getEmbedPreview,
@@ -354,7 +357,6 @@ var editEmbedActivityBlock = compose([withSelect(function (select, ownProps) {
   var preview = !!url && getEmbedPreview(url);
   var fetching = !!url && isRequestingEmbedPreview(url);
   return {
-    bpSettings: editorSettings.bp.activity || {},
     preview: preview,
     fetching: fetching
   };
@@ -421,7 +423,11 @@ var _wp = wp,
 registerBlockType('bp/embed-activity', {
   title: __('Embed an activity', 'buddypress'),
   description: __('Add a block that displays the activity content pulled from this or other community sites.', 'buddypress'),
-  icon: 'buddicons-activity',
+  icon: {
+    background: '#fff',
+    foreground: '#d84800',
+    src: 'buddicons-activity'
+  },
   category: 'buddypress',
   attributes: {
     url: {
diff --git src/bp-groups/bp-groups-blocks.php src/bp-groups/bp-groups-blocks.php
index 063868ee5..c3c08fb39 100644
--- src/bp-groups/bp-groups-blocks.php
+++ src/bp-groups/bp-groups-blocks.php
@@ -12,29 +12,6 @@ if ( ! defined( 'ABSPATH' ) ) {
 	exit;
 }
 
-/**
- * Add BP Groups blocks specific settings to the BP Blocks Editor ones.
- *
- * @since 6.0.0
- *
- * @param array $bp_editor_settings BP blocks editor settings.
- * @return array BP Groups blocks editor settings.
- */
-function bp_groups_editor_settings( $bp_editor_settings = array() ) {
-	$bp = buddypress();
-
-	return array_merge(
-		$bp_editor_settings,
-		array(
-			'groups' => array(
-				'isAvatarEnabled'     => $bp->avatar && $bp->avatar->show_avatars && ! bp_disable_group_avatar_uploads(),
-				'isCoverImageEnabled' => bp_is_active( 'groups', 'cover_image' ),
-			),
-		)
-	);
-}
-add_filter( 'bp_blocks_editor_settings', 'bp_groups_editor_settings' );
-
 /**
  * Callback function to render the BP Group Block.
  *
@@ -264,12 +241,12 @@ function bp_groups_render_groups_block( $attributes = array() ) {
 			$output .= sprintf(
 				'<div class="item-header-avatar">
 					<a href="%1$s">
-						<img class="avatar" alt="%2$s" src="%3$s" />
+						<img loading="lazy" src="%2$s" alt="%3$s" class="avatar">
 					</a>
 				</div>',
 				esc_url( $group_link ),
 				/* Translators: %s is the group's name. */
-				sprintf( esc_attr__( 'Group Profile photo of %s', 'buddypress' ), $group->display_name ),
+				sprintf( esc_attr__( 'Group Profile photo of %s', 'buddypress' ), esc_html( $group->name ) ),
 				esc_url(
 					bp_core_fetch_avatar(
 						array(
diff --git src/bp-groups/classes/class-bp-groups-component.php src/bp-groups/classes/class-bp-groups-component.php
index d15a7cb58..d40a5c7b7 100644
--- src/bp-groups/classes/class-bp-groups-component.php
+++ src/bp-groups/classes/class-bp-groups-component.php
@@ -978,11 +978,9 @@ class BP_Groups_Component extends BP_Component {
 						'wp-element',
 						'wp-components',
 						'wp-i18n',
-						'wp-editor',
-						'wp-compose',
-						'wp-data',
 						'wp-block-editor',
 						'bp-block-components',
+						'bp-block-data',
 					),
 					'style'              => 'bp-group-block',
 					'style_url'          => plugins_url( 'css/blocks/group.css', dirname( __FILE__ ) ),
@@ -1019,12 +1017,11 @@ class BP_Groups_Component extends BP_Component {
 						'wp-element',
 						'wp-components',
 						'wp-i18n',
-						'wp-compose',
-						'wp-data',
 						'wp-api-fetch',
 						'wp-url',
 						'wp-block-editor',
 						'bp-block-components',
+						'bp-block-data',
 						'lodash',
 					),
 					'style'              => 'bp-groups-block',
diff --git src/bp-groups/js/blocks/group.js src/bp-groups/js/blocks/group.js
index 2ab5dac6d..0e3c7aafe 100644
--- src/bp-groups/js/blocks/group.js
+++ src/bp-groups/js/blocks/group.js
@@ -184,9 +184,6 @@ var _wp = wp,
     ToggleControl = _wp$components.ToggleControl,
     Toolbar = _wp$components.Toolbar,
     ToolbarButton = _wp$components.ToolbarButton,
-    compose = _wp.compose.compose,
-    withSelect = _wp.data.withSelect,
-    ServerSideRender = _wp.editor.ServerSideRender,
     _wp$element = _wp.element,
     Fragment = _wp$element.Fragment,
     createElement = _wp$element.createElement,
@@ -195,7 +192,11 @@ var _wp = wp,
  * BuddyPress dependencies.
  */
 
-var AutoCompleter = bp.blockComponents.AutoCompleter;
+var _bp = bp,
+    _bp$blockComponents = _bp.blockComponents,
+    AutoCompleter = _bp$blockComponents.AutoCompleter,
+    ServerSideRender = _bp$blockComponents.ServerSideRender,
+    isActive = _bp.blockData.isActive;
 /**
  * Internal dependencies.
  */
@@ -208,12 +209,11 @@ var getSlugValue = function getSlugValue(item) {
   return null;
 };
 
-var editGroup = function editGroup(_ref) {
+var editGroupBlock = function editGroupBlock(_ref) {
   var attributes = _ref.attributes,
-      setAttributes = _ref.setAttributes,
-      bpSettings = _ref.bpSettings;
-  var isAvatarEnabled = bpSettings.isAvatarEnabled,
-      isCoverImageEnabled = bpSettings.isCoverImageEnabled;
+      setAttributes = _ref.setAttributes;
+  var isAvatarEnabled = isActive('groups', 'avatar');
+  var isCoverImageEnabled = isActive('groups', 'cover');
   var avatarSize = attributes.avatarSize,
       displayDescription = attributes.displayDescription,
       displayActionButton = attributes.displayActionButton,
@@ -237,7 +237,9 @@ var editGroup = function editGroup(_ref) {
     }));
   }
 
-  return createElement(Fragment, null, createElement(BlockControls, null, createElement(Toolbar, null, createElement(ToolbarButton, {
+  return createElement(Fragment, null, createElement(BlockControls, null, createElement(Toolbar, {
+    label: __('Block toolbar', 'buddypress')
+  }, createElement(ToolbarButton, {
     icon: "edit",
     title: __('Select another group', 'buddypress'),
     onClick: function onClick() {
@@ -291,12 +293,6 @@ var editGroup = function editGroup(_ref) {
   })));
 };
 
-var editGroupBlock = compose([withSelect(function (select) {
-  var editorSettings = select('core/editor').getEditorSettings();
-  return {
-    bpSettings: editorSettings.bp.groups || {}
-  };
-})])(editGroup);
 var _default = editGroupBlock;
 exports.default = _default;
 },{"./constants":"atl5"}],"pvse":[function(require,module,exports) {
@@ -319,7 +315,11 @@ var _wp = wp,
 registerBlockType('bp/group', {
   title: __('Group', 'buddypress'),
   description: __('BuddyPress Group.', 'buddypress'),
-  icon: 'buddicons-groups',
+  icon: {
+    background: '#fff',
+    foreground: '#d84800',
+    src: 'buddicons-groups'
+  },
   category: 'buddypress',
   attributes: {
     itemID: {
diff --git src/bp-groups/js/blocks/groups.js src/bp-groups/js/blocks/groups.js
index 6c119771c..30ac54b00 100644
--- src/bp-groups/js/blocks/groups.js
+++ src/bp-groups/js/blocks/groups.js
@@ -326,8 +326,6 @@ var _wp = wp,
     Tooltip = _wp$components.Tooltip,
     ToolbarGroup = _wp$components.ToolbarGroup,
     RangeControl = _wp$components.RangeControl,
-    compose = _wp.compose.compose,
-    withSelect = _wp.data.withSelect,
     _wp$element = _wp.element,
     createElement = _wp$element.createElement,
     Fragment = _wp$element.Fragment,
@@ -342,7 +340,9 @@ var _wp = wp,
  * BuddyPress dependencies.
  */
 
-var AutoCompleter = bp.blockComponents.AutoCompleter;
+var _bp = bp,
+    AutoCompleter = _bp.blockComponents.AutoCompleter,
+    isActive = _bp.blockData.isActive;
 /**
  * Internal dependencies.
  */
@@ -363,12 +363,11 @@ var getSlugValue = function getSlugValue(item) {
   return null;
 };
 
-var editGroups = function editGroups(_ref) {
+var editGroupsBlock = function editGroupsBlock(_ref) {
   var attributes = _ref.attributes,
       setAttributes = _ref.setAttributes,
-      isSelected = _ref.isSelected,
-      bpSettings = _ref.bpSettings;
-  var isAvatarEnabled = bpSettings.isAvatarEnabled;
+      isSelected = _ref.isSelected;
+  var isAvatarEnabled = isActive('groups', 'avatar');
   var itemIDs = attributes.itemIDs,
       avatarSize = attributes.avatarSize,
       displayGroupName = attributes.displayGroupName,
@@ -565,12 +564,6 @@ var editGroups = function editGroups(_ref) {
   })));
 };
 
-var editGroupsBlock = compose([withSelect(function (select) {
-  var editorSettings = select('core/editor').getEditorSettings();
-  return {
-    bpSettings: editorSettings.bp.groups || {}
-  };
-})])(editGroups);
 var _default = editGroupsBlock;
 exports.default = _default;
 },{"@babel/runtime/helpers/toConsumableArray":"I9dH","@babel/runtime/helpers/slicedToArray":"xkYc","./constants":"jS06"}],"jcTh":[function(require,module,exports) {
@@ -593,7 +586,11 @@ var _wp = wp,
 registerBlockType('bp/groups', {
   title: __('Groups', 'buddypress'),
   description: __('BuddyPress Groups.', 'buddypress'),
-  icon: 'buddicons-groups',
+  icon: {
+    background: '#fff',
+    foreground: '#d84800',
+    src: 'buddicons-groups'
+  },
   category: 'buddypress',
   attributes: {
     itemIDs: {
diff --git src/bp-members/bp-members-blocks.php src/bp-members/bp-members-blocks.php
index 11886548b..50b49bc55 100644
--- src/bp-members/bp-members-blocks.php
+++ src/bp-members/bp-members-blocks.php
@@ -12,30 +12,6 @@ if ( ! defined( 'ABSPATH' ) ) {
 	exit;
 }
 
-/**
- * Add BP Members blocks specific settings to the BP Blocks Editor ones.
- *
- * @since 6.0.0
- *
- * @param array $bp_editor_settings BP blocks editor settings.
- * @return array BP Members blocks editor settings.
- */
-function bp_members_editor_settings( $bp_editor_settings = array() ) {
-	$bp = buddypress();
-
-	return array_merge(
-		$bp_editor_settings,
-		array(
-			'members' => array(
-				'isMentionEnabled'    => bp_is_active( 'activity' ) && bp_activity_do_mentions(),
-				'isAvatarEnabled'     => $bp->avatar && $bp->avatar->show_avatars,
-				'isCoverImageEnabled' => bp_is_active( 'members', 'cover_image' ),
-			),
-		)
-	);
-}
-add_filter( 'bp_blocks_editor_settings', 'bp_members_editor_settings' );
-
 /**
  * Callback function to render the BP Member Block.
  *
@@ -260,7 +236,7 @@ function bp_members_render_members_block( $attributes = array() ) {
 			$output .= sprintf(
 				'<div class="item-header-avatar">
 					<a href="%1$s">
-						<img class="avatar" alt="%2$s" src="%3$s" />
+						<img loading="lazy" class="avatar" alt="%2$s" src="%3$s" />
 					</a>
 				</div>',
 				esc_url( $member_link ),
diff --git src/bp-members/classes/class-bp-members-component.php src/bp-members/classes/class-bp-members-component.php
index 312a0ceca..280485e33 100644
--- src/bp-members/classes/class-bp-members-component.php
+++ src/bp-members/classes/class-bp-members-component.php
@@ -737,11 +737,9 @@ class BP_Members_Component extends BP_Component {
 						'wp-element',
 						'wp-components',
 						'wp-i18n',
-						'wp-editor',
-						'wp-compose',
-						'wp-data',
 						'wp-block-editor',
 						'bp-block-components',
+						'bp-block-data',
 					),
 					'style'              => 'bp-member-block',
 					'style_url'          => plugins_url( 'css/blocks/member.css', dirname( __FILE__ ) ),
@@ -778,12 +776,11 @@ class BP_Members_Component extends BP_Component {
 						'wp-element',
 						'wp-components',
 						'wp-i18n',
-						'wp-compose',
-						'wp-data',
 						'wp-api-fetch',
 						'wp-url',
 						'wp-block-editor',
 						'bp-block-components',
+						'bp-block-data',
 						'lodash',
 					),
 					'style'              => 'bp-members-block',
diff --git src/bp-members/js/blocks/member.js src/bp-members/js/blocks/member.js
index fa606072d..2e3648a9e 100644
--- src/bp-members/js/blocks/member.js
+++ src/bp-members/js/blocks/member.js
@@ -172,9 +172,6 @@ var _wp = wp,
     ToggleControl = _wp$components.ToggleControl,
     Toolbar = _wp$components.Toolbar,
     ToolbarButton = _wp$components.ToolbarButton,
-    compose = _wp.compose.compose,
-    withSelect = _wp.data.withSelect,
-    ServerSideRender = _wp.editor.ServerSideRender,
     _wp$element = _wp.element,
     Fragment = _wp$element.Fragment,
     createElement = _wp$element.createElement,
@@ -183,7 +180,11 @@ var _wp = wp,
  * BuddyPress dependencies.
  */
 
-var AutoCompleter = bp.blockComponents.AutoCompleter;
+var _bp = bp,
+    _bp$blockComponents = _bp.blockComponents,
+    AutoCompleter = _bp$blockComponents.AutoCompleter,
+    ServerSideRender = _bp$blockComponents.ServerSideRender,
+    isActive = _bp.blockData.isActive;
 /**
  * Internal dependencies.
  */
@@ -196,13 +197,12 @@ var getSlugValue = function getSlugValue(item) {
   return null;
 };
 
-var editMember = function editMember(_ref) {
+var editMemberBlock = function editMemberBlock(_ref) {
   var attributes = _ref.attributes,
-      setAttributes = _ref.setAttributes,
-      bpSettings = _ref.bpSettings;
-  var isAvatarEnabled = bpSettings.isAvatarEnabled,
-      isMentionEnabled = bpSettings.isMentionEnabled,
-      isCoverImageEnabled = bpSettings.isCoverImageEnabled;
+      setAttributes = _ref.setAttributes;
+  var isAvatarEnabled = isActive('members', 'avatar');
+  var isMentionEnabled = isActive('activity', 'mentions');
+  var isCoverImageEnabled = isActive('members', 'cover');
   var avatarSize = attributes.avatarSize,
       displayMentionSlug = attributes.displayMentionSlug,
       displayActionButton = attributes.displayActionButton,
@@ -223,7 +223,9 @@ var editMember = function editMember(_ref) {
     }));
   }
 
-  return createElement(Fragment, null, createElement(BlockControls, null, createElement(Toolbar, null, createElement(ToolbarButton, {
+  return createElement(Fragment, null, createElement(BlockControls, null, createElement(Toolbar, {
+    label: __('Block toolbar', 'buddypress')
+  }, createElement(ToolbarButton, {
     icon: "edit",
     title: __('Select another member', 'buddypress'),
     onClick: function onClick() {
@@ -277,12 +279,6 @@ var editMember = function editMember(_ref) {
   })));
 };
 
-var editMemberBlock = compose([withSelect(function (select) {
-  var editorSettings = select('core/editor').getEditorSettings();
-  return {
-    bpSettings: editorSettings.bp.members || {}
-  };
-})])(editMember);
 var _default = editMemberBlock;
 exports.default = _default;
 },{"./constants":"AE3e"}],"TmUL":[function(require,module,exports) {
@@ -305,7 +301,11 @@ var _wp = wp,
 registerBlockType('bp/member', {
   title: __('Member', 'buddypress'),
   description: __('BuddyPress Member.', 'buddypress'),
-  icon: 'admin-users',
+  icon: {
+    background: '#fff',
+    foreground: '#d84800',
+    src: 'admin-users'
+  },
   category: 'buddypress',
   attributes: {
     itemID: {
diff --git src/bp-members/js/blocks/members.js src/bp-members/js/blocks/members.js
index 51995673a..61f8c6b9e 100644
--- src/bp-members/js/blocks/members.js
+++ src/bp-members/js/blocks/members.js
@@ -311,8 +311,6 @@ var _wp = wp,
     Tooltip = _wp$components.Tooltip,
     ToolbarGroup = _wp$components.ToolbarGroup,
     RangeControl = _wp$components.RangeControl,
-    compose = _wp.compose.compose,
-    withSelect = _wp.data.withSelect,
     _wp$element = _wp.element,
     createElement = _wp$element.createElement,
     Fragment = _wp$element.Fragment,
@@ -326,7 +324,9 @@ var _wp = wp,
  * BuddyPress dependencies.
  */
 
-var AutoCompleter = bp.blockComponents.AutoCompleter;
+var _bp = bp,
+    AutoCompleter = _bp.blockComponents.AutoCompleter,
+    isActive = _bp.blockData.isActive;
 /**
  * Internal dependencies.
  */
@@ -347,13 +347,12 @@ var getSlugValue = function getSlugValue(item) {
   return null;
 };
 
-var editMembers = function editMembers(_ref) {
+var editMembersBlock = function editMembersBlock(_ref) {
   var attributes = _ref.attributes,
       setAttributes = _ref.setAttributes,
-      isSelected = _ref.isSelected,
-      bpSettings = _ref.bpSettings;
-  var isAvatarEnabled = bpSettings.isAvatarEnabled,
-      isMentionEnabled = bpSettings.isMentionEnabled;
+      isSelected = _ref.isSelected;
+  var isAvatarEnabled = isActive('members', 'avatar');
+  var isMentionEnabled = isActive('activity', 'mentions');
   var itemIDs = attributes.itemIDs,
       avatarSize = attributes.avatarSize,
       displayMentionSlug = attributes.displayMentionSlug,
@@ -561,12 +560,6 @@ var editMembers = function editMembers(_ref) {
   })));
 };
 
-var editMembersBlock = compose([withSelect(function (select) {
-  var editorSettings = select('core/editor').getEditorSettings();
-  return {
-    bpSettings: editorSettings.bp.members || {}
-  };
-})])(editMembers);
 var _default = editMembersBlock;
 exports.default = _default;
 },{"@babel/runtime/helpers/toConsumableArray":"I9dH","@babel/runtime/helpers/slicedToArray":"xkYc","./constants":"gr8I"}],"XEHU":[function(require,module,exports) {
@@ -589,7 +582,11 @@ var _wp = wp,
 registerBlockType('bp/members', {
   title: __('Members', 'buddypress'),
   description: __('BuddyPress Members.', 'buddypress'),
-  icon: 'groups',
+  icon: {
+    background: '#fff',
+    foreground: '#d84800',
+    src: 'groups'
+  },
   category: 'buddypress',
   attributes: {
     itemIDs: {
diff --git src/js/bp-activity/js/blocks/embed-activity.js src/js/bp-activity/js/blocks/embed-activity.js
index 22a57eeaa..c690550e7 100644
--- src/js/bp-activity/js/blocks/embed-activity.js
+++ src/js/bp-activity/js/blocks/embed-activity.js
@@ -19,7 +19,11 @@ import saveEmbedActivityBlock from './embed-activity/save';
 registerBlockType( 'bp/embed-activity', {
 	title: __( 'Embed an activity', 'buddypress' ),
 	description: __( 'Add a block that displays the activity content pulled from this or other community sites.', 'buddypress' ),
-	icon: 'buddicons-activity',
+	icon: {
+		background: '#fff',
+		foreground: '#d84800',
+		src: 'buddicons-activity',
+	},
 	category: 'buddypress',
 	attributes: {
 		url: {
diff --git src/js/bp-activity/js/blocks/embed-activity/edit.js src/js/bp-activity/js/blocks/embed-activity/edit.js
index 50c225b61..125fac0b9 100644
--- src/js/bp-activity/js/blocks/embed-activity/edit.js
+++ src/js/bp-activity/js/blocks/embed-activity/edit.js
@@ -32,16 +32,23 @@ const {
 	}
 } = wp;
 
+/**
+ * BuddyPress dependencies.
+ */
+ const {
+	blockData: {
+		embedScriptURL,
+	}
+} = bp;
+
 const EditEmbedActivity = ( {
 	attributes,
 	setAttributes,
 	isSelected,
-	bpSettings,
 	preview,
 	fetching
 } ) => {
 	const { url, caption } = attributes;
-	const { embedScriptURL } = bpSettings;
 	const label = __( 'BuddyPress Activity URL', 'buddypress' );
 	const [ value, setURL ] = useState( url );
 	const [ isEditingURL, setIsEditingURL ] = useState( ! url );
@@ -163,7 +170,6 @@ const EditEmbedActivity = ( {
 const editEmbedActivityBlock = compose( [
 	withSelect( ( select, ownProps ) => {
 		const { url } = ownProps.attributes;
-		const editorSettings = select( 'core/editor' ).getEditorSettings();
 		const {
 			getEmbedPreview,
 			isRequestingEmbedPreview,
@@ -173,7 +179,6 @@ const editEmbedActivityBlock = compose( [
 		const fetching = !! url && isRequestingEmbedPreview( url );
 
 		return {
-			bpSettings: editorSettings.bp.activity || {},
 			preview: preview,
 			fetching: fetching,
 		};
diff --git src/js/bp-activity/js/blocks/embed-activity/save.js src/js/bp-activity/js/blocks/embed-activity/save.js
index 2b4c59e14..cf7ae8317 100644
--- src/js/bp-activity/js/blocks/embed-activity/save.js
+++ src/js/bp-activity/js/blocks/embed-activity/save.js
@@ -18,19 +18,19 @@ const saveEmbedActivityBlock = ( { attributes } ) => {
 	}
 
 	return (
-		<figure className="wp-block-embed is-type-bp-activity">
-			<div className="wp-block-embed__wrapper">
-			{
-				`\n${ url }\n` /* URL needs to be on its own line. */
-			}
-			</div>
-			{ ! RichText.isEmpty( caption ) && (
-				<RichText.Content
-					tagName="figcaption"
-					value={ caption }
-				/>
-			) }
-		</figure>
+	<figure className="wp-block-embed is-type-bp-activity">
+		<div className="wp-block-embed__wrapper">
+		{
+			`\n${ url }\n` /* URL needs to be on its own line. */
+		}
+		</div>
+		{ ! RichText.isEmpty( caption ) && (
+			<RichText.Content
+				tagName="figcaption"
+				value={ caption }
+			/>
+		) }
+	</figure>
 	);
 };
 
diff --git src/js/bp-groups/js/blocks/group.js src/js/bp-groups/js/blocks/group.js
index f8cb17edb..c6e0c1404 100644
--- src/js/bp-groups/js/blocks/group.js
+++ src/js/bp-groups/js/blocks/group.js
@@ -18,7 +18,11 @@ import editGroupBlock from './group/edit';
 registerBlockType( 'bp/group', {
 	title: __( 'Group', 'buddypress' ),
 	description: __( 'BuddyPress Group.', 'buddypress' ),
-	icon: 'buddicons-groups',
+	icon: {
+		background: '#fff',
+		foreground: '#d84800',
+		src: 'buddicons-groups',
+	},
 	category: 'buddypress',
 	attributes: {
 		itemID: {
diff --git src/js/bp-groups/js/blocks/group/edit.js src/js/bp-groups/js/blocks/group/edit.js
index 8418fb488..0f44b18b2 100644
--- src/js/bp-groups/js/blocks/group/edit.js
+++ src/js/bp-groups/js/blocks/group/edit.js
@@ -15,15 +15,6 @@ const {
 		Toolbar,
 		ToolbarButton,
 	},
-	compose: {
-		compose,
-	},
-	data: {
-		withSelect,
-	},
-	editor: {
-		ServerSideRender,
-	},
 	element: {
 		Fragment,
 		createElement,
@@ -36,7 +27,15 @@ const {
 /**
  * BuddyPress dependencies.
  */
-const { AutoCompleter } = bp.blockComponents;
+const {
+	blockComponents: {
+		AutoCompleter,
+		ServerSideRender,
+	},
+	blockData: {
+		isActive,
+	}
+} = bp;
 
 /**
  * Internal dependencies.
@@ -51,8 +50,9 @@ const getSlugValue = ( item ) => {
 	return null;
 }
 
-const editGroup = ( { attributes, setAttributes, bpSettings } ) => {
-	const { isAvatarEnabled, isCoverImageEnabled } = bpSettings;
+const editGroupBlock = ( { attributes, setAttributes } ) => {
+	const isAvatarEnabled = isActive( 'groups', 'avatar' );
+	const isCoverImageEnabled = isActive( 'groups', 'cover' );
 	const { avatarSize, displayDescription, displayActionButton, displayCoverImage } = attributes;
 
 	if ( ! attributes.itemID ) {
@@ -78,7 +78,7 @@ const editGroup = ( { attributes, setAttributes, bpSettings } ) => {
 	return (
 		<Fragment>
 			<BlockControls>
-				<Toolbar>
+				<Toolbar label={ __( 'Block toolbar', 'buddypress' ) }>
 					<ToolbarButton
 						icon="edit"
 						title={ __( 'Select another group', 'buddypress' ) }
@@ -151,13 +151,4 @@ const editGroup = ( { attributes, setAttributes, bpSettings } ) => {
 	);
 };
 
-const editGroupBlock = compose( [
-	withSelect( ( select ) => {
-		const editorSettings = select( 'core/editor' ).getEditorSettings();
-		return {
-			bpSettings: editorSettings.bp.groups || {},
-		};
-	} ),
-] )( editGroup );
-
 export default editGroupBlock;
diff --git src/js/bp-groups/js/blocks/groups.js src/js/bp-groups/js/blocks/groups.js
index 78008d746..9102e5daa 100644
--- src/js/bp-groups/js/blocks/groups.js
+++ src/js/bp-groups/js/blocks/groups.js
@@ -18,7 +18,11 @@ import editGroupsBlock from './groups/edit';
 registerBlockType( 'bp/groups', {
 	title: __( 'Groups', 'buddypress' ),
 	description: __( 'BuddyPress Groups.', 'buddypress' ),
-	icon: 'buddicons-groups',
+	icon: {
+		background: '#fff',
+		foreground: '#d84800',
+		src: 'buddicons-groups',
+	},
 	category: 'buddypress',
 	attributes: {
 		itemIDs: {
diff --git src/js/bp-groups/js/blocks/groups/edit.js src/js/bp-groups/js/blocks/groups/edit.js
index 3a32fbd48..27abf0351 100644
--- src/js/bp-groups/js/blocks/groups/edit.js
+++ src/js/bp-groups/js/blocks/groups/edit.js
@@ -17,12 +17,6 @@ const {
 		ToolbarGroup,
 		RangeControl,
 	},
-	compose: {
-		compose,
-	},
-	data: {
-		withSelect,
-	},
 	element: {
 		createElement,
 		Fragment,
@@ -42,7 +36,14 @@ const {
 /**
  * BuddyPress dependencies.
  */
-const { AutoCompleter } = bp.blockComponents;
+const {
+	blockComponents: {
+		AutoCompleter,
+	},
+	blockData: {
+		isActive,
+	}
+} = bp;
 
 /**
  * Internal dependencies.
@@ -66,10 +67,8 @@ const getSlugValue = ( item ) => {
 	return null;
 }
 
-const editGroups = ( { attributes, setAttributes, isSelected, bpSettings } ) => {
-	const {
-		isAvatarEnabled,
-	} = bpSettings;
+const editGroupsBlock = ( { attributes, setAttributes, isSelected } ) => {
+	const isAvatarEnabled = isActive( 'groups', 'avatar' );
 	const {
 		itemIDs,
 		avatarSize,
@@ -294,14 +293,4 @@ const editGroups = ( { attributes, setAttributes, isSelected, bpSettings } ) =>
 	);
 };
 
-const editGroupsBlock = compose( [
-	withSelect( ( select ) => {
-		const editorSettings = select( 'core/editor' ).getEditorSettings();
-
-		return {
-			bpSettings: editorSettings.bp.groups || {},
-		};
-	} ),
-] )( editGroups );
-
 export default editGroupsBlock;
diff --git src/js/bp-members/js/blocks/member.js src/js/bp-members/js/blocks/member.js
index 744066afe..f762e956e 100644
--- src/js/bp-members/js/blocks/member.js
+++ src/js/bp-members/js/blocks/member.js
@@ -18,7 +18,11 @@ import editMemberBlock from './member/edit';
 registerBlockType( 'bp/member', {
 	title: __( 'Member', 'buddypress' ),
 	description: __( 'BuddyPress Member.', 'buddypress' ),
-	icon: 'admin-users',
+	icon: {
+		background: '#fff',
+		foreground: '#d84800',
+		src: 'admin-users',
+	},
 	category: 'buddypress',
 	attributes: {
 		itemID: {
diff --git src/js/bp-members/js/blocks/member/edit.js src/js/bp-members/js/blocks/member/edit.js
index fd92ae979..fbafdb359 100644
--- src/js/bp-members/js/blocks/member/edit.js
+++ src/js/bp-members/js/blocks/member/edit.js
@@ -15,15 +15,6 @@ const {
 		Toolbar,
 		ToolbarButton,
 	},
-	compose: {
-		compose,
-	},
-	data: {
-		withSelect,
-	},
-	editor: {
-		ServerSideRender,
-	},
 	element: {
 		Fragment,
 		createElement,
@@ -36,7 +27,15 @@ const {
 /**
  * BuddyPress dependencies.
  */
-const { AutoCompleter } = bp.blockComponents;
+const {
+	blockComponents: {
+		AutoCompleter,
+		ServerSideRender,
+	},
+	blockData: {
+		isActive,
+	}
+} = bp;
 
 /**
  * Internal dependencies.
@@ -51,8 +50,10 @@ const getSlugValue = ( item ) => {
 	return null;
 }
 
-const editMember = ( { attributes, setAttributes, bpSettings } ) => {
-	const { isAvatarEnabled, isMentionEnabled, isCoverImageEnabled } = bpSettings;
+const editMemberBlock = ( { attributes, setAttributes } ) => {
+	const isAvatarEnabled = isActive( 'members', 'avatar' );
+	const isMentionEnabled = isActive( 'activity', 'mentions' );
+	const isCoverImageEnabled = isActive( 'members', 'cover' );
 	const { avatarSize, displayMentionSlug, displayActionButton, displayCoverImage } = attributes;
 
 	if ( ! attributes.itemID ) {
@@ -77,7 +78,7 @@ const editMember = ( { attributes, setAttributes, bpSettings } ) => {
 	return (
 		<Fragment>
 			<BlockControls>
-				<Toolbar>
+				<Toolbar label={ __( 'Block toolbar', 'buddypress' ) }>
 					<ToolbarButton
 						icon="edit"
 						title={ __( 'Select another member', 'buddypress' ) }
@@ -152,13 +153,4 @@ const editMember = ( { attributes, setAttributes, bpSettings } ) => {
 	);
 };
 
-const editMemberBlock = compose( [
-	withSelect( ( select ) => {
-		const editorSettings = select( 'core/editor' ).getEditorSettings();
-		return {
-			bpSettings: editorSettings.bp.members || {},
-		};
-	} ),
-] )( editMember );
-
 export default editMemberBlock;
diff --git src/js/bp-members/js/blocks/members.js src/js/bp-members/js/blocks/members.js
index 09461b043..5c1a21db5 100644
--- src/js/bp-members/js/blocks/members.js
+++ src/js/bp-members/js/blocks/members.js
@@ -18,7 +18,11 @@ import editMembersBlock from './members/edit';
 registerBlockType( 'bp/members', {
 	title: __( 'Members', 'buddypress' ),
 	description: __( 'BuddyPress Members.', 'buddypress' ),
-	icon: 'groups',
+	icon: {
+		background: '#fff',
+		foreground: '#d84800',
+		src: 'groups',
+	},
 	category: 'buddypress',
 	attributes: {
 		itemIDs: {
diff --git src/js/bp-members/js/blocks/members/edit.js src/js/bp-members/js/blocks/members/edit.js
index ee48cd6d1..329d9f62b 100644
--- src/js/bp-members/js/blocks/members/edit.js
+++ src/js/bp-members/js/blocks/members/edit.js
@@ -17,12 +17,6 @@ const {
 		ToolbarGroup,
 		RangeControl,
 	},
-	compose: {
-		compose,
-	},
-	data: {
-		withSelect,
-	},
 	element: {
 		createElement,
 		Fragment,
@@ -41,7 +35,14 @@ const {
 /**
  * BuddyPress dependencies.
  */
-const { AutoCompleter } = bp.blockComponents;
+const {
+	blockComponents: {
+		AutoCompleter,
+	},
+	blockData: {
+		isActive,
+	}
+} = bp;
 
 /**
  * Internal dependencies.
@@ -65,11 +66,9 @@ const getSlugValue = ( item ) => {
 	return null;
 }
 
-const editMembers = ( { attributes, setAttributes, isSelected, bpSettings } ) => {
-	const {
-		isAvatarEnabled,
-		isMentionEnabled,
-	} = bpSettings;
+const editMembersBlock = ( { attributes, setAttributes, isSelected } ) => {
+	const isAvatarEnabled = isActive( 'members', 'avatar' );
+	const isMentionEnabled = isActive( 'activity', 'mentions' );
 	const {
 		itemIDs,
 		avatarSize,
@@ -313,14 +312,4 @@ const editMembers = ( { attributes, setAttributes, isSelected, bpSettings } ) =>
 	);
 };
 
-const editMembersBlock = compose( [
-	withSelect( ( select ) => {
-		const editorSettings = select( 'core/editor' ).getEditorSettings();
-
-		return {
-			bpSettings: editorSettings.bp.members || {},
-		};
-	} ),
-] )( editMembers );
-
 export default editMembersBlock;
