UNPKG

@tantainnovative/ndpr-toolkit

Version:

Nigeria Data Protection Toolkit — enterprise-grade compliance components for the Nigeria Data Protection Act (NDPA) 2023

1 lines 1.46 kB
'use strict';var chunkPEUAA5EC_js=require('./chunk-PEUAA5EC.js'),react=require('react');var T='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';function x(r){let{active:n,onEscape:o,autoFocus:u=true}=r,t=react.useRef(null),c=react.useRef(null);return react.useEffect(()=>{if(!n||(c.current=typeof document!="undefined"?document.activeElement:null,!t.current))return;let a=false,l;u&&(l=setTimeout(()=>{if(a||!t.current)return;let e=t.current.querySelectorAll(T);e.length>0?e[0].focus():(t.current.tabIndex<0&&(t.current.tabIndex=-1),t.current.focus());},0));let f=e=>{if(e.key==="Escape"&&o){o();return}if(e.key!=="Tab"||!t.current)return;let i=t.current.querySelectorAll(T);if(i.length===0)return;let d=i[0],m=i[i.length-1];e.shiftKey?document.activeElement===d&&(e.preventDefault(),m.focus()):document.activeElement===m&&(e.preventDefault(),d.focus());};return document.addEventListener("keydown",f),()=>{a=true,l&&clearTimeout(l),document.removeEventListener("keydown",f);let e=c.current;e&&typeof document!="undefined"&&document.contains(e)&&typeof e.focus=="function"&&e.focus();}},[n,o,u]),t}function h(r,n){let[o,u]=react.useState(null),t=react.useRef(r),c=react.useRef(n);t.current=r,c.current=n;let s=react.useCallback(()=>{u(chunkPEUAA5EC_js.b(t.current,c.current));},[]);return react.useEffect(()=>{s();},[s]),{result:o,rescan:s}}exports.a=x;exports.b=h;