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 / components / responsive-size-control / index.js
vk-blocks / src / components / responsive-size-control Last commit date
index.js 2 months ago
index.js
97 lines
1 import { RangeControl, BaseControl } from '@wordpress/components';
2 import AdvancedUnitControl from '@vkblocks/components/advanced-unit-control';
3
4 export const getMaxByUnit = (unit) => {
5 switch (unit) {
6 case 'px':
7 return 1000;
8 case 'em':
9 case 'rem':
10 case 'vh':
11 case 'svh':
12 case 'lvh':
13 case 'dvh':
14 case 'vw':
15 return 100;
16 default:
17 return 100;
18 }
19 };
20
21 export const getStepByUnit = (unit) => (unit === 'px' ? 1 : 0.1);
22
23 const handleValueChange = (value, onChange) => {
24 // 空文字列、null、undefinedの場合はundefinedを設定(blank状�
25 �を保持)
26 if (value === '' || value === null || value === undefined) {
27 onChange(undefined);
28 } else {
29 onChange(Number(value));
30 }
31 };
32
33 export default function ResponsiveSizeControl({
34 label,
35 valuePC,
36 valueTablet,
37 valueMobile,
38 unit,
39 onChangePC,
40 onChangeTablet,
41 onChangeMobile,
42 onChangeUnit,
43 maxPC,
44 maxTablet,
45 maxMobile,
46 }) {
47 const defaultMaxPC = maxPC !== undefined ? maxPC : getMaxByUnit(unit);
48 const defaultMaxTablet =
49 maxTablet !== undefined ? maxTablet : getMaxByUnit(unit);
50 const defaultMaxMobile =
51 maxMobile !== undefined ? maxMobile : getMaxByUnit(unit);
52
53 return (
54 <>
55 <AdvancedUnitControl
56 attributes={{ unit }}
57 setAttributes={({ unit }) => {
58 onChangeUnit(unit);
59 }}
60 />
61 <BaseControl label={label} id={`responsive-size-control-${label}`}>
62 <RangeControl
63 label="PC"
64 value={valuePC}
65 onChange={(value) => handleValueChange(value, onChangePC)}
66 min={0}
67 max={defaultMaxPC}
68 step={getStepByUnit(unit)}
69 allowReset={true}
70 />
71 <RangeControl
72 label="Tablet"
73 value={valueTablet}
74 onChange={(value) =>
75 handleValueChange(value, onChangeTablet)
76 }
77 min={0}
78 max={defaultMaxTablet}
79 step={getStepByUnit(unit)}
80 allowReset={true}
81 />
82 <RangeControl
83 label="Mobile"
84 value={valueMobile}
85 onChange={(value) =>
86 handleValueChange(value, onChangeMobile)
87 }
88 min={0}
89 max={defaultMaxMobile}
90 step={getStepByUnit(unit)}
91 allowReset={true}
92 />
93 </BaseControl>
94 </>
95 );
96 }
97