Files
SIGE-WEB-snapshot/wp-content/plugins/jetpack/extensions/blocks/ai-assistant/inline-extensions/lib/is-possible-to-extend-block.ts

48 lines
1.4 KiB
TypeScript

/*
* External dependencies
*/
import { getBlockType } from '@wordpress/blocks';
import { select } from '@wordpress/data';
/*
* Internal dependencies
*/
import { EXTENDED_INLINE_BLOCKS, isAiAssistantSupportEnabled } from '../../extensions/ai-assistant';
/**
* Check if it is possible to extend the block as an inline extension.
* @param {string} blockName - The block name.
* @returns {boolean} Whether it is possible to extend the block.
*/
export function isPossibleToExtendBlock( blockName: string ): boolean {
// Check if the AI Assistant block is registered. If not, we understand that Jetpack AI is not active.
const isBlockRegistered = getBlockType( 'jetpack/ai-assistant' );
if ( ! isBlockRegistered ) {
return false;
}
// Check if AI Assistant support is enabled
if ( ! isAiAssistantSupportEnabled ) {
return false;
}
// Only extend the blocks in the inline blocks list
if ( ! EXTENDED_INLINE_BLOCKS.includes( blockName ) ) {
return false;
}
/*
* Do not extend if the AI Assistant block is hidden
* ToDo: the `editPostStore` is undefined for P2 sites.
* Let's find a way to check if the block is hidden.
*/
const { getHiddenBlockTypes } = select( 'core/edit-post' ) || {};
const hiddenBlocks = getHiddenBlockTypes?.() || []; // It will extend the block if the function is undefined
if ( hiddenBlocks.includes( 'jetpack/ai-assistant' ) ) {
return false;
}
return true;
}