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 / pr-content / save.js
vk-blocks / src / blocks / pr-content Last commit date
deprecated 2 months ago block.json 1 month ago edit.js 2 months ago icon.svg 2 months ago index.js 2 months ago index.php 2 months ago mediaUpload.js 2 months ago save.js 2 weeks ago style.scss 2 months ago utils.js 2 months ago
save.js
93 lines
1 import { RichText, useBlockProps } from '@wordpress/block-editor';
2 import {
3 getButtonClass,
4 getLinkClass,
5 getLinkStyle,
6 getFontawesomeIcon,
7 getContainerClass,
8 } from './utils';
9 import { PrContentMediaUpload } from './mediaUpload';
10 import { fixBrokenUnicode } from '@vkblocks/utils/fixBrokenUnicode';
11 import parse from 'html-react-parser';
12
13 export default function save({ attributes }) {
14 const {
15 title,
16 titleColor,
17 content,
18 contentColor,
19 url,
20 buttonType,
21 buttonColor,
22 buttonColorCustom,
23 buttonText,
24 buttonTarget,
25 Image,
26 ImageBorderColor,
27 layout,
28 fontAwesomeIconBefore: fontAwesomeIconBeforeRaw,
29 fontAwesomeIconAfter: fontAwesomeIconAfterRaw,
30 } = attributes;
31
32 const fontAwesomeIconBefore = fixBrokenUnicode(fontAwesomeIconBeforeRaw);
33 const fontAwesomeIconAfter = fixBrokenUnicode(fontAwesomeIconAfterRaw);
34
35 const containerClass = getContainerClass(layout);
36 const btnClass = getButtonClass(buttonColorCustom);
37 const linkClass = getLinkClass(buttonColor, buttonColorCustom, buttonType);
38 const linkStyle = getLinkStyle(buttonColorCustom, buttonType);
39 const iconBefore = getFontawesomeIcon(
40 fontAwesomeIconBefore,
41 'vk_button_link_before'
42 );
43 const iconAfter = getFontawesomeIcon(
44 fontAwesomeIconAfter,
45 'vk_button_link_after'
46 );
47
48 return (
49 <div {...useBlockProps.save({ className: containerClass })}>
50 <div className="col-sm-6 vk_prContent_colImg">
51 <PrContentMediaUpload
52 Image={Image}
53 ImageBorderColor={ImageBorderColor}
54 />
55 </div>
56 <div className="col-sm-6 vk_prContent_colTxt">
57 <RichText.Content
58 tagName="h3"
59 value={title}
60 className={'vk_prContent_colTxt_title'}
61 style={{ color: titleColor }}
62 />
63 <RichText.Content
64 tagName="p"
65 className={'vk_prContent_colTxt_text'}
66 value={content}
67 style={{ color: contentColor }}
68 />
69 {buttonText && (
70 /* eslint react/jsx-no-target-blank: 0 */
71 <div className={btnClass}>
72 <a
73 href={url}
74 className={linkClass}
75 rel={
76 buttonTarget ? 'noopener noreferrer' : undefined
77 }
78 style={linkStyle}
79 target={buttonTarget ? '_blank' : undefined}
80 >
81 {parse(iconBefore)}
82 <span className="vk_button_link_txt">
83 {buttonText}
84 </span>
85 {parse(iconAfter)}
86 </a>
87 </div>
88 )}
89 </div>
90 </div>
91 );
92 }
93