@trackunit/react-modal 1.3.54 → 1.3.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs.js CHANGED
@@ -144,15 +144,11 @@ const Modal = ({ isOpen, children, dataTestId, className, containerClassName, ro
144
144
  else {
145
145
  closeModal();
146
146
  }
147
- }, [isOpen, openModal, closeModal]);
148
- react.useEffect(() => {
147
+ // Return cleanup function that ensures modal is closed when component unmounts
149
148
  return () => {
150
- if (isOpen) {
151
- closeModal();
152
- }
149
+ closeModal();
153
150
  };
154
- // eslint-disable-next-line react-hooks/exhaustive-deps
155
- }, []); // Empty dependency array means this effect runs only on mount and unmount
151
+ }, [isOpen, openModal, closeModal]);
156
152
  return (jsxRuntime.jsx(ModalBackdrop, { isFastOpen: isFastOpen, isVisible: isOpen, noShadow: noBackdropShadow, onClick: onDismissClick, children: isOpen ? (jsxRuntime.jsx("div", { className: cvaModalContainer({ className: containerClassName }), ref: ref, role: role, children: jsxRuntime.jsx(reactComponents.Card, { className: cvaModalCard({ className }), dataTestId: dataTestId, children: children }) })) : null }));
157
153
  };
158
154
  Modal.displayName = "Modal";
@@ -180,9 +176,8 @@ const useModal = ({ closeOnOutsideClick, bindTo, closeOnEsc = true } = {}) => {
180
176
  },
181
177
  bindTo,
182
178
  });
183
- const PortalWrapper = (props) => (jsxRuntime.jsx(Portal, { children: jsxRuntime.jsx(Modal, { isOpen: isOpen, ref: modalRef, ...props }) }));
184
- PortalWrapper.displayName = "Modal";
185
- const WrappedModal = react.useCallback(PortalWrapper, [Portal, isOpen]);
179
+ const WrappedModal = react.useCallback(({ children, ...props }) => (jsxRuntime.jsx(Portal, { children: jsxRuntime.jsx(Modal, { isOpen: isOpen, ref: modalRef, ...props, children: children }) })), [Portal, isOpen, modalRef]);
180
+ WrappedModal.displayName = "Modal";
186
181
  return {
187
182
  Modal: WrappedModal,
188
183
  toggleModal: (e) => {
package/index.esm.js CHANGED
@@ -142,15 +142,11 @@ const Modal = ({ isOpen, children, dataTestId, className, containerClassName, ro
142
142
  else {
143
143
  closeModal();
144
144
  }
145
- }, [isOpen, openModal, closeModal]);
146
- useEffect(() => {
145
+ // Return cleanup function that ensures modal is closed when component unmounts
147
146
  return () => {
148
- if (isOpen) {
149
- closeModal();
150
- }
147
+ closeModal();
151
148
  };
152
- // eslint-disable-next-line react-hooks/exhaustive-deps
153
- }, []); // Empty dependency array means this effect runs only on mount and unmount
149
+ }, [isOpen, openModal, closeModal]);
154
150
  return (jsx(ModalBackdrop, { isFastOpen: isFastOpen, isVisible: isOpen, noShadow: noBackdropShadow, onClick: onDismissClick, children: isOpen ? (jsx("div", { className: cvaModalContainer({ className: containerClassName }), ref: ref, role: role, children: jsx(Card, { className: cvaModalCard({ className }), dataTestId: dataTestId, children: children }) })) : null }));
155
151
  };
156
152
  Modal.displayName = "Modal";
@@ -178,9 +174,8 @@ const useModal = ({ closeOnOutsideClick, bindTo, closeOnEsc = true } = {}) => {
178
174
  },
179
175
  bindTo,
180
176
  });
181
- const PortalWrapper = (props) => (jsx(Portal, { children: jsx(Modal, { isOpen: isOpen, ref: modalRef, ...props }) }));
182
- PortalWrapper.displayName = "Modal";
183
- const WrappedModal = useCallback(PortalWrapper, [Portal, isOpen]);
177
+ const WrappedModal = useCallback(({ children, ...props }) => (jsx(Portal, { children: jsx(Modal, { isOpen: isOpen, ref: modalRef, ...props, children: children }) })), [Portal, isOpen, modalRef]);
178
+ WrappedModal.displayName = "Modal";
184
179
  return {
185
180
  Modal: WrappedModal,
186
181
  toggleModal: (e) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/react-modal",
3
- "version": "1.3.54",
3
+ "version": "1.3.59",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -9,10 +9,10 @@
9
9
  "dependencies": {
10
10
  "react": "19.0.0",
11
11
  "react-useportal": "1.0.19",
12
- "@trackunit/react-components": "1.4.49",
13
- "@trackunit/react-core-hooks": "1.3.43",
14
- "@trackunit/css-class-variance-utilities": "1.3.41",
15
- "@trackunit/i18n-library-translation": "1.3.45"
12
+ "@trackunit/react-components": "1.4.53",
13
+ "@trackunit/react-core-hooks": "1.3.45",
14
+ "@trackunit/css-class-variance-utilities": "1.3.43",
15
+ "@trackunit/i18n-library-translation": "1.3.47"
16
16
  },
17
17
  "module": "./index.esm.js",
18
18
  "main": "./index.cjs.js",
@@ -1,4 +1,4 @@
1
- import { BaseSyntheticEvent } from "react";
1
+ import { BaseSyntheticEvent, ReactElement } from "react";
2
2
  import { ModalProps } from "./Modal";
3
3
  export interface UseModalProps {
4
4
  closeOnOutsideClick?: boolean;
@@ -12,9 +12,8 @@ export interface UseModalProps {
12
12
  * @returns {*} useModal return
13
13
  */
14
14
  export declare const useModal: ({ closeOnOutsideClick, bindTo, closeOnEsc }?: UseModalProps) => {
15
- Modal: {
16
- (props: ModalProps): import("react/jsx-runtime").JSX.Element;
17
- displayName: string;
15
+ Modal: ((props: ModalProps) => ReactElement) & {
16
+ displayName?: string;
18
17
  };
19
18
  toggleModal: (e?: BaseSyntheticEvent) => void;
20
19
  openModal: (e?: BaseSyntheticEvent) => void;