PluginProbe ʕ •ᴥ•ʔ
GenerateBlocks / 1.5.3
GenerateBlocks v1.5.3
trunk 1.0 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.7.0 1.7.1 1.7.2 1.7.3 1.8.0 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 2.0.0 2.0.1 2.0.2 2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.3.0
generateblocks / src / blocks / query-loop / edit.js
generateblocks / src / blocks / query-loop Last commit date
components 3 years ago hoc 4 years ago hooks 4 years ago attributes.js 4 years ago block.js 4 years ago edit.js 4 years ago editor.scss 3 years ago query-parameters.js 3 years ago templates.js 4 years ago
edit.js
54 lines
1 import InspectorControls from './components/InspectorControls';
2 import BlockControls from './components/BlockControls';
3 import filterAttributes from '../../utils/filter-attributes';
4 import queryLoopAttributes from './attributes';
5 import {
6 BlockContextProvider,
7 InnerBlocks,
8 useBlockProps,
9 store as blockEditorStore,
10 } from '@wordpress/block-editor';
11 import LayoutSelector from './components/LayoutSelector';
12 import { useSelect } from '@wordpress/data';
13
14 export default function QueryLoopEdit( props ) {
15 const {
16 attributes,
17 clientId,
18 setAttributes,
19 } = props;
20
21 const blockProps = useBlockProps();
22
23 const hasInnerBlocks = useSelect(
24 ( select ) =>
25 !! select( blockEditorStore ).getBlocks( clientId ).length,
26 [ clientId ]
27 );
28
29 return (
30 <>
31 <div { ...blockProps }>
32 { ! hasInnerBlocks
33 ? <LayoutSelector clientId={ clientId } />
34 : <>
35 <BlockControls clientId={ clientId } />
36
37 <InspectorControls
38 attributes={ filterAttributes( attributes, Object.keys( queryLoopAttributes ) ) }
39 setAttributes={ setAttributes }
40 clientId={ clientId }
41 />
42
43 <BlockContextProvider value={ { 'generateblocks/query': attributes.query } }>
44 <InnerBlocks
45 renderAppender={ false }
46 />
47 </BlockContextProvider>
48 </>
49 }
50 </div>
51 </>
52 );
53 }
54