UNPKG

@kubit-ui-web/react-components

Version:

Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience

35 lines 1.56 kB
import { jsx as _jsx } from "react/jsx-runtime"; import React, { useEffect, useState } from 'react'; import { isKeyEscapePressed } from '../../utils/keyboard/keyboard.utility'; import { ModalControlledV2 as ModalControlled } from './modalControlled'; const ModalUnControlledComponent = ({ variant, onClose, closeIcon, closeButton, popover, ...props }, ref) => { const [open, setOpen] = useState(props.open); const onKeyDown = event => { if (props?.blocked && isKeyEscapePressed(event.key)) { return event.stopPropagation(); } }; useEffect(() => { setOpen(props.open); }, [props.open]); const handleClose = () => { setOpen(false); onClose?.(); }; const handleCloseIconClick = e => { handleClose(); closeIcon?.onClick?.(e); }; const handlecloseButtonClick = e => { handleClose(); closeButton?.onClick?.(e); }; const handlePopoverCloseInternally = () => { handleClose(); popover?.onCloseInternally?.(); }; return (_jsx(ModalControlled, { ...props, ref: ref, closeButton: closeButton && { ...closeButton, onClick: handlecloseButtonClick }, closeIcon: { ...closeIcon, onClick: handleCloseIconClick }, open: open, popover: { ...popover, onCloseInternally: handlePopoverCloseInternally }, variant: variant, onClose: onClose, onKeyDown: onKeyDown })); }; const ModalUnControlled = React.forwardRef(ModalUnControlledComponent); export { ModalUnControlled as ModalV2 }; //# sourceMappingURL=modalUnControlled.js.map