Files
discord-decomp/design/components/AccessibilityView/useAccessibilityViewIsModalToggle.native.tsx
T
2026-11-01 12:12:55 +02:00

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]);
};