@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
JavaScript
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