Files
discord-decomp/modules/video_calls/useMuteStates.tsx
T
2026-11-01 12:12:55 +02:00

35 lines
1.7 KiB
TypeScript

// Metro module 10777 (f10778).
import ImpersonateStore from "../impersonate/ImpersonateStore";
import AuthenticationStore from "../../stores/AuthenticationStore";
import MediaEngineStore from "../../stores/MediaEngineStore";
import PermissionStore from "../../stores/PermissionStore";
import VoiceStateStore from "../../stores/VoiceStateStore";
import { Permissions } from "../../Constants";
import { useStateFromStoresObject } from "../../_bundle/Module589";
const getMuteStates = function getMuteStates({ channel: channel2, authenticationStore = AuthenticationStore, voiceStateStore = VoiceStateStore, mediaEngineStore = MediaEngineStore, permissionStore = PermissionStore, impersonateStore = ImpersonateStore }) {
const r14 = channel2 != null ? voiceStateStore.getVoiceState(channel2.getGuildId(), authenticationStore.getId()) : null;
const selfMute = mediaEngineStore.isSelfMute() || mediaEngineStore.isSelfMutedTemporarily();
const r24 = impersonateStore.isViewingRoles(channel2 == null ? void 0 : channel2.getGuildId()) && !permissionStore.can(Permissions.SPEAK, channel2);
const suppress = r14?.suppress || r24;
let mute = r14?.mute;
if (mute == null) {
mute = false;
}
return {
selfMute,
suppress,
mute
};
};
export default function useMuteStates(channel) {
return useStateFromStoresObject([AuthenticationStore, VoiceStateStore, MediaEngineStore, PermissionStore, ImpersonateStore], () => getMuteStates({
channel,
authenticationStore: AuthenticationStore,
voiceStateStore: VoiceStateStore,
mediaEngineStore: MediaEngineStore,
permissionStore: PermissionStore,
impersonateStore: ImpersonateStore
}));
};
export { getMuteStates };