component does not load in block.js
nabi009 opened this issue · 0 comments
`
/**
- BLOCK: nh-blocks
- Registering a basic block with Gutenberg.
- Simple block, renders and saves the same content without any interactivity.
*/
import { categories } from '../components/categories';
// Import CSS.
// import './editor.scss';
// import './style.scss';
const { __ } = wp.i18n; // Import __() from wp.i18n
const { registerBlockType } = wp.blocks; // Import registerBlockType() from wp.blocks
const { PlainText, RichText, InspectorControls } = wp.editor;
const { Fragment } = wp.element;
const { TextControl, ToggleControl, Panel, PanelBody, PanelRow, SelectControl, Dropdown, Button, CheckboxControl } = wp.components;
/**
- Register: aa Gutenberg Block.
- Registers a new block provided a unique name and an object defining its
- behavior. Once registered, the block is made editor as an option to any
- editor interface where blocks are implemented.
- @link https://wordpress.org/gutenberg/handbook/block-api/
- @param {string} name Block name.
- @param {Object} settings Block settings.
- @return {?WPBlock} The block, if it has been successfully
-
registered; otherwise `undefined`.
*/
registerBlockType( 'cgb/block-nh-blocks', {
// Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block.
title: __( 'nh-blocks - Latest Block' ), // Block title.
icon: 'shield', // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/.
category: 'text', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed.
keywords: [
__( 'nh-blocks — Post Block' ),
__( 'Posts by Category' ),
__( 'create-guten-block' ),
],
attributes: {
categories: {
type: 'array' },
selectCategory: { type: 'string' },
},
/**
* The edit function describes the structure of your block in the context of the editor.
* This represents what the editor will render when the block is used.
*
* The "edit" property must be a valid function.
*
* @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/
*
* @param {Object} props Props.
* @returns {Mixed} JSX Component.
*/
edit: ( props ) => {
// Creates a <p class='wp-block-cgb-block-nh-blocks'></p>.
if ( ! props.attributes.categories ) {
wp.apiFetch( {
url: '/wp-json/wp/v2/categories',
} ).then( categories => {
props.setAttributes( { categories: categories } );
} );
}
console.log( props.attributes.categories );
return (
<InspectorControls>
<PanelBody>
<PanelRow>
<label>Set Filter</label>
</PanelRow>
<PanelRow>
<categories />
</PanelRow>
</PanelBody>
</InspectorControls>
);
},
/**
* The save function defines the way in which the different attributes should be combined
* into the final markup, which is then serialized by Gutenberg into post_content.
*
* The "save" property must be specified and must be a valid function.
*
* @link https://wordpress.org/gutenberg/handbook/block-api/block-edit-save/
*
* @param {Object} props Props.
* @returns {Mixed} JSX Frontend HTML.
*/
save: ( { className, attributes, setAttributes } ) => {
return null;
},
} );
`
`
const { Component } = wp.element;
export class categories extends Component {
constructor( props ) {
super( ...arguments );
this.props = props;
}
render() {
return (
<p>categories label</p>
);
}
}
`