first try
This commit is contained in:
		
							
								
								
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -47,3 +47,9 @@ wp-config.php | ||||
| # Note: If you wish to whitelist themes, | ||||
| # uncomment the next line | ||||
| #/wp-content/themes | ||||
|  | ||||
| # ---> Node.js | ||||
| /node_modules/ | ||||
| /package-lock.json | ||||
|  | ||||
|  | ||||
|   | ||||
							
								
								
									
										21
									
								
								blocks-register.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								blocks-register.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| <?php | ||||
| // Exit if accessed directly. | ||||
| if ( ! defined( 'ABSPATH' ) ) { | ||||
| 	return; | ||||
| } | ||||
|  | ||||
| function ssi_register_space_status_block() : void { | ||||
| 	$asset_path = plugin_dir_path( __FILE__ ) . 'build/space-status'; | ||||
| 	register_block_type( $asset_path, [ | ||||
| 		'render_callback' => 'ssi_render_block', | ||||
| 	] ); | ||||
| } | ||||
| add_action( 'init', 'ssi_register_space_status_block' ); | ||||
|  | ||||
| /** | ||||
|  * Server‑side markup for the block. | ||||
|  */ | ||||
| function ssi_render_block( array $attributes, string $content ) : string { | ||||
| 	// Re‑use existing helper & CSS class logic. | ||||
| 	return ssi_shortcode(); | ||||
| } | ||||
							
								
								
									
										15
									
								
								build/space-status/block.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								build/space-status/block.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| { | ||||
|   "apiVersion": 3, | ||||
|   "name": "wp-spaceapi-consumer/space-status", | ||||
|   "title": "Space Status", | ||||
|   "description": "Show whether the space is open or closed (SpaceAPI consumer).", | ||||
|   "category": "widgets", | ||||
|   "icon": "info", | ||||
|   "textdomain": "wp-spaceapi-consumer", | ||||
|   "style": "file:./style.css", | ||||
|   "editorStyle": "file:./editor.css", | ||||
|   "editorScript": "file:./index.js", | ||||
|   "supports": { | ||||
|     "html": false | ||||
|   } | ||||
| } | ||||
							
								
								
									
										1
									
								
								build/space-status/index.asset.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								build/space-status/index.asset.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| <?php return array('dependencies' => array('react-jsx-runtime', 'wp-blocks', 'wp-i18n', 'wp-server-side-render'), 'version' => 'e81eff0b8644d0be4dac'); | ||||
							
								
								
									
										1
									
								
								build/space-status/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								build/space-status/index.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| (()=>{"use strict";var e={n:r=>{var s=r&&r.__esModule?()=>r.default:()=>r;return e.d(s,{a:s}),s},d:(r,s)=>{for(var t in s)e.o(s,t)&&!e.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:s[t]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r)};window.wp.i18n;const r=window.wp.blocks,s=window.wp.serverSideRender;var t=e.n(s);const o=window.ReactJSXRuntime;(0,r.registerBlockType)("wp-spaceapi-consumer/space-status",{edit:()=>(0,o.jsx)(t(),{block:"wp-spaceapi-consumer/space-status"}),save:()=>null})})(); | ||||
							
								
								
									
										15
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| { | ||||
|   "name": "wp-spaceapi-consumer", | ||||
|   "version": "0.0.0-private", | ||||
|   "private": true, | ||||
|   "scripts": { | ||||
|     "build": "wp-scripts build", | ||||
|     "start": "wp-scripts start" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@wordpress/scripts": "^30.18.0" | ||||
|   }, | ||||
|   "engines": { | ||||
|     "node": ">=18.0.0" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										13
									
								
								src/space-status/block.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/space-status/block.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| { | ||||
|   "apiVersion": 3, | ||||
|   "name": "wp-spaceapi-consumer/space-status", | ||||
|   "title": "Space Status", | ||||
|   "description": "Show whether the space is open or closed (SpaceAPI consumer).", | ||||
|   "category": "widgets", | ||||
|   "icon": "info", | ||||
|   "textdomain": "wp-spaceapi-consumer", | ||||
|   "style": "file:./style.css", | ||||
|   "editorStyle": "file:./editor.css", | ||||
|   "editorScript": "file:./index.js", | ||||
|   "supports": { "html": false } | ||||
| } | ||||
							
								
								
									
										0
									
								
								src/space-status/editor.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								src/space-status/editor.css
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										12
									
								
								src/space-status/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/space-status/index.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| import { __ } from '@wordpress/i18n'; | ||||
| import { registerBlockType } from '@wordpress/blocks'; | ||||
| import ServerSideRender from '@wordpress/server-side-render'; | ||||
|  | ||||
| registerBlockType( 'wp-spaceapi-consumer/space-status', { | ||||
| 	edit: () => ( | ||||
| 		<ServerSideRender | ||||
| 			block="wp-spaceapi-consumer/space-status" | ||||
| 		/> | ||||
| 	), | ||||
| 	save: () => null, // dynamic block — markup comes from PHP | ||||
| } ); | ||||
							
								
								
									
										1
									
								
								src/space-status/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/space-status/style.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| @import url('../wp-spaceapi-consumer-style.css'); | ||||
		Reference in New Issue
	
	Block a user