File manager - Edit - /home/palg2351/public_html/wp-content/themes/blocksy/static/js/options/components/InputWithValidCssExpression.js
Back
import { createElement, useState, useEffect, useRef } from '@wordpress/element' import _ from 'underscore' import { __ } from 'ct-i18n' // TODO: maybe extend to also support validating min max values + also non // numeric values const InputWithValidCssExpression = ({ value, placeholder = __('Default', 'blocksy'), onChange, propertyToCheckAgainst = 'margin', // TODO: drop this flag when all options are refactored like spacing. // This component should always propagate empty values. shouldPropagateEmptyValue = false, inputProps = {}, ...restProps }) => { const inputRef = useRef() const [localValue, setLocalValue] = useState('__DEFAULT__') const { ref, actualInputProps = {} } = inputProps useEffect(() => { const needToFocusOn = localValue.indexOf('()') if (needToFocusOn > -1) { inputRef.current.setSelectionRange( needToFocusOn + 1, needToFocusOn + 1 ) } }, [localValue]) return ( <input value={localValue === '__DEFAULT__' ? value : localValue} type="text" placeholder={placeholder} onChange={({ target: { value } }) => { if (value === '' && shouldPropagateEmptyValue) { setLocalValue('__DEFAULT__') onChange('') } setLocalValue(value) if ( CSS.supports(propertyToCheckAgainst, value) && value.toString().length - value.toString().replaceAll('(', '').length === value.toString().length - value.toString().replaceAll(')', '').length ) { onChange(value) setLocalValue('__DEFAULT__') } }} ref={(el) => { inputRef.current = el if (ref && typeof ref === 'function') { ref(el) } }} {...actualInputProps} {...restProps} /> ) } export default InputWithValidCssExpression
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0.08 |
proxy
|
phpinfo
|
Settings