HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vm8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: afleverb (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //var/www/drakkar_site_dev/wp-content/themes/blocksy/static/js/options/options/ratio/RatioModal.js
import {
	createElement,
	Component,
	createPortal,
	useRef,
	createRef,
} from '@wordpress/element'
import { Transition } from 'react-spring/renderprops'
import bezierEasing from 'bezier-easing'
import classnames from 'classnames'
import GenericOptionType from '../../GenericOptionType'
import { __ } from 'ct-i18n'

const RatioModal = ({
	renderContent,
	stopTransitioning,

	el,

	isTransitioning,
	isPicking,
}) => {
	return (
		(isTransitioning || isPicking) &&
		createPortal(
			<Transition
				items={isPicking}
				onRest={(isOpen) => stopTransitioning()}
				config={{
					duration: 100,
					easing: bezierEasing(0.25, 0.1, 0.25, 1.0),
				}}
				from={{
					transform: 'scale3d(0.95, 0.95, 1)',
					opacity: 0,
				}}
				enter={{
					transform: 'scale3d(1, 1, 1)',
					opacity: 1,
				}}
				leave={{
					transform: 'scale3d(0.95, 0.95, 1)',
					opacity: 0,
				}}>
				{(isPicking) =>
					isPicking &&
					((props) => (
						<div
							style={props}
							className="ct-ratio-modal"
							onClick={(e) => {
								e.preventDefault()
								e.stopPropagation()
							}}
							onMouseDownCapture={(e) => {
								e.nativeEvent.stopImmediatePropagation()
								e.nativeEvent.stopPropagation()
							}}
							onMouseUpCapture={(e) => {
								e.nativeEvent.stopImmediatePropagation()
								e.nativeEvent.stopPropagation()
							}}>
							{renderContent && renderContent()}
						</div>
					))
				}
			</Transition>,
			el.current.closest('.ct-single-palette')
				? el.current
						.closest('.ct-single-palette')
						.querySelector('.ct-color-modal-wrapper')
				: el.current.closest('.ct-color-modal-wrapper')
				? el.current.closest('.ct-color-modal-wrapper')
				: el.current
						.closest('.ct-control')
						.querySelector('.ct-color-modal-wrapper')
		)
	)
}

export default RatioModal