Socket
Socket
Sign inDemoInstall

hook-modal

Package Overview
Dependencies
9
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.0 to 0.1.1

14

dist/index.js

@@ -1,1 +0,13 @@

export * from "./useModal";
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./useModal"), exports);

14

dist/useAriaHidden.js

@@ -1,11 +0,15 @@

import { useEffect } from "react";
import { hideOthers } from "aria-hidden";
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useAriaHidden = void 0;
var react_1 = require("react");
var aria_hidden_1 = require("aria-hidden");
// set aria-hidden attribute when the modal is opened
export function useAriaHidden(ref, isOpen) {
useEffect(() => {
function useAriaHidden(ref, isOpen) {
(0, react_1.useEffect)(function () {
if (!isOpen || ref.current === null) {
return;
}
return hideOthers(ref.current);
return (0, aria_hidden_1.hideOthers)(ref.current);
}, [ref, isOpen]);
}
exports.useAriaHidden = useAriaHidden;

@@ -1,11 +0,15 @@

import { useEffect } from "react";
import { clearAllBodyScrollLocks, disableBodyScroll } from "body-scroll-lock";
export function useDisableScroll(ref, isOpen) {
useEffect(() => {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useDisableScroll = void 0;
var react_1 = require("react");
var body_scroll_lock_1 = require("body-scroll-lock");
function useDisableScroll(ref, isOpen) {
(0, react_1.useEffect)(function () {
if (!isOpen || ref.current === null) {
return;
}
disableBodyScroll(ref.current);
return clearAllBodyScrollLocks;
(0, body_scroll_lock_1.disableBodyScroll)(ref.current);
return body_scroll_lock_1.clearAllBodyScrollLocks;
}, [ref, isOpen]);
}
exports.useDisableScroll = useDisableScroll;

@@ -1,10 +0,13 @@

import { useEffect } from "react";
import { createFocusTrap } from "focus-trap";
export function useFocusTrap(options) {
const { ref, isOpen, onClose, closeOnEsc, closeOnOutsideClick } = options;
useEffect(() => {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useFocusTrap = void 0;
var react_1 = require("react");
var focus_trap_1 = require("focus-trap");
function useFocusTrap(options) {
var ref = options.ref, isOpen = options.isOpen, onClose = options.onClose, closeOnEsc = options.closeOnEsc, closeOnOutsideClick = options.closeOnOutsideClick;
(0, react_1.useEffect)(function () {
if (!isOpen || ref.current === null) {
return;
}
const trap = createFocusTrap(ref.current, {
var trap = (0, focus_trap_1.createFocusTrap)(ref.current, {
onDeactivate: onClose,

@@ -15,3 +18,3 @@ clickOutsideDeactivates: closeOnOutsideClick,

trap.activate();
return () => {
return function () {
trap.deactivate();

@@ -21,1 +24,2 @@ };

}
exports.useFocusTrap = useFocusTrap;

@@ -1,16 +0,20 @@

import { useRef } from "react";
import { useAriaHidden } from "./useAriaHidden";
import { useDisableScroll } from "./useDisableScroll";
import { useFocusTrap } from "./useFocusTrap";
export function useModal(options) {
const { isOpen, onClose, closeOnEsc = true, closeOnOutsideClick = true, } = options;
const ref = useRef(null);
useAriaHidden(ref, isOpen);
useFocusTrap({ ref, isOpen, onClose, closeOnEsc, closeOnOutsideClick });
useDisableScroll(ref, isOpen);
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useModal = void 0;
var react_1 = require("react");
var useAriaHidden_1 = require("./useAriaHidden");
var useDisableScroll_1 = require("./useDisableScroll");
var useFocusTrap_1 = require("./useFocusTrap");
function useModal(options) {
var isOpen = options.isOpen, onClose = options.onClose, _a = options.closeOnEsc, closeOnEsc = _a === void 0 ? true : _a, _b = options.closeOnOutsideClick, closeOnOutsideClick = _b === void 0 ? true : _b;
var ref = (0, react_1.useRef)(null);
(0, useAriaHidden_1.useAriaHidden)(ref, isOpen);
(0, useFocusTrap_1.useFocusTrap)({ ref: ref, isOpen: isOpen, onClose: onClose, closeOnEsc: closeOnEsc, closeOnOutsideClick: closeOnOutsideClick });
(0, useDisableScroll_1.useDisableScroll)(ref, isOpen);
return {
role: "dialog",
"aria-modal": true,
ref,
ref: ref,
};
}
exports.useModal = useModal;
{
"name": "hook-modal",
"description": "React Hooks for building accessible modal",
"version": "0.1.0",
"version": "0.1.1",
"main": "dist/index.js",

@@ -6,0 +6,0 @@ "author": "dqn <dqn270@gmail.com>",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc