PluginProbe ʕ •ᴥ•ʔ
VK Blocks / trunk
VK Blocks vtrunk
1.123.0 1.122.0 1.121.0 1.120.0 1.119.2 1.119.1 1.119.0 1.118.7 1.82.0.0 1.82.0.1 1.83.0.0 1.83.0.1 1.84.0.0 1.84.0.1 1.85.0.2 1.85.0.3 1.85.1.0 1.85.1.1 1.86.0.0 1.86.0.1 1.86.1.0 1.87.0.0 1.87.0.1 1.88.0.1 1.88.0.2 1.89.0.0 1.9.2 1.90.0.0 1.90.0.1 1.90.1.1 1.91.0.0 1.91.1.1 1.92.0.0 1.92.0.1 1.92.1.0 1.92.1.1 1.93.0.0 trunk 1.93.0.1 0.1.1 1.93.1.0 0.10.3 1.93.1.1 0.11.0 1.94.0.0 0.12.6 1.94.0.1 0.15.1 1.94.1.0 0.16.2 1.94.2.1 0.17.6 1.94.2.2 0.2.2 1.95.0.3 0.22.4 1.95.0.4 0.26.7 1.96.2.0 0.3.2 1.96.2.1 0.31.0 1.97.0.1 0.35.5 1.97.0.2 0.37.5 1.99.0.0 0.38.8 1.99.0.1 0.39.4 0.4.7 0.41.0 0.42.0 0.44.13 0.45.2 0.46.1 0.47.0 0.48.0 0.49.8 0.5.2 0.50.3 0.51.0 0.52.2 0.53.2 0.54.0 0.55.0 0.56.2 0.56.3 0.57.6 0.58.10 0.59.0 0.6.0 0.60.1 0.61.2 0.7.1 0.8.2 1.0.16 1.10.0 1.100.0.0 1.100.0.1 1.102.0.0 1.102.0.1 1.103.0.0 1.104.0.0 1.104.0.1 1.105.1.0 1.105.1.1 1.106.0.0 1.106.0.1 1.107.0.0 1.107.0.1 1.107.0.2 1.108.0.0 1.108.0.1 1.109.0.0 1.109.0.1 1.11.4 1.110.0.0 1.110.0.1 1.111.0.0 1.111.0.1 1.111.0.2 1.112.0.0 1.112.0.1 1.113.0.0 1.113.0.1 1.114.0.0 1.114.0.1 1.114.2.0 1.114.2.1 1.115.0.0 1.115.0.1 1.115.1.0 1.115.1.1 1.115.2.0 1.115.2.1 1.116.0.0 1.116.0.1 1.116.1.0 1.116.1.1 1.116.2.0 1.117.0.0 1.117.0.1 1.117.1.0 1.118.2 1.118.5 1.12.0 1.13.2 1.14.1 1.15.1 1.16.11 1.17.0 1.18.6 1.19.0 1.19.1 1.2.3 1.20.7 1.21.0 1.22.4 1.23.0 1.24.5 1.25.1 1.26.2 1.27.7.2 1.28.0.1 1.29.2.0 1.3.9 1.30.0.1 1.31.0.1 1.32.0.2 1.33.2.1 1.36.1.5 1.37.0.0 1.39.2.1 1.4.6 1.40.0.1 1.40.1.0 1.40.1.1 1.41.0.0 1.41.0.1 1.41.2.2 1.41.2.3 1.43.0.0 1.43.0.1 1.43.0.2 1.44.0.0 1.44.0.1 1.45.0.0 1.45.0.1 1.46.0.0 1.46.0.1 1.47.0.0 1.47.0.1 1.47.1.0 1.48.0.0 1.48.0.1 1.48.0.2 1.48.1.0 1.48.1.1 1.5.0 1.50.0.0 1.50.0.1 1.51.0.0 1.51.0.1 1.52.0.0 1.52.0.1 1.53.0.0 1.53.0.1 1.54.0.0 1.54.0.1 1.55.0.0 1.55.0.1 1.56.0.0 1.56.0.1 1.57.0.0 1.57.0.2 1.57.0.3 1.57.0.4 1.57.0.5 1.57.1.0 1.57.1.1 1.57.1.2 1.58.0.0 1.58.0.1 1.59.0.0 1.59.0.1 1.6.0 1.60.0.0 1.60.0.1 1.63.0.0 1.63.0.1 1.64.0.0 1.64.0.1 1.64.1.0 1.64.1.2 1.67.0.0 1.67.0.1 1.68.0.0 1.68.0.1 1.69.0.0 1.69.0.1 1.69.1.1 1.69.1.2 1.7.1 1.70.0.0 1.70.0.1 1.71.0.0 1.71.0.1 1.72.0.0 1.72.1.0 1.72.1.1 1.73.0.0 1.73.0.1 1.74.0.0 1.74.0.1 1.75.0.0 1.75.1.0 1.75.1.1 1.76.0.0 1.76.0.1 1.76.1.0 1.76.1.1 1.76.2.0 1.76.2.1 1.77.0.0 1.77.0.1 1.78.0.0 1.78.0.1 1.79.0.0 1.79.0.1 1.79.0.2 1.79.0.3 1.79.1.0 1.79.1.1 1.8.2 1.80.1.0 1.80.1.1 1.80.1.2 1.81.0.1 1.81.0.2
vk-blocks / src / admin / custom-block-style / index.js
vk-blocks / src / admin / custom-block-style Last commit date
add-button 2 months ago item 2 months ago index.js 2 months ago
index.js
131 lines
1 /**
2 * WordPress dependencies
3 */
4 import { __ } from '@wordpress/i18n';
5 import { useContext, useState } from '@wordpress/element';
6 import { withSelect } from '@wordpress/data';
7 // コアブロックを取得するため
8 import { registerCoreBlocks } from '@wordpress/block-library';
9 registerCoreBlocks();
10
11 /**
12 * Internal dependencies
13 */
14 import { AdminContext } from '@vkblocks/admin/index';
15 import { AddButton } from '@vkblocks/admin/custom-block-style/add-button';
16 import { Item } from './item';
17 /*globals vkBlocksObject */
18
19 function AdminCustomBlockStyle({
20 blockTypes,
21 categories,
22 hasBlockSupport,
23 isMatchingSearchTerm,
24 }) {
25 const { vkBlocksOption, setVkBlocksOption } = useContext(AdminContext);
26 const [search, setSearch] = useState('');
27 const [openNameLists, setOpenNameLists] = useState([]);
28
29 const onChange = (key, value, index) => {
30 const newItems = vkBlocksOption.custom_block_style_lists;
31 newItems[index] = {
32 ...vkBlocksOption.custom_block_style_lists[index],
33 [key]: value,
34 };
35 setVkBlocksOption({
36 ...vkBlocksOption,
37 custom_block_style_lists: [...newItems],
38 });
39 };
40
41 // blockJsonのtitleがあったらblockTypesのtitleがあれば
42 const getBlockTitle = (name, blockTypeTitle) => {
43 const blockJsonList = vkBlocksObject.blockJsonLists.find(
44 (item) => item.name === name
45 );
46 return blockJsonList && blockJsonList.title
47 ? blockJsonList.title
48 : blockTypeTitle;
49 };
50
51 const showBlockTypes = [];
52 blockTypes.forEach((blockType) => {
53 if (
54 // inserterがtrueのもの
55 hasBlockSupport(blockType, 'inserter', true) &&
56 // search
57 (!search || isMatchingSearchTerm(blockType, search)) &&
58 // customClassがtrueのもの
59 hasBlockSupport(blockType.name, 'customClassName', true) &&
60 // ブロックマネージャーのリストに含まれない
61 !vkBlocksOption.disable_block_lists.includes(blockType.name) &&
62 // 親ブロックのinserterがtrueの子ブロック
63 (!blockType.parent ||
64 !vkBlocksOption.disable_block_lists.includes(
65 blockType.parent[0]
66 ))
67 ) {
68 blockType.title = getBlockTitle(blockType.name, blockType.title);
69 showBlockTypes.push(blockType);
70 }
71 });
72
73 return (
74 <>
75 <section>
76 <h3 id="custom-block-style-setting">
77 {__('Custom Block Style Setting', 'vk-blocks')}
78 </h3>
79 <p>{__('You can register block styles.', 'vk-blocks')}</p>
80 {Object.keys(vkBlocksOption.custom_block_style_lists).map(
81 (key, index, array) => {
82 const blockStyleListObj =
83 vkBlocksOption.custom_block_style_lists[key];
84 const activeBlockType = blockTypes.find(
85 (blockType) =>
86 blockType.name === blockStyleListObj.block_name
87 );
88 return (
89 <div key={index}>
90 <Item
91 activeBlockType={activeBlockType}
92 index={index}
93 onChange={onChange}
94 blockStyleListObj={blockStyleListObj}
95 openNameLists={openNameLists}
96 setOpenNameLists={setOpenNameLists}
97 array={array}
98 />
99 </div>
100 );
101 }
102 )}
103 <AddButton
104 showBlockTypes={showBlockTypes}
105 categories={categories}
106 search={search}
107 setSearch={setSearch}
108 openNameLists={openNameLists}
109 setOpenNameLists={setOpenNameLists}
110 />
111 </section>
112 </>
113 );
114 }
115
116 export default withSelect((select) => {
117 const {
118 getCategories,
119 getBlockTypes,
120 hasBlockSupport,
121 isMatchingSearchTerm,
122 } = select('core/blocks');
123
124 return {
125 blockTypes: getBlockTypes(),
126 categories: getCategories(),
127 hasBlockSupport,
128 isMatchingSearchTerm,
129 };
130 })(AdminCustomBlockStyle);
131