PluginProbe
Block Animations, Motion & Scroll Effects – Ghost Kit / 3.7.0
Block Animations, Motion & Scroll Effects – Ghost Kit v3.7.0
3.7.2 3.7.1 3.7.0 3.6.1 trunk 1.6.3 2.25.0 3.3.0 3.3.1 3.3.2 3.3.3 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.5.0 3.5.1 3.6.0
ghostkit / gutenberg / components / toggle-group / index.js

index.js in Block Animations, Motion & Scroll Effects – Ghost Kit 3.7.0, at gutenberg/components/toggle-group/index.js

101 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import {
2 BaseControl,
3 Button,
4 ButtonGroup,
5 __experimentalToggleGroupControl as ExperimentalToggleGroupControl,
6 __experimentalToggleGroupControlOption as ExperimentalToggleGroupControlOption,
7 __experimentalToggleGroupControlOptionIcon as ExperimentalToggleGroupControlOptionIcon,
8 ToggleGroupControl as StableToggleGroupControl,
9 ToggleGroupControlOption as StableToggleGroupControlOption,
10 ToggleGroupControlOptionIcon as StableToggleGroupControlOptionIcon,
11 } from '@wordpress/components';
12 import classnames from 'classnames/dedupe';
13
14 const ToggleGroupControl =
15 StableToggleGroupControl || ExperimentalToggleGroupControl;
16 const ToggleGroupControlOption =
17 StableToggleGroupControlOption || ExperimentalToggleGroupControlOption;
18 const ToggleGroupControlOptionIcon =
19 StableToggleGroupControlOptionIcon ||
20 ExperimentalToggleGroupControlOptionIcon ||
21 ToggleGroupControlOption;
22
23 /**
24 * Component Class
25 *
26 * @param props
27 */
28 export default function ToggleGroup(props) {
29 const {
30 label,
31 value,
32 options,
33 onChange,
34 isBlock,
35 isAdaptiveWidth,
36 isDeselectable,
37 } = props;
38
39 if (ToggleGroupControl && ToggleGroupControlOption) {
40 return (
41 <BaseControl
42 id={label}
43 label={label}
44 className={classnames(
45 'ghostkit-control-toggle-group',
46 props.className
47 )}
48 >
49 <ToggleGroupControl
50 value={value}
51 onChange={onChange}
52 isBlock={isBlock}
53 isAdaptiveWidth={isAdaptiveWidth}
54 isDeselectable={isDeselectable}
55 hideLabelFromVision
56 >
57 {options.map((option) =>
58 option.icon ? (
59 <ToggleGroupControlOptionIcon
60 key={option.value}
61 value={option.value}
62 icon={option.icon}
63 label={option.label}
64 disabled={option.disabled}
65 />
66 ) : (
67 <ToggleGroupControlOption
68 key={option.value}
69 value={option.value}
70 label={option.label}
71 disabled={option.disabled}
72 />
73 )
74 )}
75 </ToggleGroupControl>
76 </BaseControl>
77 );
78 }
79
80 // Fallback.
81 return (
82 <BaseControl id={label} label={label}>
83 <ButtonGroup className="ghostkit-control-toggle-group">
84 {options.map((option) => (
85 <Button
86 key={option.value}
87 variant={value === option.value ? 'primary' : ''}
88 isPressed={value === option.value}
89 disabled={option.disabled}
90 onClick={() => {
91 onChange(option.value);
92 }}
93 >
94 {option.label}
95 </Button>
96 ))}
97 </ButtonGroup>
98 </BaseControl>
99 );
100 }
101