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 / staff / save.js
vk-blocks / src / blocks / staff Last commit date
deprecated 2 months ago block.json 1 month 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 style.scss 2 months ago
save.js
169 lines
1 /**
2 * External dependencies
3 */
4 import classnames from 'classnames';
5 /**
6 * WordPress dependencies
7 */
8 import { useBlockProps, RichText } from '@wordpress/block-editor';
9 import { isHexColor } from '@vkblocks/utils/is-hex-color';
10 import { sanitizeSlug } from '@vkblocks/utils/sanitizeSlug';
11
12 // import StaffMediaUpload from './staffMediaUpload';
13
14 export default function save({ attributes, className }) {
15 const {
16 vk_staff_layout, // eslint-disable-line camelcase
17 vk_staff_text_name, // eslint-disable-line camelcase
18 vk_staff_text_caption, // eslint-disable-line camelcase
19 vk_staff_text_role, // eslint-disable-line camelcase
20 vk_staff_text_profileTitle, // eslint-disable-line camelcase
21 vk_staff_text_profileText, // eslint-disable-line camelcase
22 vk_staff_nameColor, // eslint-disable-line camelcase
23 vk_staff_captionColor, // eslint-disable-line camelcase
24 vk_staff_positionColor, // eslint-disable-line camelcase
25 vk_staff_profileTitleColor, // eslint-disable-line camelcase
26 vk_staff_profileTextColor, // eslint-disable-line camelcase
27 vk_staff_photo_image, // eslint-disable-line camelcase
28 vk_staff_photo_image_alt, // eslint-disable-line camelcase
29 vk_staff_photoBorder, // eslint-disable-line camelcase
30 vk_staff_fontFamily,
31 } = attributes;
32
33 const classes = classnames('vk_staff', {
34 [className]: !!className,
35 [`vk_staff-layout-${vk_staff_layout}`]: !!vk_staff_layout, // eslint-disable-line camelcase
36 });
37
38 // 画像の線のクラスとimgタグの親タグのクラス名を生成.
39 const imgBorderClassName = classnames('vk_staff_photo', {
40 [`vk_staff_photo-border-${vk_staff_photoBorder}`]:
41 !!vk_staff_photoBorder, // eslint-disable-line camelcase
42 });
43
44 let staffTextClassName = classnames;
45 if (vk_staff_fontFamily === '1') {
46 staffTextClassName = classnames(
47 'vk_staff_text',
48 staffTextClassName,
49 'vk_staff-headingFont-serif'
50 );
51 } else {
52 staffTextClassName = classnames('vk_staff_text', staffTextClassName);
53 }
54
55 let staffNameColorInlineStyle = {};
56 let staffTextNameClassName = '';
57 if (vk_staff_nameColor !== undefined) {
58 staffTextNameClassName += ` has-text-color`;
59 if (isHexColor(vk_staff_nameColor)) {
60 staffNameColorInlineStyle = { color: `${vk_staff_nameColor}` };
61 } else {
62 staffTextNameClassName += ` has-${sanitizeSlug(vk_staff_nameColor)}-color`;
63 }
64 }
65
66 let staffCaptionColorInlineStyle = {};
67 let staffCaptionClassName = '';
68 if (vk_staff_captionColor !== undefined) {
69 staffCaptionClassName += ` has-text-color`;
70 if (isHexColor(vk_staff_captionColor)) {
71 staffCaptionColorInlineStyle = {
72 color: `${vk_staff_captionColor}`,
73 };
74 } else {
75 staffCaptionClassName += ` has-${sanitizeSlug(vk_staff_captionColor)}-color`;
76 }
77 }
78
79 let staffPositionColorInlineStyle = {};
80 let staffPositionClassName = '';
81 if (vk_staff_positionColor !== undefined) {
82 staffPositionClassName += ` has-text-color`;
83 if (isHexColor(vk_staff_positionColor)) {
84 staffPositionColorInlineStyle = {
85 color: `${vk_staff_positionColor}`,
86 };
87 } else {
88 staffPositionClassName += ` has-${sanitizeSlug(vk_staff_positionColor)}-color`;
89 }
90 }
91
92 let staffProfileTitleColorInlineStyle = {};
93 let staffProfileTitleClassName = '';
94 if (vk_staff_profileTitleColor !== undefined) {
95 staffProfileTitleClassName += ` has-text-color`;
96 if (isHexColor(vk_staff_profileTitleColor)) {
97 staffProfileTitleColorInlineStyle = {
98 color: `${vk_staff_profileTitleColor}`,
99 };
100 } else {
101 staffProfileTitleClassName += ` has-${sanitizeSlug(vk_staff_profileTitleColor)}-color`;
102 }
103 }
104
105 let staffProfileTextColorInlineStyle = {};
106 let staffProfileTextClassName = '';
107 if (vk_staff_profileTextColor !== undefined) {
108 staffProfileTextClassName += ` has-text-color`;
109 if (isHexColor(vk_staff_profileTextColor)) {
110 staffProfileTextColorInlineStyle = {
111 color: `${vk_staff_profileTextColor}`,
112 };
113 } else {
114 staffProfileTextClassName += ` has-${sanitizeSlug(vk_staff_profileTextColor)}-color`;
115 }
116 }
117
118 return (
119 <div {...useBlockProps.save({ className: classes })}>
120 <div className={staffTextClassName}>
121 <RichText.Content
122 tagName="h3"
123 className={`vk_staff_text_name` + staffTextNameClassName}
124 style={staffNameColorInlineStyle}
125 value={vk_staff_text_name} // eslint-disable-line camelcase
126 />
127 <RichText.Content
128 tagName="p"
129 className={`vk_staff_text_caption` + staffCaptionClassName}
130 style={staffCaptionColorInlineStyle}
131 value={vk_staff_text_caption} // eslint-disable-line camelcase
132 />
133 <RichText.Content
134 tagName="p"
135 className={`vk_staff_text_role` + staffPositionClassName}
136 style={staffPositionColorInlineStyle}
137 value={vk_staff_text_role} // eslint-disable-line camelcase
138 />
139 <RichText.Content
140 tagName="h4"
141 className={
142 `vk_staff_text_profileTitle` +
143 staffProfileTitleClassName
144 }
145 style={staffProfileTitleColorInlineStyle}
146 value={vk_staff_text_profileTitle} // eslint-disable-line camelcase
147 />
148 <RichText.Content
149 tagName="p"
150 className={
151 'vk_staff_text_profileText' + staffProfileTextClassName
152 }
153 style={staffProfileTextColorInlineStyle}
154 value={vk_staff_text_profileText} // eslint-disable-line camelcase
155 />
156 </div>
157 {vk_staff_photo_image && ( // eslint-disable-line camelcase
158 <div className={imgBorderClassName}>
159 <img
160 className={`vk_staff_photo_image`}
161 src={vk_staff_photo_image} // eslint-disable-line camelcase
162 alt={vk_staff_photo_image_alt} // eslint-disable-line camelcase
163 />
164 </div>
165 )}
166 </div>
167 );
168 }
169