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 / alert / edit.js
vk-blocks / src / blocks / alert Last commit date
deprecated 2 weeks ago block.json 1 month ago edit.js 2 months ago icon-info.svg 2 months ago icon-success.svg 2 months ago icon-warning.svg 2 months ago icon.svg 2 months ago index.js 2 months ago index.php 2 months ago save.js 2 months ago style.scss 2 months ago variations.js 2 months ago
edit.js
127 lines
1 import { __ } from '@wordpress/i18n';
2 import { PanelBody, SelectControl, BaseControl } from '@wordpress/components';
3 import {
4 InspectorControls,
5 InnerBlocks,
6 RichText,
7 useBlockProps,
8 } from '@wordpress/block-editor';
9 import { FontAwesome } from '@vkblocks/utils/font-awesome-new';
10 import { iconLabel } from '@vkblocks/utils/icon-label';
11 import parse from 'html-react-parser';
12 import { useEffect } from '@wordpress/element';
13 import { fixBrokenUnicode } from '@vkblocks/utils/fixBrokenUnicode';
14
15 export default function AlertEdit(props) {
16 const { attributes, setAttributes } = props;
17 const { style, icon, iconText, mobileIconPosition } = attributes;
18
19 useEffect(() => {
20 if (icon) {
21 const fixed = fixBrokenUnicode(icon);
22 if (fixed !== icon) {
23 setAttributes({ icon: fixed });
24 }
25 }
26 }, [icon]);
27
28 const blockProps = useBlockProps({
29 className: `vk_alert alert alert-${style} ${icon ? 'has-alert-icon' : ''} ${
30 mobileIconPosition === 'top' ? 'mobile-icon-top' : ''
31 }`,
32 });
33
34 let alertIcon = '';
35 if (icon !== '' && icon !== undefined) {
36 alertIcon = (
37 <div className="vk_alert_icon">
38 <div className="vk_alert_icon_icon">{parse(icon)}</div>
39 <div className="vk_alert_icon_text">
40 <RichText
41 tagName="span"
42 placeholder={__('Icon Text', 'vk-blocks')}
43 value={iconText}
44 onChange={(value) => setAttributes({ iconText: value })}
45 />
46 </div>
47 </div>
48 );
49 }
50
51 return (
52 <>
53 <InspectorControls>
54 <PanelBody title={__('Style Settings', 'vk-blocks')}>
55 <BaseControl
56 label={__('Alert Style', 'vk-blocks')}
57 id={`vk_alert-style`}
58 >
59 <SelectControl
60 value={style}
61 onChange={(value) =>
62 setAttributes({ style: value })
63 }
64 options={[
65 {
66 label: __('Success', 'vk-blocks'),
67 value: 'success',
68 },
69 {
70 label: __('Info', 'vk-blocks'),
71 value: 'info',
72 },
73 {
74 label: __('Warning', 'vk-blocks'),
75 value: 'warning',
76 },
77 {
78 label: __('Danger', 'vk-blocks'),
79 value: 'danger',
80 },
81 ]}
82 />
83 </BaseControl>
84 <BaseControl
85 label={iconLabel(__('Icon', 'vk-blocks'))}
86 id={`vk_alert-icon`}
87 >
88 <FontAwesome attributeName={'icon'} {...props} />
89 </BaseControl>
90 {icon && (
91 <BaseControl
92 label={__('Mobile Icon Position', 'vk-blocks')}
93 id={`vk_alert-mobile-icon-position`}
94 >
95 <SelectControl
96 value={mobileIconPosition}
97 onChange={(value) =>
98 setAttributes({ mobileIconPosition: value })
99 }
100 options={[
101 {
102 label: __(
103 'Left (Default)',
104 'vk-blocks'
105 ),
106 value: 'left',
107 },
108 {
109 label: __('Top', 'vk-blocks'),
110 value: 'top',
111 },
112 ]}
113 />
114 </BaseControl>
115 )}
116 </PanelBody>
117 </InspectorControls>
118 <div {...blockProps}>
119 {alertIcon}
120 <div className="vk_alert_content">
121 <InnerBlocks />
122 </div>
123 </div>
124 </>
125 );
126 }
127