36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
// Metro module 4584 (f4585).
|
|
import { useRef, useCallback, useEffect } from "react";
|
|
import AccessibilityFocusLockManager from "../../../modules/a11y/native/AccessibilityFocusLockManager";
|
|
export default function useAccessibilityViewIsModalToggle(a0) {
|
|
let accessibilityViewIsModal = a0.accessibilityViewIsModal;
|
|
if (accessibilityViewIsModal === void 0) {
|
|
accessibilityViewIsModal = false;
|
|
}
|
|
let c14332_0 = accessibilityViewIsModal;
|
|
const nativeID = a0.nativeID;
|
|
const ref = useRef(void 0);
|
|
const callback = useCallback(function(r3 = c14332_0) {
|
|
if (r3) {
|
|
if (nativeID == null) {
|
|
throw new Error("Must have a unique nativeID when accessibilityViewIsModal is enabled.");
|
|
}
|
|
if (ref.current !== nativeID) {
|
|
ref.current = nativeID;
|
|
AccessibilityFocusLockManager.enableAccessibilityFocusLock([nativeID]);
|
|
}
|
|
} else {
|
|
const current = ref.current;
|
|
if (current != null) {
|
|
ref.current = void 0;
|
|
AccessibilityFocusLockManager.disableAccessibilityFocusLock([current]);
|
|
}
|
|
}
|
|
}, [accessibilityViewIsModal, nativeID]);
|
|
useEffect(() => {
|
|
callback();
|
|
return () => {
|
|
callback(false);
|
|
};
|
|
}, [callback]);
|
|
};
|