diff --git a/web/app/themes/badegg/resources/views/blocks/article/block.json b/web/app/themes/badegg/resources/views/blocks/article/block.json index 9492bd4..d61a997 100644 --- a/web/app/themes/badegg/resources/views/blocks/article/block.json +++ b/web/app/themes/badegg/resources/views/blocks/article/block.json @@ -8,9 +8,25 @@ "foreground": "#f58762" }, "description": "A wrapper to contain core blocks", + "attributes": { + "container_width": { + "type": "string", + "default": 0 + }, + "alignment": { + "type": "string" + }, + "padding_top": { + "type": "boolean", + "default": true + }, + "padding_bottom": { + "type": "boolean", + "default": true + } + }, "supports": { "html": true, - "align": ["wide", "full"], "color": { "background": true, "text": false diff --git a/web/app/themes/badegg/resources/views/blocks/article/index.jsx b/web/app/themes/badegg/resources/views/blocks/article/index.jsx index 4d7f2dc..1c7849c 100644 --- a/web/app/themes/badegg/resources/views/blocks/article/index.jsx +++ b/web/app/themes/badegg/resources/views/blocks/article/index.jsx @@ -1,17 +1,93 @@ // block.json's editorScript, loaded only in the block editor +import { __ } from '@wordpress/i18n'; import { registerBlockType } from '@wordpress/blocks'; -import { InnerBlocks, useBlockProps } from '@wordpress/block-editor'; + +import { + useBlockProps, + InnerBlocks, + InspectorControls, + BlockControls, + AlignmentToolbar, +} from '@wordpress/block-editor'; + +import { + Panel, + PanelBody, + PanelRow, + SelectControl, + ToggleControl, +} from '@wordpress/components'; +import { useState, useEffect } from '@wordpress/element'; +import apiFetch from '@wordpress/api-fetch'; import metadata from './block.json'; import allowedBlocks from '../../../json/core-block-whitelist.json'; registerBlockType(metadata.name, { edit({ attributes, setAttributes }) { const blockProps = useBlockProps(); + const [ isLoading, setIsLoading ] = useState( true ); + + const { + container_width, + alignment, + padding_top, + padding_bottom, + } = attributes; + + const [ + containerWidthOptions, setContainerWidthOptions, + ] = useState( [] ); + + useEffect( () => { + apiFetch( { path: '/badegg/v1/blocks/container_width' } ) + .then( ( data ) => { + setContainerWidthOptions( data ); + setIsLoading( false ); + } ) + .catch( () => { + setContainerWidthOptions( [] ); + setIsLoading( false ); + } ); + }, [] ); + + console.log(attributes); return (