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/wp-content/themes/blocksy/static/js/customizer/components/Overlay.js
import {
	createElement,
	Component,
	useEffect,
	useState,
	useContext,
	createContext,
	Fragment,
} from '@wordpress/element'
import { Dialog, DialogOverlay, DialogContent } from './reach/dialog'
import { Transition, animated } from 'react-spring'
import { __ } from 'ct-i18n'
import classnames from 'classnames'

const AnimatedDialogOverlay = animated(DialogOverlay)
const AnimatedDialogContent = animated(DialogContent)

const defaultIsVisible = (i) => !!i

const Overlay = ({
	items,
	isVisible = defaultIsVisible,
	render,
	className,
	initialFocusRef,
	onDismiss,
	onCloseButtonClick,
}) => {
	return (
		<Transition
			items={items}
			onStart={() =>
				document.body.classList[isVisible(items) ? 'add' : 'remove'](
					'ct-dashboard-overlay-open'
				)
			}
			config={{ duration: 200 }}
			from={{ opacity: 0, y: -10 }}
			enter={{ opacity: 1, y: 0 }}
			leave={{ opacity: 0, y: 10 }}>
			{(props, items) => {
				return (
					isVisible(items) && (
						<AnimatedDialogOverlay
							style={{ opacity: props.opacity }}
							container={document.body}
							onDismiss={() => onDismiss()}
							initialFocusRef={initialFocusRef}>
							<AnimatedDialogContent
								className={className}
								style={{
									transform: props.y.to(
										(y) => `translate3d(0px, ${y}px, 0px)`
									),
								}}>
								<button
									className="close-button"
									onClick={() =>
										onCloseButtonClick
											? onCloseButtonClick()
											: onDismiss()
									}>
									×
								</button>

								{render(items, props)}
							</AnimatedDialogContent>
						</AnimatedDialogOverlay>
					)
				)
			}}
		</Transition>
	)
}

export default Overlay