import { useConfig } from 'domains/config/hooks' import { useI18n } from 'domains/i18n/hooks' import { className } from 'lib/css' import { useRef } from 'preact/hooks' import Icon from 'ui/components/layout/icon' import { useSeamlyActivityEventHandler, useSeamlyAppContainerClassNames, } from 'ui/hooks/seamly-hooks' import Modal from './modal' const Lightbox = ({ url, description, onClose: onCloseHandler }) => { const config = useConfig() const onActivityHandler = useSeamlyActivityEventHandler() const appContainerClassNames = useSeamlyAppContainerClassNames() const focusContainer = useRef(null) const { t } = useI18n() // TODO: Change incorrect usage of css modifiers const defaultClassNames = [ `app--layout-${config.layoutMode}`, `namespace--${config.namespace}`, ] const classNames = ['modal', ...defaultClassNames] if (typeof appContainerClassNames !== 'function') { classNames.push(...appContainerClassNames) } else { classNames.push(...appContainerClassNames(config)) } const onFrameClickHandler = (e) => { e.stopPropagation() } const onFloatClickHandler = () => { onCloseHandler() } const style = config?.zIndex ? { zIndex: config.zIndex + 1 } : undefined const getModalContent = (onClose) => (
{description}
) return ( {({ onClose, modalRenderFn }) => modalRenderFn(getModalContent(onClose))} ) } export default Lightbox