first try

This commit is contained in:
2025-06-13 23:36:21 +01:00
parent 0ed97819fe
commit 55c20df3b5
10 changed files with 85 additions and 0 deletions

6
.gitignore vendored
View File

@@ -47,3 +47,9 @@ wp-config.php
# Note: If you wish to whitelist themes, # Note: If you wish to whitelist themes,
# uncomment the next line # uncomment the next line
#/wp-content/themes #/wp-content/themes
# ---> Node.js
/node_modules/
/package-lock.json

21
blocks-register.php Normal file
View 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' );
/**
* Serverside markup for the block.
*/
function ssi_render_block( array $attributes, string $content ) : string {
// Reuse existing helper & CSS class logic.
return ssi_shortcode();
}

View 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
}
}

View File

@@ -0,0 +1 @@
<?php return array('dependencies' => array('react-jsx-runtime', 'wp-blocks', 'wp-i18n', 'wp-server-side-render'), 'version' => 'e81eff0b8644d0be4dac');

View 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
View 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"
}
}

View 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 }
}

View File

12
src/space-status/index.js Normal file
View 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
} );

View File

@@ -0,0 +1 @@
@import url('../wp-spaceapi-consumer-style.css');