PluginProbe
Friends / 4.3.0
Friends v4.3.0
4.3.2 4.3.1 4.3.0 4.2.2 4.2.1 4.2.0 4.1.0 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.0 2.9.1 All 88 releases
friends / blocks / friends-list / src / index.js

index.js in Friends 4.3.0, at blocks/friends-list/src/index.js

76 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import { __ } from '@wordpress/i18n';
2 import { registerBlockType } from '@wordpress/blocks';
3 import { InspectorControls, useBlockProps } from '@wordpress/block-editor';
4 import { CheckboxControl, PanelBody, SelectControl } from '@wordpress/components';
5 import ServerSideRender from '@wordpress/server-side-render';
6
7 registerBlockType( 'friends/friends-list', {
8 edit: function( { attributes, setAttributes } ) {
9 const blockProps = useBlockProps();
10
11 // Build folder options from localized data.
12 var folderOptions = [
13 { label: __( '— None —', 'friends' ), value: 0 },
14 ];
15 if ( window.friendsFolders && window.friendsFolders.length ) {
16 window.friendsFolders.forEach( function( folder ) {
17 folderOptions.push( {
18 label: folder.name,
19 value: folder.term_id,
20 } );
21 } );
22 }
23
24 return (
25 <>
26 <InspectorControls>
27 <PanelBody>
28 <CheckboxControl
29 label={ __( 'Display Users inline', 'friends' ) }
30 checked={ attributes.users_inline }
31 onChange={ users_inline => setAttributes( { users_inline } ) }
32 />
33 <SelectControl
34 label={ __( 'User Types', 'friends' ) }
35 onChange={ user_types => setAttributes( { user_types, folder: 0 } ) }
36 value={ attributes.user_types }
37 options={ [
38 {
39 label: __( 'Following', 'friends' ),
40 value: 'subscriptions',
41 },
42 {
43 label: __( 'Starred', 'friends' ),
44 value: 'starred',
45 },
46 {
47 label: __( 'Grouped by Folder', 'friends' ),
48 value: 'folders',
49 },
50 ] }
51 />
52 { folderOptions.length > 1 && (
53 <SelectControl
54 label={ __( 'Folder', 'friends' ) }
55 onChange={ folder => setAttributes( { folder: parseInt( folder, 10 ), user_types: folder ? 'folder' : 'subscriptions' } ) }
56 value={ attributes.folder }
57 options={ folderOptions }
58 />
59 ) }
60 </PanelBody>
61 </InspectorControls>
62 <div {...blockProps}>
63 <ServerSideRender
64 block="friends/friends-list"
65 attributes={ attributes }
66 />
67 </div>
68 </>
69 );
70 },
71
72 save() {
73 return null;
74 },
75 } );
76