import { createElement, Component, useEffect, useState, useContext, createContext, Fragment } from '@wordpress/element' import { Dialog, DialogOverlay, DialogContent } from './reach/dialog' import { Transition } from 'react-spring' import { __ } from 'ct-i18n' import classnames from 'classnames' import '@reach/dialog/styles.css' const defaultIsVisible = i => !!i const Overlay = ({ items, isVisible = defaultIsVisible, render, className, initialFocusRef, onDismiss }) => { return ( 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 }}> {items => isVisible(items) && (props => ( onDismiss()} initialFocusRef={initialFocusRef}> {render(items, props)} )) } ) } export default Overlay