@votodigital-onpeui/react 0.1.64 → 0.1.66

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.
@@ -1,4 +1,4 @@
1
- import { Modal } from './chunk-SAJUQPOO.mjs';
1
+ import { Modal } from './chunk-H2AHWDJ2.mjs';
2
2
  import { create } from 'zustand';
3
3
  import { useRef, useEffect, useCallback, useState } from 'react';
4
4
  import io from 'socket.io-client';
@@ -298,12 +298,15 @@ var useSocketConnection = ({
298
298
  }
299
299
  return () => {
300
300
  if (socketRef.current && (!enabled || !isOpenLaunchApp)) {
301
+ if (isSessionExpired) {
302
+ socketRef.current.emit("setTimeout", "TIMEOUT_APP");
303
+ }
301
304
  socketRef.current.removeAllListeners();
302
305
  socketRef.current.disconnect();
303
306
  socketRef.current = null;
304
307
  }
305
308
  };
306
- }, [enabled, isOpenLaunchApp, socketUrl, secure]);
309
+ }, [enabled, isOpenLaunchApp, socketUrl, secure, isSessionExpired]);
307
310
  useEffect(() => {
308
311
  if (isSessionExpired && socketRef.current) {
309
312
  socketRef.current.emit("setTimeout", "TIMEOUT_APP");
@@ -341,7 +344,6 @@ var useOnpeIdAuth = ({
341
344
  const [dataOpenLaunchApp, setDataOpenLaunchApp] = useState({});
342
345
  const openLaunchApp = useCallback(() => setIsOpenLaunchApp(true), []);
343
346
  const closeLaunchApp = useCallback(() => setIsOpenLaunchApp(false), []);
344
- console.log({ isSessionExpired });
345
347
  const {
346
348
  modalUrl,
347
349
  setModalUrl,
@@ -475,5 +477,5 @@ var OnpeIdModal = ({
475
477
  };
476
478
 
477
479
  export { OnpeIdModal, useIframeCommunication, useIframePreload, useModalIframePreload, useOnpeIdAuth, useSendMessageToIframe, useSocketConnection };
478
- //# sourceMappingURL=chunk-L64ZROAN.mjs.map
479
- //# sourceMappingURL=chunk-L64ZROAN.mjs.map
480
+ //# sourceMappingURL=chunk-Q4MOD5M6.mjs.map
481
+ //# sourceMappingURL=chunk-Q4MOD5M6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/onpeId/store/modalIframePreload.ts","../src/hooks/onpeId/useIframeCommunication/useIframeCommunication.ts","../src/hooks/onpeId/useIframePreload/useIframePreload.ts","../src/hooks/onpeId/useSocketConnection/useSocketConnection.ts","../src/hooks/useOnpeIdAuth/useOnpeIdAuth.ts","../src/hooks/useOnpeIdAuth/OnpeIdModal.tsx"],"names":["useRef","useEffect","useState","useCallback"],"mappings":"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","file":"chunk-Q4MOD5M6.mjs","sourcesContent":["import { create } from \"zustand\";\n\ninterface ModalIframePreloadStore {\n modalUrl: string;\n isOpenModal: boolean;\n isIframeReady: boolean;\n setModalUrl: (url: string) => void;\n openModal: () => void;\n closeModal: () => void;\n setIsIframeReady: (ready: boolean) => void;\n reset: () => void;\n}\n\nconst INITIAL_STATE: Omit<\n ModalIframePreloadStore,\n \"setModalUrl\" | \"openModal\" | \"closeModal\" | \"setIsIframeReady\" | \"reset\"\n> = {\n modalUrl: \"\",\n isOpenModal: false,\n isIframeReady: false,\n};\n\nexport const useModalIframePreload = create<ModalIframePreloadStore>()(\n (set) => ({\n ...INITIAL_STATE,\n setModalUrl: (url: string) => set({ modalUrl: url }),\n openModal: () => set({ isOpenModal: true }),\n closeModal: () => {\n set({\n isOpenModal: false,\n isIframeReady: false,\n modalUrl: \"\",\n });\n },\n setIsIframeReady: (ready: boolean) => set({ isIframeReady: ready }),\n reset: () => set(INITIAL_STATE),\n })\n);\n","import { useEffect, useRef, useCallback } from \"react\";\n\nexport type MessageStatus = \"EXPIRED_APP\" | \"OPEN_APP\" | \"LAUNCH_APP\" | \"HOME_APP\" | \"NOT_APP\" | \"OPEN_MOBILE\";\n\nexport interface IframeMessage {\n status: MessageStatus;\n url?: string;\n data?: unknown;\n token?: string;\n type?: \"LOGIN\" | \"FIRMA\";\n}\n\ninterface UseIframeCommunicationParams {\n onExpiredApp?: (data: IframeMessage) => void;\n onOpenApp?: (data: IframeMessage) => void;\n onLaunchApp?: (data: IframeMessage) => void;\n onHomeApp?: (data: IframeMessage) => void;\n onNotApp?: (data: IframeMessage) => void;\n onOpenMobile?: (data: IframeMessage) => void;\n enabled?: boolean;\n allowedOrigin?: string;\n}\n\nexport const useIframeCommunication = ({\n onExpiredApp,\n onOpenApp,\n onLaunchApp,\n onHomeApp,\n onNotApp,\n onOpenMobile,\n enabled = true,\n allowedOrigin,\n}: UseIframeCommunicationParams = {}) => {\n const handlersRef = useRef({\n onExpiredApp,\n onOpenApp,\n onLaunchApp,\n onHomeApp,\n onNotApp,\n onOpenMobile,\n });\n\n useEffect(() => {\n handlersRef.current = {\n onExpiredApp,\n onOpenApp,\n onLaunchApp,\n onHomeApp,\n onNotApp,\n onOpenMobile,\n };\n }, [onExpiredApp, onOpenApp, onLaunchApp, onHomeApp, onNotApp, onOpenMobile]);\n\n useEffect(() => {\n if (!enabled) return;\n\n const handler = (event: MessageEvent) => {\n if (allowedOrigin && event.origin !== allowedOrigin) {\n console.warn(\n `Mensaje rechazado de origen no permitido: ${event.origin}`,\n );\n return;\n }\n\n const data = event.data as IframeMessage;\n if (!data?.status) return;\n\n const handlers = handlersRef.current;\n\n switch (data.status) {\n case \"EXPIRED_APP\":\n handlers.onExpiredApp?.(data);\n break;\n case \"OPEN_APP\":\n handlers.onOpenApp?.(data);\n break;\n case \"LAUNCH_APP\":\n handlers.onLaunchApp?.(data);\n break;\n case \"HOME_APP\":\n handlers.onHomeApp?.(data);\n break;\n case \"NOT_APP\":\n handlers.onNotApp?.(data);\n break;\n case \"OPEN_MOBILE\":\n handlers.onOpenMobile?.(data);\n break;\n default:\n break;\n }\n };\n\n globalThis.addEventListener(\"message\", handler);\n return () => globalThis.removeEventListener(\"message\", handler);\n }, [enabled, allowedOrigin]);\n};\n\ninterface UseSendMessageToIframeParams {\n iframeRef: React.RefObject<HTMLIFrameElement | null>;\n modalUrl: string;\n}\n\nexport const useSendMessageToIframe = ({\n iframeRef,\n modalUrl,\n}: UseSendMessageToIframeParams) => {\n const sendMessageToIframe = useCallback(\n (message: Record<string, unknown>) => {\n if (!iframeRef.current || !modalUrl) return;\n\n try {\n const iframeOrigin = new URL(modalUrl).origin;\n iframeRef.current.contentWindow?.postMessage(message, iframeOrigin);\n } catch (error) {\n console.error(\"Error al enviar mensaje al iframe:\", error);\n }\n },\n [iframeRef, modalUrl],\n );\n\n return { sendMessageToIframe };\n};\n","import { useRef } from \"react\";\n\nimport { useModalIframePreload } from \"../store/modalIframePreload\";\n\nexport const useIframePreload = () => {\n const {\n modalUrl,\n setModalUrl,\n isOpenModal,\n closeModal,\n setIsIframeReady,\n openModal,\n reset,\n } = useModalIframePreload();\n\n const preloadIframeRef = useRef<HTMLIFrameElement>(null);\n const iframeRef = useRef<HTMLIFrameElement>(null);\n\n const isPreloading = !!modalUrl && !isOpenModal;\n\n const handlePreloadIframeReady = () => {\n setIsIframeReady(true);\n openModal();\n };\n\n const handleModalIframeReady = () => {\n if (!useModalIframePreload.getState().isIframeReady) {\n setIsIframeReady(true);\n }\n };\n\n return {\n modalUrl,\n setModalUrl,\n isOpenModal,\n closeModal,\n isPreloading,\n preloadIframeRef,\n iframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n reset,\n };\n};\n","import { useEffect, useRef, useState } from \"react\";\nimport io, { type Socket } from \"socket.io-client\";\n\nconst RECONNECTION_ATTEMPTS = 14;\n\nexport interface SocketEventData {\n success: boolean;\n token: string;\n}\n\ninterface UseSocketConnectionParams {\n socketUrl: string;\n secure?: boolean;\n isOpenLaunchApp: boolean;\n dataOpenLaunchApp: Record<string, unknown>;\n closeLaunchApp: () => void;\n closeModal: () => void;\n onComplete?: (data: SocketEventData) => void;\n onDisconnectClient?: () => void;\n onDisconnect?: () => void;\n onMaxReconnects?: () => void;\n onConnectionChange?: (connected: boolean) => void;\n enabled?: boolean;\n isSessionExpired?: boolean;\n}\n\nexport const useSocketConnection = ({\n socketUrl,\n secure = false,\n isOpenLaunchApp,\n dataOpenLaunchApp,\n closeLaunchApp,\n closeModal,\n onComplete,\n onDisconnectClient,\n onDisconnect,\n onMaxReconnects,\n onConnectionChange,\n enabled = true,\n isSessionExpired = false,\n}: UseSocketConnectionParams) => {\n const socketRef = useRef<Socket | null>(null);\n const [attempts, setAttempts] = useState(0);\n\n const dataOpenLaunchAppRef = useRef(dataOpenLaunchApp);\n const closeLaunchAppRef = useRef(closeLaunchApp);\n const closeModalRef = useRef(closeModal);\n const enabledRef = useRef(enabled);\n const onConnectionChangeRef = useRef(onConnectionChange);\n const onCompleteRef = useRef(onComplete);\n const onDisconnectClientRef = useRef(onDisconnectClient);\n const onDisconnectRef = useRef(onDisconnect);\n const onMaxReconnectsRef = useRef(onMaxReconnects);\n\n useEffect(() => {\n dataOpenLaunchAppRef.current = dataOpenLaunchApp;\n closeLaunchAppRef.current = closeLaunchApp;\n closeModalRef.current = closeModal;\n enabledRef.current = enabled;\n onConnectionChangeRef.current = onConnectionChange;\n onCompleteRef.current = onComplete;\n onDisconnectClientRef.current = onDisconnectClient;\n onDisconnectRef.current = onDisconnect;\n onMaxReconnectsRef.current = onMaxReconnects;\n }, [\n dataOpenLaunchApp,\n closeLaunchApp,\n closeModal,\n enabled,\n onConnectionChange,\n onComplete,\n onDisconnectClient,\n onDisconnect,\n onMaxReconnects,\n ]);\n\n useEffect(() => {\n if (attempts === RECONNECTION_ATTEMPTS) {\n if (socketRef.current) {\n socketRef.current.disconnect();\n }\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n onMaxReconnectsRef.current?.();\n setTimeout(() => setAttempts(0), 0);\n }\n }, [attempts]);\n\n useEffect(() => {\n if (!enabled) {\n if (socketRef.current) {\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n onConnectionChangeRef.current?.(false);\n setTimeout(() => setAttempts(0), 0);\n }\n return;\n }\n\n if (!isOpenLaunchApp) {\n if (socketRef.current) {\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n }\n return;\n }\n\n if (!socketRef.current) {\n socketRef.current = io(socketUrl, {\n transports: [\"websocket\"],\n secure,\n upgrade: false,\n forceNew: true,\n reconnection: true,\n reconnectionAttempts: RECONNECTION_ATTEMPTS,\n reconnectionDelay: 2000,\n reconnectionDelayMax: 1000,\n });\n\n const socket = socketRef.current;\n\n const handleConnect = () => {\n if (!enabledRef.current) return;\n\n onConnectionChangeRef.current?.(true);\n if (socketRef.current) {\n const jsonObject = dataOpenLaunchAppRef.current;\n\n if (jsonObject && Object.keys(jsonObject).length > 0) {\n socketRef.current.emit(\"setToken\", jsonObject);\n } else {\n setTimeout(() => {\n const delayedData = dataOpenLaunchAppRef.current;\n if (\n delayedData &&\n Object.keys(delayedData).length > 0 &&\n socketRef.current &&\n enabledRef.current\n ) {\n socketRef.current.emit(\"setToken\", delayedData);\n }\n }, 100);\n }\n } else {\n console.error(\"Socket no está disponible para enviar token\");\n }\n };\n\n const handleDisconnect = () => {\n if (!enabledRef.current) return;\n\n onConnectionChangeRef.current?.(false);\n closeLaunchAppRef.current();\n closeModalRef.current();\n onDisconnectRef.current?.();\n };\n\n const handleReconnectAttempt = (attemptNumber: number) => {\n setAttempts(attemptNumber);\n };\n\n const handleConnectError = (error: Error) => {\n console.error(\"Error de conexión socket:\", error);\n };\n\n const handleComplete = (data: SocketEventData) => {\n if (!enabledRef.current) return;\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n onCompleteRef.current?.(data);\n };\n\n const handleServerTimeout = () => {\n if (!enabledRef.current) return;\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n };\n\n const handleDisconnectClient = () => {\n if (!enabledRef.current) return;\n closeLaunchAppRef.current();\n onConnectionChangeRef.current?.(false);\n closeModalRef.current();\n onDisconnectClientRef.current?.();\n };\n\n socket.on(\"connect\", handleConnect);\n socket.on(\"disconnect\", handleDisconnect);\n socket.on(\"connect_error\", handleConnectError);\n socket.io.on(\"reconnect_attempt\", handleReconnectAttempt);\n socket.on(\"onProcessComplete\", handleComplete);\n socket.on(\"onValidationComplete\", handleComplete);\n socket.on(\"onProcessCompleteFirma\", handleComplete);\n socket.on(\"onServerTimeout\", handleServerTimeout);\n socket.on(\"onDisconnectClient\", handleDisconnectClient);\n }\n\n return () => {\n if (socketRef.current && (!enabled || !isOpenLaunchApp)) {\n if (isSessionExpired) {\n socketRef.current.emit(\"setTimeout\", \"TIMEOUT_APP\");\n }\n\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n }\n };\n }, [enabled, isOpenLaunchApp, socketUrl, secure, isSessionExpired]);\n\n useEffect(() => {\n if (isSessionExpired && socketRef.current) {\n socketRef.current.emit(\"setTimeout\", \"TIMEOUT_APP\");\n }\n }, [isSessionExpired]);\n\n useEffect(() => {\n return () => {\n if (socketRef.current) {\n socketRef.current.removeAllListeners();\n socketRef.current.disconnect();\n socketRef.current = null;\n }\n };\n }, []);\n\n return { attempts };\n};\n","import { useState, useCallback, useEffect } from \"react\";\n\nimport {\n useIframeCommunication,\n useIframePreload,\n useSocketConnection,\n type SocketEventData,\n} from \"../onpeId\";\n\ninterface UseOnpeIdAuthParams {\n socketUrl: string;\n secure?: boolean;\n navigate: (url: string) => void;\n onConnectionChange?: (connected: boolean) => void;\n connectionApp?: boolean;\n onPageReload?: () => void;\n onComplete?: (data: SocketEventData) => void;\n onDisconnectClient?: () => void;\n onExpiredApp?: () => void;\n onDisconnect?: () => void;\n onMaxReconnects?: () => void;\n onHomeApp?: () => void;\n onNotApp?: () => void;\n onOpenMobile?: (data: Record<string, unknown>) => void;\n isSessionExpired?: boolean;\n}\n\nexport const useOnpeIdAuth = ({\n socketUrl,\n secure = false,\n navigate,\n onConnectionChange,\n connectionApp,\n onPageReload,\n onComplete,\n onHomeApp,\n onNotApp,\n onDisconnectClient,\n isSessionExpired,\n onExpiredApp,\n onDisconnect,\n onMaxReconnects,\n onOpenMobile,\n}: UseOnpeIdAuthParams) => {\n const [isOpenLaunchApp, setIsOpenLaunchApp] = useState(false);\n const [dataOpenLaunchApp, setDataOpenLaunchApp] = useState<\n Record<string, unknown>\n >({});\n\n const openLaunchApp = useCallback(() => setIsOpenLaunchApp(true), []);\n const closeLaunchApp = useCallback(() => setIsOpenLaunchApp(false), []);\n const {\n modalUrl,\n setModalUrl,\n isOpenModal,\n isPreloading,\n closeModal,\n preloadIframeRef,\n iframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n reset: resetIframeState,\n } = useIframePreload();\n\n const handleClose = useCallback(() => {\n onConnectionChange?.(false);\n closeModal();\n closeLaunchApp();\n resetIframeState();\n }, [closeModal, closeLaunchApp, resetIframeState, onConnectionChange]);\n\n useEffect(() => {\n if (connectionApp) {\n onConnectionChange?.(false);\n onPageReload?.();\n }\n return () => {\n resetIframeState();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- solo se ejecuta en el primer render\n }, []);\n\n const { attempts } = useSocketConnection({\n socketUrl,\n secure,\n isOpenLaunchApp,\n dataOpenLaunchApp,\n closeLaunchApp,\n closeModal: handleClose,\n onComplete,\n onDisconnectClient,\n onDisconnect,\n onMaxReconnects,\n onConnectionChange,\n enabled: isOpenModal && !!modalUrl,\n isSessionExpired,\n });\n\n useIframeCommunication({\n onExpiredApp: () => {\n handleClose();\n onExpiredApp?.();\n },\n onOpenApp: (data) => {\n navigate(data.url!);\n },\n onLaunchApp: (data) => {\n openLaunchApp();\n setDataOpenLaunchApp((data.data as Record<string, unknown>) ?? {});\n },\n onOpenMobile: (data) => {\n onOpenMobile?.((data.data as Record<string, unknown>) ?? {});\n },\n onHomeApp: () => {\n handleClose();\n onHomeApp?.();\n },\n onNotApp: () => {\n handleClose();\n onNotApp?.();\n },\n });\n\n return {\n modalUrl,\n setModalUrl,\n isOpenModal,\n isPreloading,\n isOpenLaunchApp,\n handleClose,\n iframeRef,\n preloadIframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n attempts,\n reset: resetIframeState,\n };\n};\n","import { useState } from \"react\";\n\nimport { Modal } from \"../../components/Modal\";\n\ninterface OnpeIdModalProps {\n modalUrl: string;\n isOpenModal: boolean;\n isOpenLaunchApp: boolean;\n isOnline: boolean;\n onClose: () => void;\n iframeRef: React.RefObject<HTMLIFrameElement | null>;\n preloadIframeRef: React.RefObject<HTMLIFrameElement | null>;\n handlePreloadIframeReady: () => void;\n handleModalIframeReady: () => void;\n disableFocus?: boolean;\n}\n\nexport const OnpeIdModal = ({\n modalUrl,\n isOpenModal,\n isOpenLaunchApp,\n isOnline,\n onClose,\n iframeRef,\n preloadIframeRef,\n handlePreloadIframeReady,\n handleModalIframeReady,\n disableFocus = false,\n}: OnpeIdModalProps) => {\n const [isIframeLoaded, setIsIframeLoaded] = useState(false);\n\n return (\n <>\n {modalUrl && !isOpenModal && isOnline && (\n <iframe\n ref={preloadIframeRef}\n src={modalUrl}\n className=\"hidden\"\n onLoad={handlePreloadIframeReady}\n title=\"Precarga ONPE ID\"\n />\n )}\n\n <Modal\n isOpen={isOpenModal && isOnline}\n onClose={onClose}\n className=\"bg-white max-w-custom-673 p-10 relative\"\n closeButton={!isOpenLaunchApp && isIframeLoaded}\n escapeToClose={false}\n disableFocus={disableFocus}\n >\n {!!modalUrl && isOnline && (\n <iframe\n ref={iframeRef}\n src={modalUrl}\n onLoad={() => {\n handleModalIframeReady();\n setIsIframeLoaded(true);\n }}\n className=\"w-full h-[410px] min-[400px]:h-[390px] md:h-[312px]\"\n title=\"Aplicativo ONPEID para autenticación y registro\"\n />\n )}\n </Modal>\n </>\n );\n};\n"]}
@@ -456,23 +456,77 @@ var IconCloseRadius = (props) => /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns:
456
456
  ) });
457
457
  var ModalGlobalContext = react.createContext(null);
458
458
  var useModalGlobalContext = () => react.useContext(ModalGlobalContext);
459
+ var lockCount = 0;
460
+ var savedStyles = null;
461
+ var getScrollbarWidth = () => {
462
+ return globalThis.window.innerWidth - document.documentElement.clientWidth;
463
+ };
464
+ var lockBodyScroll = () => {
465
+ if (lockCount === 0) {
466
+ const html = document.documentElement;
467
+ const body = document.body;
468
+ savedStyles = {
469
+ htmlOverflow: html.style.overflow,
470
+ bodyOverflow: body.style.overflow,
471
+ bodyPaddingRight: body.style.paddingRight,
472
+ htmlTouchAction: html.style.touchAction,
473
+ bodyTouchAction: body.style.touchAction
474
+ };
475
+ const scrollbarWidth = getScrollbarWidth();
476
+ if (scrollbarWidth > 0) {
477
+ const paddingRight = getComputedStyle(body).paddingRight || "0";
478
+ const currentPadding = Number.parseInt(paddingRight, 10) || 0;
479
+ body.style.paddingRight = `${currentPadding + scrollbarWidth}px`;
480
+ }
481
+ html.style.overflow = "hidden";
482
+ body.style.overflow = "hidden";
483
+ html.style.touchAction = "none";
484
+ body.style.touchAction = "none";
485
+ }
486
+ lockCount++;
487
+ };
488
+ var unlockBodyScroll = () => {
489
+ if (lockCount <= 0) return;
490
+ lockCount--;
491
+ if (lockCount > 0) return;
492
+ const html = document.documentElement;
493
+ const body = document.body;
494
+ if (savedStyles) {
495
+ html.style.overflow = savedStyles.htmlOverflow ?? "";
496
+ body.style.overflow = savedStyles.bodyOverflow ?? "";
497
+ body.style.paddingRight = savedStyles.bodyPaddingRight ?? "";
498
+ html.style.touchAction = savedStyles.htmlTouchAction ?? "";
499
+ body.style.touchAction = savedStyles.bodyTouchAction ?? "";
500
+ } else {
501
+ html.style.overflow = "";
502
+ body.style.overflow = "";
503
+ body.style.paddingRight = "";
504
+ html.style.touchAction = "";
505
+ body.style.touchAction = "";
506
+ }
507
+ savedStyles = null;
508
+ };
509
+ var useScrollLock = (locked) => {
510
+ react.useEffect(() => {
511
+ if (typeof window === "undefined" || typeof document === "undefined") return;
512
+ if (locked) {
513
+ lockBodyScroll();
514
+ return () => unlockBodyScroll();
515
+ }
516
+ unlockBodyScroll();
517
+ }, [locked]);
518
+ };
459
519
  var openModals = globalThis.__openModals || (globalThis.__openModals = /* @__PURE__ */ new Map());
460
520
  var computeZIndex = (requested) => {
461
521
  if (openModals.size === 0) return requested;
462
522
  const maxAssigned = Math.max(...openModals.values());
463
523
  return Math.max(requested, maxAssigned + 20);
464
524
  };
465
- var registerModal = (id, zIndex, enabled) => {
525
+ var registerModal = (id, zIndex) => {
466
526
  openModals.set(id, zIndex);
467
- if (!enabled || typeof document === "undefined") return;
468
- document.body.style.overflow = "hidden";
469
527
  };
470
- var unregisterModal = (id, enabled) => {
528
+ var unregisterModal = (id) => {
471
529
  openModals.delete(id);
472
- if (!enabled || typeof document === "undefined") return;
473
- if (openModals.size === 0) {
474
- document.body.style.overflow = "";
475
- }
476
530
  };
477
531
  var FOCUSABLE_SELECTOR = [
478
532
  "a[href]",
@@ -558,6 +612,7 @@ var Modal = ({
558
612
  const modalRef = react.useRef(null);
559
613
  const contentRef = react.useRef(null);
560
614
  const previousActiveElement = react.useRef(null);
615
+ useScrollLock(isOpen && preventBodyScroll);
561
616
  const handleStartFocusGuard = () => {
562
617
  const wrapper = modalRef.current;
563
618
  if (!wrapper) return;
@@ -597,12 +652,12 @@ var Modal = ({
597
652
  if (isOpen) {
598
653
  const computed = computeZIndex(zIndexLevel);
599
654
  setAssignedZIndex(computed);
600
- registerModal(modalId, computed, preventBodyScroll);
655
+ registerModal(modalId, computed);
601
656
  }
602
657
  return () => {
603
- if (isOpen) unregisterModal(modalId, preventBodyScroll);
658
+ if (isOpen) unregisterModal(modalId);
604
659
  };
605
- }, [isOpen, preventBodyScroll, modalId, zIndexLevel]);
660
+ }, [isOpen, modalId, zIndexLevel]);
606
661
  react.useEffect(() => {
607
662
  if (!isOpen) return;
608
663
  const resetScroll = () => {