import {
__experimentalToolsPanelItem as ExperimentalToolsPanelItem,
__stableToolsPanelItem as StableToolsPanelItem,
SelectControl,
} from '@wordpress/components';
import { addFilter } from '@wordpress/hooks';
import { __ } from '@wordpress/i18n';
import ResponsiveToggle from '../../../components/responsive-toggle';
import useResponsive from '../../../hooks/use-responsive';
import useStyles from '../../../hooks/use-styles';
const ToolsPanelItem = StableToolsPanelItem || ExperimentalToolsPanelItem;
import { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';
function CustomCSSUserSelectTools(props) {
const { getStyle, hasStyle, setStyles, resetStyles } = useStyles(props);
const { device, allDevices } = useResponsive();
let hasUserSelect = false;
['', ...Object.keys(allDevices)].forEach((thisDevice) => {
hasUserSelect = hasUserSelect || hasStyle('user-select', thisDevice);
});
return (
!!hasUserSelect}
onSelect={() => {
if (!hasStyle('user-select')) {
setStyles({ 'user-select': 'none' });
}
}}
onDeselect={() => {
resetStyles(['user-select'], true);
}}
isShownByDefault={false}
>
{__('User Select', 'ghostkit')}
{
return hasStyle('user-select', checkMedia);
}}
/>
>
}
value={getStyle('user-select', device)}
onChange={(val) => {
setStyles({ 'user-select': val }, device);
}}
options={[
{
value: 'none',
label: __('None', 'ghostkit'),
},
{
value: 'auto',
label: __('Auto', 'ghostkit'),
},
]}
__next40pxDefaultSize
__nextHasNoMarginBottom
/>
);
}
addFilter(
'ghostkit.extension.customCSS.tools',
'ghostkit/extension/customCSS/tools/userSelect',
(children, { props }) => {
const hasUserSelectSupport =
hasBlockSupport(props.name, [
'ghostkit',
'customCSS',
'userSelect',
]) ||
getBlockSupport(props.name, ['ghostkit', 'customCSS']) === true;
if (!hasUserSelectSupport) {
return children;
}
return (
<>
{children}
>
);
}
);