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

30 lines
2.0 KiB
TypeScript

// Metro module 12019 (f12020).
import PresenceStore from "../../../stores/PresenceStore";
import { useAvatarDecoration } from "../../collectibles/avatar_decorations/useAvatarDecoration";
import { useStateFromStoresObject } from "../../../_bundle/Module589";
import { TableRow } from "../../../design/components/TableRow/native/TableRow.native";
import NicknameUtils from "../../../utils/NicknameUtils";
import { Avatar, AvatarSizes } from "../../../design/void/native";
import UserProfileStackedActionSheet, { UserProfileStackedActionSheetList } from "./UserProfileStackedActionSheet";
import { intl, t } from "../../../intl/index.native";
const UserRow = function UserRow(props) {
const { user, channel: channel2, onPress: onPress2, start, end } = props;
const avatarDecoration = useAvatarDecoration(user, channel2.guild_id);
const stateFromStoresObject = useStateFromStoresObject([PresenceStore], () => ({
status: PresenceStore.getStatus(user.id),
isMobileOnline: PresenceStore.isMobileOnline(user.id),
isVROnline: PresenceStore.isVROnline(user.id)
}));
const { status, isMobileOnline, isVROnline } = stateFromStoresObject;
return <TableRow onPress={onPress2} label={NicknameUtils.getName(channel2.guild_id, channel2.id, user)} icon={<Avatar user={user} avatarDecoration={avatarDecoration} size={AvatarSizes.REFRESH_MEDIUM_32} guildId={channel2.guild_id} status={status} isMobileOnline={isMobileOnline} isVROnline={isVROnline} autoStatusCutout />} start={start} end={end} />;
};
export default function UserProfileActivityVoiceChannelUsers(props) {
const { users, channel, onBack, onPressUser } = props;
return <UserProfileStackedActionSheet title={intl.string(t["3xHUJ+"])} onBack={onBack} scrollable>
<UserProfileStackedActionSheetList data={users} keyExtractor={(item) => item.id} renderItem={(info) => {
const item = info.item;
return <UserRow key={item.id} user={item} channel={channel} onPress={() => onPressUser(item.id)} start={info.start} end={info.end} />;
}} />
</UserProfileStackedActionSheet>;
};