61 lines
2.7 KiB
TypeScript
61 lines
2.7 KiB
TypeScript
// Metro module 15970 (f15971).
|
|
import { useState, useRef, useCallback } from "react";
|
|
import { Pressable, StyleSheet, View } from "react-native";
|
|
import { IS_IOS } from "../../VoicePanelConstants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import { setAccessibilityFocus } from "../../../a11y/native/setAccessibilityFocus.android";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
import { AccessibilityView } from "../../../../design/components/AccessibilityView/AccessibilityView.native";
|
|
import { useIsScreenReaderEnabled } from "../../../a11y/native/useIsScreenReaderEnabled.native";
|
|
let useStyles;
|
|
const FocusedActivityAccessibilityLayer = function FocusedActivityAccessibilityLayer(props) {
|
|
const { channelId, activityName, children } = props;
|
|
const styles = useStyles();
|
|
const [accessibilityViewIsModal, setState] = useState(false);
|
|
const ref = useRef(null);
|
|
const callback = useCallback(() => {
|
|
setState(true);
|
|
}, []);
|
|
const callback2 = useCallback(() => {
|
|
setState(false);
|
|
setAccessibilityFocus({
|
|
ref,
|
|
delay: 300
|
|
});
|
|
}, []);
|
|
const accessibilityLabel = activityName != null ? intl.formatToPlainString(t.XSfwGL, {
|
|
name: activityName
|
|
}) : intl.string(t.KYNi2m);
|
|
const r75 = [<AccessibilityView nativeID={`voice-panel-activity-${channelId}`} accessibilityViewIsModal={accessibilityViewIsModal} onAccessibilityEscape={accessibilityViewIsModal ? callback2 : void 0} accessibilityElementsHidden={!accessibilityViewIsModal} importantForAccessibility={accessibilityViewIsModal ? "auto" : "no-hide-descendants"} style={styles.fill}>{children}</AccessibilityView>, ,];
|
|
let importantForAccessibility = "auto";
|
|
const props2 = {
|
|
ref,
|
|
style: StyleSheet.absoluteFill,
|
|
pointerEvents: accessibilityViewIsModal ? "none" : "auto",
|
|
accessible: true,
|
|
accessibilityRole: "button",
|
|
accessibilityLabel,
|
|
accessibilityHint: intl.string(t["8DaKO6"]),
|
|
accessibilityElementsHidden: accessibilityViewIsModal,
|
|
importantForAccessibility: null,
|
|
onPress: null
|
|
};
|
|
if (accessibilityViewIsModal) {
|
|
importantForAccessibility = "no-hide-descendants";
|
|
}
|
|
props2.importantForAccessibility = importantForAccessibility;
|
|
props2.onPress = callback;
|
|
r75[1] = <Pressable {...props2} />;
|
|
return <View style={styles.fill}>{r75}</View>;
|
|
};
|
|
useStyles = createStyles({
|
|
fill: {
|
|
flex: 1
|
|
}
|
|
});
|
|
export default function ActivityAccessibilityLayer(props) {
|
|
const { isActivityFocused, ...props2 } = props;
|
|
const isScreenReaderEnabled = useIsScreenReaderEnabled();
|
|
return IS_IOS && (isScreenReaderEnabled && isActivityFocused) ? <FocusedActivityAccessibilityLayer {...props2} /> : props2.children;
|
|
};
|