30 lines
2.0 KiB
TypeScript
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>;
|
|
};
|