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 / blocks / spacer / edit.js
vk-blocks / src / blocks / spacer Last commit date
deprecated 2 months ago advanced-spacer-control.js 2 months ago block.json 1 day ago edit.js 2 weeks ago icon.svg 2 months ago index.js 2 months ago index.php 2 months ago save.js 2 months ago spacers.js 2 months ago style.scss 2 months ago transforms.js 2 months ago
edit.js
165 lines
1 /**
2 * WordPress dependencies
3 */
4 import { __ } from '@wordpress/i18n';
5 import {
6 PanelBody,
7 BaseControl,
8 ExternalLink,
9 __experimentalToggleGroupControl as ToggleGroupControl,
10 __experimentalToggleGroupControlOption as ToggleGroupControlOption,
11 } from '@wordpress/components';
12 import { InspectorControls, useBlockProps } from '@wordpress/block-editor';
13
14 /**
15 * Internal dependencies
16 */
17 import AdvancedViewportControl from '@vkblocks/components/advanced-viewport-control';
18 import AdvancedUnitControl from '@vkblocks/components/advanced-unit-control';
19 import AdvancedSpacerControl from './advanced-spacer-control';
20 import { getSettingsPageUrl } from '@vkblocks/utils/settings-page-url';
21 import Spacers from './spacers';
22 import { useEffect, createInterpolateElement } from '@wordpress/element';
23
24 export default function SpacerEdit({
25 attributes,
26 setAttributes,
27 className,
28 clientId,
29 anchor,
30 }) {
31 const { spaceType, unit, pc, tablet, mobile, spaceSize } = attributes;
32
33 let containerClass = `vk_spacer`;
34 if ('custom' !== spaceSize) {
35 containerClass += ` vk_spacer-type-${spaceType}`;
36 }
37
38 useEffect(() => {
39 if (spaceSize === undefined) {
40 setAttributes({ spaceSize: 'custom' });
41 }
42 }, [clientId]);
43
44 const blockProps = useBlockProps({
45 className: containerClass,
46 id: anchor,
47 });
48
49 const numberSetting =
50 spaceSize === 'custom' ? (
51 <>
52 <AdvancedUnitControl
53 attributes={attributes}
54 setAttributes={setAttributes}
55 className={className}
56 />
57 <BaseControl
58 label={__('Height for each device', 'vk-blocks')}
59 id={`vk_spacer-viewPort-${clientId}`}
60 >
61 <AdvancedViewportControl
62 attributes={attributes}
63 setAttributes={setAttributes}
64 className={className}
65 initial={{ iPc: 40, iTablet: 30, iMobile: 20 }}
66 id={`vk_spacer-viewPort-${clientId}`}
67 />
68 </BaseControl>
69 </>
70 ) : (
71 ''
72 );
73
74 return (
75 <>
76 <InspectorControls>
77 <PanelBody title={__('Spacer Settings', 'vk-blocks')}>
78 <ToggleGroupControl
79 value={spaceSize}
80 onChange={(value) =>
81 setAttributes({ spaceSize: value })
82 }
83 className="vk-spacer-size-control"
84 isBlock
85 >
86 <ToggleGroupControlOption
87 value="xxs"
88 label={__('XXS', 'vk-blocks')}
89 />
90 <ToggleGroupControlOption
91 value="xs"
92 label={__('XS', 'vk-blocks')}
93 />
94 <ToggleGroupControlOption
95 value="small"
96 label={__('S', 'vk-blocks')}
97 />
98 <ToggleGroupControlOption
99 value="medium"
100 label={__('M', 'vk-blocks')}
101 />
102 <ToggleGroupControlOption
103 value="large"
104 label={__('L', 'vk-blocks')}
105 />
106 <ToggleGroupControlOption
107 value="xl"
108 label={__('XL', 'vk-blocks')}
109 />
110 <ToggleGroupControlOption
111 value="xxl"
112 label={__('XXL', 'vk-blocks')}
113 />
114 <ToggleGroupControlOption
115 value="custom"
116 label={__('Custom', 'vk-blocks')}
117 />
118 </ToggleGroupControl>
119 <style>
120 {`
121 .vk-spacer-size-control .components-toggle-group-control-option-base {
122 padding: 0;
123 }
124 `}
125 </style>
126 <p>
127 {createInterpolateElement(
128 __(
129 'You can change each common margin size from <Link>Setting > VK Blocks</Link>',
130 'vk-blocks'
131 ),
132 {
133 Link: (
134 <ExternalLink
135 href={getSettingsPageUrl(
136 'margin-setting'
137 )}
138 />
139 ),
140 }
141 )}
142 </p>
143 <AdvancedSpacerControl
144 attributes={attributes}
145 setAttributes={setAttributes}
146 className={className}
147 />
148 {numberSetting}
149 </PanelBody>
150 </InspectorControls>
151
152 <div {...blockProps}>
153 <Spacers
154 spaceSize={spaceSize}
155 type={spaceType}
156 pcSize={pc}
157 tabletSize={tablet}
158 mobileSize={mobile}
159 unit={unit}
160 />
161 </div>
162 </>
163 );
164 }
165