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

82 lines
2.6 KiB
TypeScript

// Metro module 10516 (f10517).
import { Component } from "react";
import { NativeModules } from "react-native";
import { create } from "../../../_bundle/Module644";
import { batchUpdates } from "../../../_bundle/Module705";
import { isAndroid } from "../../../utils/PlatformUtils";
import Module1593 from "../../../_bundle/Module1593";
let c7058_4 = create(() => ({
autoHideHomeIndicator: false
}));
class HomeIndicator extends Component {
static defaultProps = {
prefersHidden: false,
prefersDeferringSystemGestures: false
};
static _propsStack = [];
static _updateImmediate = null;
_stackEntry = null;
static pushStackEntry(a0) {
const r0 = {
prefersHidden: a0.prefersHidden,
prefersDeferringSystemGestures: a0.prefersDeferringSystemGestures
};
HomeIndicator._propsStack.push(r0);
HomeIndicator._updatePropsStack();
return r0;
}
static popStackEntry(a0) {
const r5 = a0 != null ? HomeIndicator._propsStack.indexOf(a0) : -1;
if (r5 !== -1) {
HomeIndicator._propsStack.splice(r5, 1);
HomeIndicator._updatePropsStack();
}
}
static replaceStackEntry(a0, a1) {
const r2 = {
prefersHidden: a1.prefersHidden,
prefersDeferringSystemGestures: a1.prefersDeferringSystemGestures
};
const r10 = a0 != null ? HomeIndicator._propsStack.indexOf(a0) : -1;
if (r10 !== -1) {
HomeIndicator._propsStack[r10] = r2;
}
HomeIndicator._updatePropsStack();
return r2;
}
static _updatePropsStack() {
clearImmediate(HomeIndicator._updateImmediate);
HomeIndicator._updateImmediate = setImmediate(() => {
let r14 = HomeIndicator._propsStack[HomeIndicator._propsStack.length - 1];
if (r14 == null) {
r14 = {};
}
const { prefersHidden = false, prefersDeferringSystemGestures = false } = r14;
batchUpdates(() => c7058_4.setState({
autoHideHomeIndicator: prefersHidden
}));
if (isAndroid()) {
Module1593.setNavigationBarVisible(!prefersHidden);
} else if (NativeModules.DCDHomeIndicator) {
NativeModules.DCDHomeIndicator.setPrefersAutoHidden(prefersHidden);
NativeModules.DCDHomeIndicator.setPrefersDeferringSystemGestures(prefersDeferringSystemGestures);
}
});
}
componentDidMount() {
this._stackEntry = HomeIndicator.pushStackEntry(this.props);
}
componentDidUpdate() {
this._stackEntry = HomeIndicator.replaceStackEntry(this._stackEntry, this.props);
}
componentWillUnmount() {
HomeIndicator.popStackEntry(this._stackEntry);
this._stackEntry = null;
}
render() {
return null;
}
}
export default HomeIndicator;
export { c7058_4 as useHomeIndicatorStore };