decord/beta/source/modules/a11y/native/useAnnounceAsyncCompletion.native.tsx
2026-10-01 14:13:23 +00:00

78 lines
2.3 KiB
TypeScript

// Module ID: 10388
// Function ID: 10389
// Name: useAnnounceAsyncCompletion
// Dependencies: [19, 17, 4685, 1364, 5266, 2]
// Exports: default
// Module 10388 (useAnnounceAsyncCompletion)
import react_native from "react-native" /* 17 */;
import react from "react" /* 19 */;
import size from "module_2" /* 2 */;
const AccessibilityInfo = react_native.AccessibilityInfo;
const result = size.fileFinishedImporting("modules/a11y/native/useAnnounceAsyncCompletion.native.tsx");
export default function useAnnounceAsyncCompletion() {
let ref = react.useRef(null);
const effect = react.useEffect(() => () => {
const current = ref.current;
const tmp = ref;
if (current != null) {
current();
}
tmp.current = null;
}, []);
return react.useCallback(function(intl, polite) {
ref = intl;
let str = polite;
if (polite === undefined) {
str = "assertive";
}
let tmp = ref;
const AccessibilityAnnouncer = ref(dependencyMap[2]).AccessibilityAnnouncer;
AccessibilityAnnouncer.announce(intl, str);
const obj = ref(dependencyMap[3]);
const tmp2 = dependencyMap;
if (obj.isIOS()) {
let resolved;
const tmpResult = tmp(tmp2[4]);
if (tmpResult.getIsScreenReaderEnabled()) {
let current = ref.current;
if (current != null) {
let currentResult = current();
}
const self = this;
const self2 = this;
resolved = new Promise((arg0) => {
let closure_1;
ref = arg0;
const timeout = setTimeout(() => {
const current = ref.current;
let currentResult;
if (current != null) {
currentResult = current();
}
return currentResult;
}, 1800);
let closure_2 = AccessibilityInfo.addEventListener("announcementFinished", (event) => {
const tmp = event.announcement === ref && event.success;
if (tmp) {
const current = ref.current;
if (current != null) {
current();
}
}
});
ref.current = () => {
clearTimeout(closure_1);
closure_2.remove();
ref.current = null;
ref();
};
});
}
return resolved;
}
resolved = Promise.resolve();
}, []);
};