Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 2
CRAP
n/a
0 / 0
Automattic\Jetpack\Extensions\Voice_To_Content\register_block
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
30
Automattic\Jetpack\Extensions\Voice_To_Content\load_assets
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2/**
3 * "Voice to content" Block.
4 *
5 * @since 12.5
6 *
7 * @package automattic/jetpack
8 */
9
10namespace Automattic\Jetpack\Extensions\Voice_To_Content;
11
12use Automattic\Jetpack\Blocks;
13use Jetpack_Gutenberg;
14
15if ( ! defined( 'ABSPATH' ) ) {
16    exit( 0 );
17}
18
19/**
20 * Registers our block for use in Gutenberg
21 * This is done via an action so that we can disable
22 * registration if we need to.
23 */
24function register_block() {
25    /**
26     * Register the block only if we are on an A8C P2 site.
27     * TODO: when opening it to Jetpack sites, do the same checks
28     * we do on the AI Assistant block: the jetpack_ai_enabled filter
29     * and the Jetpack connection:
30     * - apply_filters( 'jetpack_ai_enabled', true )
31     * - ( new Host() )->is_wpcom_simple() || ! ( new Status() )->is_offline_mode()
32     */
33    if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
34        if ( function_exists( 'wpcom_is_automattic_p2_site' ) && wpcom_is_automattic_p2_site() ) {
35            Blocks::jetpack_register_block(
36                __DIR__,
37                array( 'render_callback' => __NAMESPACE__ . '\load_assets' )
38            );
39        }
40    }
41}
42add_action( 'init', __NAMESPACE__ . '\register_block' );
43
44/**
45 * "Voice to content" block registration/dependency declaration.
46 *
47 * @param array  $attr    Array containing the "Voice to content" block attributes.
48 * @param string $content String containing the "Voice to content" block content.
49 *
50 * @return string
51 */
52function load_assets( $attr, $content ) {
53    /*
54     * Enqueue necessary scripts and styles.
55     */
56    Jetpack_Gutenberg::load_assets_as_required( __DIR__ );
57
58    return sprintf(
59        '<div class="%1$s">%2$s</div>',
60        esc_attr( Blocks::classes( Blocks::get_block_feature( __DIR__ ), $attr ) ),
61        $content
62    );
63}