PluginProbe ʕ •ᴥ•ʔ
VK Blocks / 0.53.2
VK Blocks v0.53.2
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 / component.js
vk-blocks / src / blocks / button Last commit date
deprecated 5 years ago block.js 5 years ago component.js 5 years ago icon.svg 5 years ago style.css 6 years ago style.css.map 6 years ago style.scss 5 years ago
component.js
134 lines
1 const { Component } = wp.element;
2 import ReactHtmlParser from 'react-html-parser';
3
4 export class VKBButton extends Component {
5
6 render() {
7
8 const buttonColorCustom = this.props.lbColorCustom;
9 const buttonColor = this.props.lbColor;
10 const buttonType = this.props.lbType;
11 const buttonAlign = this.props.lbAlign;
12 const buttonSize = this.props.lbSize;
13 const buttonUrl = this.props.lbUrl;
14 const buttonTarget = this.props.lbTarget;
15 let fontAwesomeIconBefore = this.props.lbFontAwesomeIconBefore;
16 let fontAwesomeIconAfter = this.props.lbFontAwesomeIconAfter;
17 const richText = this.props.lbRichtext;
18 const subCaption = this.props.lbsubCaption;
19 const containerClass = '';
20 let aClass = '';
21 let aStyle = {};
22 let iconBefore = '';
23 let iconAfter = '';
24
25 aStyle = null;
26 aClass = `vk_button_link`;
27
28 if (buttonType == '0' || buttonType == null || buttonType == '1') {
29 aClass = `${aClass} btn`;
30 } else {
31 aClass = `${aClass} vk_button_link-type-text`;
32 }
33
34 // 塗り
35 if (buttonType == '0' || buttonType === null) {
36
37 // 規定カラーの場合
38 if (buttonColorCustom == 'undefined' || buttonColorCustom == undefined || buttonColorCustom === null) {
39
40 aClass = `${aClass} btn-${buttonColor}`;
41 aStyle = null;
42
43 // カスタムカラーの場合
44 } else {
45 aStyle = {
46 backgroundColor: `${buttonColorCustom}`,
47 border: `1px solid ${buttonColorCustom}`,
48 color: `#fff`,
49 };
50 }
51 // 塗りなし
52 } else if (buttonType === '1') {
53 // 規定カラーの場合
54 if (buttonColorCustom == 'undefined' || buttonColorCustom == undefined || buttonColorCustom === null) {
55 aClass = `${aClass} btn-outline-${buttonColor}`;
56 aStyle = null;
57 // カスタムカラーの場合
58 } else {
59 aStyle = {
60 backgroundColor: 'transparent',
61 border: `1px solid ${buttonColorCustom}`,
62 color: `${buttonColorCustom}`,
63 };
64 }
65 // テキストのみ
66 } else if (buttonType === '2') {
67 // 規定カラーの場合
68 if (buttonColorCustom == 'undefined' || buttonColorCustom == undefined || buttonColorCustom === null) {
69 aClass = `${aClass} btn-outline-${buttonColor}`;
70 aStyle = null;
71 // カスタムカラーの場合
72 } else {
73 aStyle = {
74 color: `${buttonColorCustom}`,
75 };
76 }
77 }
78
79 aClass = `${aClass} btn-${buttonSize}`;
80
81 if (buttonAlign === 'block') {
82 aClass = `${aClass} btn-block`;
83 }
84
85
86
87 //過去バージョンをリカバリーした時にiconを正常に表示する
88 if( fontAwesomeIconBefore && !fontAwesomeIconBefore.match(/<i/)){
89 fontAwesomeIconBefore = `<i class="${fontAwesomeIconBefore}"></i>`
90 }
91 if( fontAwesomeIconAfter && !fontAwesomeIconAfter.match(/<i/)){
92 fontAwesomeIconAfter = `<i class="${fontAwesomeIconAfter}"></i>`
93 }
94
95 if (fontAwesomeIconBefore) {
96
97 fontAwesomeIconBefore = fontAwesomeIconBefore.replace( / fas/g , "fas" )
98
99 //add class and inline css
100 const faIconFragmentBefore= fontAwesomeIconBefore.split(' ');
101 faIconFragmentBefore[1] = ' ' + faIconFragmentBefore[1] + ` vk_button_link_before `
102 iconBefore = faIconFragmentBefore.join('')
103 }
104 if (fontAwesomeIconAfter) {
105
106 fontAwesomeIconAfter = fontAwesomeIconAfter.replace( / fas/g , "fas" )
107
108 //add class and inline css
109 const faIconFragmentAfter = fontAwesomeIconAfter.split(' ');
110 faIconFragmentAfter[1] = ' ' + faIconFragmentAfter[1] + ` vk_button_link_after `
111 iconAfter = faIconFragmentAfter.join('')
112 }
113
114 return (
115 <a
116 href={ buttonUrl }
117 style={ aStyle }
118 className={ aClass }
119 role={ 'button' }
120 aria-pressed={ true }
121 target={ buttonTarget ? '_blank' : null }
122 rel={ 'noopener noreferrer' }
123 >
124 { ReactHtmlParser(iconBefore) }
125 { richText }
126 { ReactHtmlParser(iconAfter) }
127 { /*サブキャプションが�
128 �力された時のみ表示*/ }
129 { subCaption && <p className={ 'vk_button_link_subCaption' }>{ subCaption }</p> }
130 </a>
131 );
132 }
133 }
134