| Server IP : 198.38.94.67 / Your IP : 216.73.217.142 Web Server : LiteSpeed System : Linux d6054.dxb1.stableserver.net 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64 User : azfilmst ( 1070) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/softaculous/sitepad/editor/site-data/plugins/pagelayer/js/react/src/components/ |
Upload File : |
import { useState, useRef } from '@wordpress/element';
import { LabelControl } from './label';
export const SliderControl = (props) =>{
const { prop, label, value, setAttributes } = props;
const { name } = prop['c'];
const { min, max, step } = prop;
const sliderRef = useRef(null);
const handleInputChange = (e) => {
let newValue = parseFloat(e.target.value);
if (!isNaN(max) && newValue > max) {
newValue = max;
}
if(prop?.units){
newValue = setUnit(newValue);
}
setAttributes({[name]: newValue});
};
const setUnit = (val) => {
var unit = sliderRef.current.querySelectorAll('.pagelayer-elp-units .selected')[0].innerHTML;
if(Array.isArray(val)){
for(var i in val){
if(val[i].length < 1){
continue;
}
val[i] = parseFloat(val[i])+unit;
}
}else{
val = parseFloat(val)+unit;
}
return val;
}
return (
<div className="components-base-control pagelayer-base-control" ref={sliderRef}>
<LabelControl {...props}/>
<div className="pagelayer-elp-slider-div">
<input
type="range"
className="pagelayer-elp-slider"
value={parseFloat(value)}
min={min}
max={max}
step={step}
onChange={handleInputChange}
/>
<input
type="number"
className="pagelayer-elp-slider-value"
value={parseFloat(value)}
min={min}
max={max}
step={step}
onChange={handleInputChange}
/>
</div>
</div>
);
}