35 lines
1.7 KiB
TypeScript
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 };
|