// Metro module 15104 (f15105). import { memo } from "react"; import { View } from "react-native"; import PresenceStore from "../../../stores/PresenceStore"; import RelationshipStore from "../../../stores/RelationshipStore"; import UserStore from "../../../stores/UserStore"; import { ChannelTypes, Routes } from "../../../Constants"; import { StaticChannelRoute } from "../../channel/ChannelConstants"; import { UnreadSetting } from "../../read_states/ReadStateConstants"; import { createStyles } from "../../../design/components/Styles/native/createStyles"; import Module712 from "../../../_bundle/Module712"; import { DARK_393C42_LIGHT_DEE0E4 } from "../../../design/migrations/native/LegacyTokens"; import BaseChannelItem, { ChannelModes, BaseChannelIcon, BaseChannelName } from "./BaseChannelItem"; import AvatarUtils from "../../../utils/AvatarUtils"; import FastImage from "../../../components_native/common/FastImage"; import Module15105 from "../../../_bundle/Module15105"; import { BookCheckIcon } from "../../../design/components/Icon/native/redesign/generated/BookCheckIcon"; import { getChannelIcon, getChannelIconComponent } from "../../../utils/native/ChannelUtils"; import { useStateFromStores, useStateFromStoresObject } from "../../../_bundle/Module589"; import { Avatar, AvatarSizes } from "../../../design/void/native"; import useChannelRoleSubscriptionStatus from "../../guild_role_subscriptions/useChannelRoleSubscriptionStatus"; import GuildRoleSubscriptionGatedChannelIcon from "../../guild_role_subscriptions/native/premium_channel/GuildRoleSubscriptionGatedChannelIcon"; import { computeChannelName } from "../../channel/useChannelName"; import { transitionTo } from "../../routing/router_utils"; let _excluded, c10706_15, useStyles, ChannelIcon, DMChannelIcon; const getChannelMode = function getChannelMode(a0) { const { muted, selected, unread, locked, channel: channel2 } = a0; return selected ? channel2.isGuildVocal() ? unread ? ChannelModes.UNREAD_IMPORTANT : ChannelModes.RELEVANT : ChannelModes.SELECTED : locked ? ChannelModes.LOCKED : muted ? ChannelModes.MUTED : unread ? a0.resolvedUnreadSetting === UnreadSetting.ALL_MESSAGES ? ChannelModes.UNREAD_IMPORTANT : ChannelModes.UNREAD_LESS_IMPORTANT : ChannelModes.DEFAULT; }; ChannelIcon = function ChannelIcon(props) { let BookCheckIcon2, source; const styles = useStyles(); const { channel: channel2, locked, isRulesChannel, isChannelLive } = props; let selected = props.selected; const mode = props.mode; if (channel2.type === ChannelTypes.DM) { const props2 = { userId: channel2.getRecipientId(), selected: null }; if (selected == null) { selected = false; } props2.selected = selected; return ; } if (channel2.type === ChannelTypes.GROUP_DM) { const channelIconSource = AvatarUtils.getChannelIconSource({ id: channel2.id, icon: channel2.icon, applicationId: channel2.getApplicationId(), size: 20 }); if (channelIconSource != null) { return ; } } if (isRulesChannel) { source = Module15105; BookCheckIcon2 = BookCheckIcon; } else { const channelIcon = getChannelIcon(channel2, { isRulesChannel: false, locked }); BookCheckIcon2 = getChannelIconComponent(channel2, { isRulesChannel: false, locked }); source = channelIcon; } return ; }; DMChannelIcon = function DMChannelIcon(props) { const userId = props.userId; let selected = props.selected; const styles = useStyles(); const stateFromStores = useStateFromStores([UserStore], () => UserStore.getUser(userId), [userId]); const stateFromStoresObject = useStateFromStoresObject([PresenceStore], () => ({ status: PresenceStore.getStatus(userId), isMobileOnline: PresenceStore.isMobileOnline(userId), isVROnline: PresenceStore.isVROnline(userId) }), [userId]); const { status, isMobileOnline } = stateFromStoresObject; const statusStyle = [styles.avatarStatus, ,]; if (selected) { selected = styles.avatarStatusSelected; } statusStyle[1] = selected; return ; }; _excluded = ["channel", "subtitle", "hideIcon", "children", "textStyle", "channelInfo", "onPress"]; c10706_15 = new Set([ChannelTypes.GUILD_VOICE, ChannelTypes.GUILD_STAGE_VOICE]); useStyles = createStyles({ channelIconLive: { tintColor: Module712.unsafe_rawColors.GREEN_360 }, dmAvatar: { marginRight: 8 }, avatarStatus: { backgroundColor: Module712.colors.BACKGROUND_BASE_LOW }, groupDmAvatar: { width: 20, height: 20, borderRadius: 10, marginRight: 8 }, channelInfoContainer: { paddingStart: 4 }, avatarStatusSelected: { backgroundColor: DARK_393C42_LIGHT_DEE0E4 } }); const r79 = memo(function(a0) { const styles = useStyles(); const { channel, subtitle, hideIcon, children, textStyle, channelInfo, onPress: onPress2, ...rest } = a0; const channelRoleSubscriptionStatus = useChannelRoleSubscriptionStatus(channel.id); const { isSubscriptionGated, needSubscriptionToAccess } = channelRoleSubscriptionStatus; const channelMode = getChannelMode(a0); const channelInfo2 = channelInfo == null ? isSubscriptionGated ? {channelInfo} {isSubscriptionGated ? : null} : null : {channelInfo} {isSubscriptionGated ? : null} ; return } icon={} channelInfo={channelInfo2} onPress={function onPress(event) { if (needSubscriptionToAccess && c10706_15.has(channel.type)) { transitionTo(Routes.CHANNEL(channel.guild_id, StaticChannelRoute.ROLE_SUBSCRIPTIONS)); } else if (onPress2 != null) { onPress2(event); } }} {...rest}>{children}; }); export default r79; export { getChannelMode };