import DOMPurify from "dompurify"; import {useEffect, useRef} from '@wordpress/element'; import hoverTooltip from '../utils/hoverTooltip'; const SelectControl = (props) => { const selectRef = useRef(null); const disabledPropIsArray = Array.isArray(props.disabled); let disabledOptionsArray = (disabledPropIsArray ? props.disabled : false); let disabledSelectPropBoolean = (disabledPropIsArray === false && props.disabled); let disabledSelectViaFieldConfig = (props.field.disabled === true); let selectDisabled = ( disabledSelectViaFieldConfig || disabledSelectPropBoolean ); let tooltipText = ''; let emptyValues = [undefined, null, '']; if (selectDisabled && props.field.hasOwnProperty('disabledTooltipHoverText') && !emptyValues.includes(props.field.disabledTooltipHoverText) ) { tooltipText = props.field.disabledTooltipHoverText; } hoverTooltip( selectRef, (selectDisabled && (tooltipText !== '')), tooltipText ); // Add effect to disable the select element when the selectDisabled state changes useEffect(() => { if (selectRef.current) { selectRef.current.disabled = selectDisabled; } }, [disabledSelectViaFieldConfig, selectDisabled]); return ( <>