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

50 lines
2.9 KiB
TypeScript

// Metro module 15110 (f15111).
import EmbeddedActivitiesStore from "../../activities/EmbeddedActivitiesStore";
import ChannelRTCStore from "../../calls/ChannelRTCStore";
import ApplicationStreamingStore from "../../../stores/ApplicationStreamingStore";
import AuthenticationStore from "../../../stores/AuthenticationStore";
import MediaEngineStore from "../../../stores/MediaEngineStore";
import SessionsStore from "../../../stores/SessionsStore";
import VoiceStateStore from "../../../stores/VoiceStateStore";
import { useStateFromStoresObject, useStateFromStores } from "../../../_bundle/Module589";
import VoiceUserItem from "./VoiceUserItem";
export default function VoiceUserConnected(props) {
const { channel, user, sessionId, member, selfMute, selfDeaf } = props;
let selfVideo = props.selfVideo;
let mute = props.mute;
const { deaf, suppress, collapsed, isGuest } = props;
const r1 = AuthenticationStore.getId() === user.id;
let c21683_3 = r1;
const stateFromStoresObject = useStateFromStoresObject([MediaEngineStore], () => c21683_3 ? {
localMute: false,
localDeaf: false,
localVideo: MediaEngineStore.isVideoEnabled()
} : {
localMute: MediaEngineStore.isLocalMute(user.id),
localDeaf: false,
localVideo: false
});
const { localMute, localVideo } = stateFromStoresObject;
const stateFromStores = useStateFromStores([ApplicationStreamingStore], () => ApplicationStreamingStore.getStreamForUser(user.id, channel.getGuildId()));
const stateFromStores2 = useStateFromStores([SessionsStore], () => {
const r1 = sessionId != null;
let r7 = void 0;
if (r1) {
const sessionById = SessionsStore.getSessionById(sessionId);
r7 = sessionById == null ? void 0 : sessionById.clientInfo.os;
}
return r7;
});
const stateFromStores3 = useStateFromStores([VoiceStateStore], () => VoiceStateStore.getVoicePlatformForChannel(channel.id, user.id), [channel.id, user.id]);
const r0 = sessionId != null && r1 && sessionId !== AuthenticationStore.getSessionId();
const stateFromStores4 = useStateFromStores([EmbeddedActivitiesStore], () => EmbeddedActivitiesStore.getEmbeddedActivitiesForChannel(channel.id).find((item) => item.userIds.has(user.id)), [user.id, channel.id]);
const stateFromStores5 = useStateFromStores([ChannelRTCStore], () => ChannelRTCStore.getGuildRingingUsers(channel.id).has(user.id));
if (!mute) {
mute = suppress;
}
if (!selfVideo) {
selfVideo = localVideo;
}
return <VoiceUserItem guildId={channel.guild_id} member={member} user={user} collapsed={collapsed} serverMute={mute} serverDeaf={deaf} mute={selfMute} deaf={selfDeaf} localMute={localMute} video={selfVideo} stream={stateFromStores?.channelId === channel.id} platform={stateFromStores2} disabled={stateFromStores2 == null && r0} isInEmbeddedActivity={stateFromStores4 != null} isGuest={isGuest} voicePlatform={stateFromStores3} ringing={stateFromStores5} />;
};