Files
discord-decomp/modules/voice_panel/native/card/ActivityAccessibilityLayer.tsx
T
2026-11-01 12:12:55 +02:00

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