PluginProbe ʕ •ᴥ•ʔ
VK Blocks / 1.119.2
VK Blocks v1.119.2
1.126.4 1.126.3 1.126.1 1.126.2 1.126.0 1.125.0 1.124.0 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 / button / save.js
vk-blocks / src / blocks / button Last commit date
deprecated 4 months ago block.json 4 months ago component.js 4 months ago edit.js 4 months ago icon.svg 4 months ago index.js 4 months ago index.php 4 months ago save.js 4 months ago style.scss 4 months ago transforms.js 4 months ago
save.js
110 lines
1 import { VKBButton } from './component';
2 import { RichText, useBlockProps } from '@wordpress/block-editor';
3 import { isHexColor } from '@vkblocks/utils/is-hex-color';
4
5 export default function save(props) {
6 const { attributes } = props;
7 const {
8 content,
9 subCaption,
10 buttonUrl,
11 buttonTarget,
12 relAttribute,
13 linkToPost,
14 buttonSize,
15 buttonType,
16 buttonEffect,
17 buttonColor,
18 buttonTextColorCustom,
19 buttonColorCustom,
20 buttonAlign,
21 buttonWidthMobile,
22 buttonWidthTablet,
23 buttonWidth,
24 outerGap,
25 fontAwesomeIconBefore,
26 fontAwesomeIconAfter,
27 iconSizeBefore,
28 iconSizeAfter,
29 inlineStyle,
30 borderRadius,
31 blockId,
32 } = attributes;
33
34 const effectiveUrl = linkToPost ? '' : buttonUrl;
35
36 let containerClass = '';
37 // カスタムカラーの場合 またはアウターにギャップが指定されれいる場合
38 if (
39 (buttonColorCustom !== undefined && isHexColor(buttonColorCustom)) ||
40 (buttonTextColorCustom !== undefined &&
41 isHexColor(buttonTextColorCustom)) ||
42 outerGap
43 ) {
44 containerClass = `vk_button vk_button-color-custom vk_button-${blockId}`;
45 } else {
46 containerClass = `vk_button vk_button-color-custom`;
47 }
48
49 if (buttonWidthMobile || buttonWidthTablet || buttonWidth) {
50 // 横並びボタンで�
51 が指定されている
52 if (buttonWidthMobile) {
53 containerClass += ` vk_button-width-mobile-${buttonWidthMobile}`;
54 }
55 if (buttonWidthTablet) {
56 containerClass += ` vk_button-width-tablet-${buttonWidthTablet}`;
57 }
58 if (buttonWidth) {
59 containerClass += ` vk_button-width-${buttonWidth}`;
60 }
61 } else {
62 containerClass += ` vk_button-align-${buttonAlign}`;
63 }
64
65 // エフェクト
66 if (buttonEffect !== '') {
67 containerClass += ` is-style-${buttonEffect}`;
68 }
69
70 const blockProps = useBlockProps.save({
71 className: containerClass,
72 });
73
74 // inlineStyleからborderRadiusを含む新しいスタイルオブジェクトを構築
75 const btnInlineStyle = { ...inlineStyle };
76 if (borderRadius) {
77 btnInlineStyle.borderRadius = borderRadius;
78 }
79
80 return (
81 <div {...blockProps}>
82 <VKBButton
83 lbTextColorCustom={buttonTextColorCustom}
84 lbColorCustom={buttonColorCustom}
85 lbColor={buttonColor}
86 lbType={buttonType}
87 lbAlign={buttonAlign}
88 lbSize={buttonSize}
89 lbUrl={effectiveUrl}
90 lbTarget={buttonTarget}
91 lbLinkToPost={linkToPost}
92 lbRelAttribute={relAttribute}
93 lbFontAwesomeIconBefore={fontAwesomeIconBefore}
94 lbFontAwesomeIconAfter={fontAwesomeIconAfter}
95 lbIconSizeBefore={iconSizeBefore}
96 lbIconSizeAfter={iconSizeAfter}
97 lbsubCaption={subCaption}
98 inlineStyle={btnInlineStyle}
99 lbRichtext={
100 <RichText.Content
101 tagName={'span'}
102 className={'vk_button_link_txt'}
103 value={content}
104 />
105 }
106 />
107 </div>
108 );
109 }
110